docs/ai-agents/connectors/klaviyo/REFERENCE.md
This is the full reference documentation for the Klaviyo agent connector.
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 |
Returns a paginated list of profiles (contacts) in your Klaviyo account
await klaviyo.profiles.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "profiles",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
Get a single profile by ID
await klaviyo.profiles.get(
id="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "profiles",
"action": "get",
"params": {
"id": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Profile ID |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
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.
await klaviyo.profiles.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "profiles",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
segments | object | |
type | string | |
updated | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].id | string | |
data[].links | object | |
data[].relationships | object | |
data[].segments | object | |
data[].type | string | |
data[].updated | string |
Returns a paginated list of all lists in your Klaviyo account
await klaviyo.lists.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
Get a single list by ID
await klaviyo.lists.get(
id="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "get",
"params": {
"id": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | List ID |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
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.
await klaviyo.lists.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].id | string | |
data[].links | object | |
data[].relationships | object | |
data[].type | string | |
data[].updated | string |
Returns a paginated list of campaigns. A channel filter is required.
await klaviyo.campaigns.list(
filter="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "list",
"params": {
"filter": "<str>"
}
}'
| 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 |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
Get a single campaign by ID
await klaviyo.campaigns.get(
id="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "get",
"params": {
"id": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Campaign ID |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
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.
await klaviyo.campaigns.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated_at | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].id | string | |
data[].links | object | |
data[].relationships | object | |
data[].type | string | |
data[].updated_at | string |
Returns a paginated list of events (actions taken by profiles)
await klaviyo.events.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "events",
"action": "list"
}'
| 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 |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
relationships | object | null | |
links | object | null |
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.
await klaviyo.events.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "events",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
datetime | string | |
id | string | |
links | object | |
relationships | object | |
type | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].datetime | string | |
data[].id | string | |
data[].links | object | |
data[].relationships | object | |
data[].type | string |
Returns a paginated list of metrics (event types)
await klaviyo.metrics.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "metrics",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
Get a single metric by ID
await klaviyo.metrics.get(
id="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "metrics",
"action": "get",
"params": {
"id": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Metric ID |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
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.
await klaviyo.metrics.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "metrics",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].id | string | |
data[].links | object | |
data[].relationships | object | |
data[].type | string | |
data[].updated | string |
Returns a paginated list of flows (automated sequences)
await klaviyo.flows.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "flows",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
Get a single flow by ID
await klaviyo.flows.get(
id="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "flows",
"action": "get",
"params": {
"id": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Flow ID |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
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.
await klaviyo.flows.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "flows",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].id | string | |
data[].links | object | |
data[].relationships | object | |
data[].type | string | |
data[].updated | string |
Returns a paginated list of email templates
await klaviyo.email_templates.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "email_templates",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page[size] | integer | No | Number of results per page (max 100) |
page[cursor] | string | No | Cursor for pagination |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
Get a single email template by ID
await klaviyo.email_templates.get(
id="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "email_templates",
"action": "get",
"params": {
"id": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Template ID |
| Field Name | Type | Description |
|---|---|---|
id | string | |
type | string | null | |
attributes | object | null | |
links | object | null |
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.
await klaviyo.email_templates.search(
query={"filter": {"eq": {"attributes": {}}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "email_templates",
"action": "search",
"params": {
"query": {"filter": {"eq": {"attributes": {}}}}
}
}'
| 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 meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
attributes | object | |
id | string | |
links | object | |
type | string | |
updated | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].attributes | object | |
data[].id | string | |
data[].links | object | |
data[].type | string | |
data[].updated | string |