This is the full reference documentation for the Klaviyo agent connector.
Supported entities and actions
The Klaviyo connector supports the following entities and actions.
| Entity | Actions |
|---|
| Profiles | List, Get, Search |
| Lists | List, Get, Search |
| Campaigns | List, Get, Search |
| Events | List, Search |
| Metrics | List, Get, Search |
| Flows | List, Get, Search |
| Email Templates | List, Get, Search |
Profiles
Profiles List
Returns a paginated list of profiles (contacts) in your Klaviyo account
Python SDK
await klaviyo.profiles.list()
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "profiles",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Profiles Get
Get a single profile by ID
Python SDK
await klaviyo.profiles.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "profiles",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | Profile ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Profiles Search
Search and filter profiles records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.profiles.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "profiles",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
segments | object | |
type | string | |
updated | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.relationships | object | |
hits[].data.segments | object | |
hits[].data.type | string | |
hits[].data.updated | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |
Lists
Lists List
Returns a paginated list of all lists in your Klaviyo account
Python SDK
await klaviyo.lists.list()
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Lists Get
Get a single list by ID
Python SDK
await klaviyo.lists.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | List ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Lists Search
Search and filter lists records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.lists.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.relationships | object | |
hits[].data.type | string | |
hits[].data.updated | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |
Campaigns
Campaigns List
Returns a paginated list of campaigns. A channel filter is required.
Python SDK
await klaviyo.campaigns.list(
filter="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "list",
"params": {
"filter": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
filter | string | Yes | Filter by channel (email or sms) |
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Campaigns Get
Get a single campaign by ID
Python SDK
await klaviyo.campaigns.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | Campaign ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Campaigns Search
Search and filter campaigns records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.campaigns.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated_at | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.relationships | object | |
hits[].data.type | string | |
hits[].data.updated_at | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |
Events
Events List
Returns a paginated list of events (actions taken by profiles)
Python SDK
await klaviyo.events.list()
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "events",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
sort | string | No | Sort order for events |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
relationships | object | null | |
links | object | null | |
Events Search
Search and filter events records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.events.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "events",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
datetime | string | |
id | string | |
links | object | |
relationships | object | |
type | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.datetime | string | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.relationships | object | |
hits[].data.type | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |
Metrics
Metrics List
Returns a paginated list of metrics (event types)
Python SDK
await klaviyo.metrics.list()
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "metrics",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Metrics Get
Get a single metric by ID
Python SDK
await klaviyo.metrics.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "metrics",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | Metric ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Metrics Search
Search and filter metrics records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.metrics.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "metrics",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.relationships | object | |
hits[].data.type | string | |
hits[].data.updated | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |
Flows
Flows List
Returns a paginated list of flows (automated sequences)
Python SDK
await klaviyo.flows.list()
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "flows",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Flows Get
Get a single flow by ID
Python SDK
await klaviyo.flows.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "flows",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | Flow ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Flows Search
Search and filter flows records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.flows.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "flows",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.relationships | object | |
hits[].data.type | string | |
hits[].data.updated | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |
Email Templates
Email Templates List
Returns a paginated list of email templates
Python SDK
await klaviyo.email_templates.list()
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "email_templates",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Email Templates Get
Get a single email template by ID
Python SDK
await klaviyo.email_templates.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "email_templates",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | Template ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null | |
Email Templates Search
Search and filter email templates records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Python SDK
await klaviyo.email_templates.search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "email_templates",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's next_cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
type | string | |
updated | string | |
Response Schema
| Field Name | Type | Description |
|---|
hits | array | List of matching records |
hits[].id | string | Record identifier |
hits[].score | number | Relevance score |
hits[].data | object | Record data containing the searchable fields listed above |
hits[].data.attributes | object | |
hits[].data.id | string | |
hits[].data.links | object | |
hits[].data.type | string | |
hits[].data.updated | string | |
next_cursor | string | null | Cursor for next page of results |
took_ms | number | Query execution time in milliseconds |