Overview
Add Klaviyo to any ModuleX agent or workflow. Email-marketing list and profile management against the Klaviyo REST API (a.klaviyo.com/api), pinned to revision 2024-10-15.
Categories : Marketing & Advertising · Marketing & Email · Email · Automation · Development · Auth : Private API Key · Actions : 5
Authentication
Private API Key
Authenticate using your Klaviyo Private API Key. Create one in Settings > API Keys
Required Credentials
Field Description Required Format Klaviyo Private API Key Your Klaviyo Private API Key for API authentication Yes pk_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Available Actions
get_lists — Get a listing of all lists in a Klaviyo account with optional sorting and pagination
Parameters Field to sort by: ‘created’, ‘id’, ‘name’, or ‘updated’ (Default: created)
Sort direction: ‘asc’ or ‘desc’ (Default: desc)
Maximum number of lists to return (Default: 100)
Response {
"$defs" : {
"KlaviyoList" : {
"additionalProperties" : false ,
"properties" : {
"id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Id"
},
"name" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Name"
},
"created" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"updated" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Updated"
},
"opt_in_process" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Opt In Process"
}
},
"title" : "KlaviyoList" ,
"type" : "object"
}
},
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"lists" : {
"items" : {
"$ref" : "#/$defs/KlaviyoList"
},
"title" : "Lists" ,
"type" : "array"
},
"count" : {
"default" : 0 ,
"title" : "Count" ,
"type" : "integer"
}
},
"required" : [
"success"
],
"title" : "GetListsOutput" ,
"type" : "object"
}
get_list — Get a specific Klaviyo list by its ID
Parameters The ID of the Klaviyo list to retrieve
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Id"
},
"name" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Name"
},
"created" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"updated" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Updated"
},
"opt_in_process" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Opt In Process"
}
},
"required" : [
"success"
],
"title" : "GetListOutput" ,
"type" : "object"
}
create_list — Create a new list in a Klaviyo account
Parameters The name for the new list
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Id"
},
"name" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Name"
},
"created" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"updated" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Updated"
},
"opt_in_process" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Opt In Process"
}
},
"required" : [
"success"
],
"title" : "CreateListOutput" ,
"type" : "object"
}
get_profiles — Get profiles from a Klaviyo account with optional sorting and pagination
Parameters Maximum number of profiles to return (Default: 100)
Field to sort by: ‘created’, ‘updated’, ‘email’ (Default: created)
Sort direction: ‘asc’ or ‘desc’ (Default: desc)
Response {
"$defs" : {
"KlaviyoProfile" : {
"additionalProperties" : false ,
"properties" : {
"id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Id"
},
"email" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Email"
},
"first_name" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "First Name"
},
"last_name" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Last Name"
},
"phone_number" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Phone Number"
},
"created" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"updated" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Updated"
}
},
"title" : "KlaviyoProfile" ,
"type" : "object"
}
},
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"profiles" : {
"items" : {
"$ref" : "#/$defs/KlaviyoProfile"
},
"title" : "Profiles" ,
"type" : "array"
},
"count" : {
"default" : 0 ,
"title" : "Count" ,
"type" : "integer"
}
},
"required" : [
"success"
],
"title" : "GetProfilesOutput" ,
"type" : "object"
}
add_members_to_list — Add one or more profiles to a specific Klaviyo list
Parameters The ID of the list to add members to
List of profile IDs to add to the list
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"list_id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "List Id"
},
"profiles_added" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Profiles Added"
},
"profile_ids" : {
"items" : {
"type" : "string"
},
"title" : "Profile Ids" ,
"type" : "array"
},
"extra" : {
"anyOf" : [
{
"additionalProperties" : true ,
"type" : "object"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Extra"
}
},
"required" : [
"success"
],
"title" : "AddMembersToListOutput" ,
"type" : "object"
}
Limits & Quotas
Pagination follows JSON:API cursor links — both get_lists and
get_profiles page through results until max_results is reached
or links.next is exhausted.
Failures (any non-2xx, plus exceptions) surface as success=False
with an error string. Empty/blank API keys short-circuit before
the HTTP call.
Links