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, Context Store Search, Context Store SQL Query |
| Lists | List, Get, Context Store Search, Context Store SQL Query |
| Campaigns | List, Get, Context Store Search, Context Store SQL Query |
| Events | List, Context Store Search, Context Store SQL Query |
| Metrics | List, Get, Context Store Search, Context Store SQL Query |
| Flows | List, Get, Context Store Search, Context Store SQL Query |
| Email Templates | List, Get, Context Store Search, Context Store SQL Query, Semantic Search |
Profiles
Profiles List
Returns a paginated list of profiles (contacts) in your Klaviyo account
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "profiles",
"action": "list"
}'
Python SDK
await klaviyo.profiles.list()
API
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"
}'
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Profiles Get
Get a single profile by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "profiles",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await klaviyo.profiles.get(
id="<str>"
)
API
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>"
}
}'
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 Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "profiles",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.profiles.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
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 |
|---|
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 | |
Profiles Context Store SQL Query
Run a SQL query against profiles records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "profiles",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.profiles.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Lists
Lists List
Returns a paginated list of all lists in your Klaviyo account
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "lists",
"action": "list"
}'
Python SDK
await klaviyo.lists.list()
API
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"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 10) |
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Lists Get
Get a single list by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "lists",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await klaviyo.lists.get(
id="<str>"
)
API
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>"
}
}'
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 Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "lists",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.lists.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string | |
Response Schema
| 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 | |
Lists Context Store SQL Query
Run a SQL query against lists records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "lists",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.lists.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Campaigns
Campaigns List
Returns a paginated list of campaigns. A channel filter is required.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "campaigns",
"action": "list",
"params": {
"filter": "<str>"
}
}'
Python SDK
await klaviyo.campaigns.list(
filter="<str>"
)
API
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>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
filter | string | Yes | Filter by channel (email or sms) |
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Campaigns Get
Get a single campaign by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "campaigns",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await klaviyo.campaigns.get(
id="<str>"
)
API
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>"
}
}'
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 Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "campaigns",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.campaigns.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
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 |
|---|
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 | |
Campaigns Context Store SQL Query
Run a SQL query against campaigns records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "campaigns",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.campaigns.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Events
Events List
Returns a paginated list of events (actions taken by profiles)
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "events",
"action": "list"
}'
Python SDK
await klaviyo.events.list()
API
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"
}'
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Events Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "events",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.events.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
datetime | string | |
id | string | |
links | object | |
relationships | object | |
type | string | |
Response Schema
| 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 | |
Events Context Store SQL Query
Run a SQL query against events records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "events",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.events.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Metrics
Metrics List
Returns a paginated list of metrics (event types)
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "metrics",
"action": "list"
}'
Python SDK
await klaviyo.metrics.list()
API
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"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
filter | string | No | Filter expression for metrics. Allowed fields are integration.name and integration.category. |
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Metrics Get
Get a single metric by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "metrics",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await klaviyo.metrics.get(
id="<str>"
)
API
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>"
}
}'
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 Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "metrics",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.metrics.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string | |
Response Schema
| 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 | |
Metrics Context Store SQL Query
Run a SQL query against metrics records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "metrics",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.metrics.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Flows
Flows List
Returns a paginated list of flows (automated sequences)
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "flows",
"action": "list"
}'
Python SDK
await klaviyo.flows.list()
API
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"
}'
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Flows Get
Get a single flow by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "flows",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await klaviyo.flows.get(
id="<str>"
)
API
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>"
}
}'
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 Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "flows",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.flows.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
relationships | object | |
type | string | |
updated | string | |
Response Schema
| 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 | |
Flows Context Store SQL Query
Run a SQL query against flows records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "flows",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.flows.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Email Templates
Email Templates List
Returns a paginated list of email templates
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "email_templates",
"action": "list"
}'
Python SDK
await klaviyo.email_templates.list()
API
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"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page[size] | integer | No | Number of results per page (max 10) |
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 | |
| Field Name | Type | Description |
|---|
next | string | null | |
Email Templates Get
Get a single email template by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "email_templates",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await klaviyo.email_templates.get(
id="<str>"
)
API
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>"
}
}'
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 Context Store 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.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "email_templates",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"attributes": {}
}
}
}
}
}'
Python SDK
await klaviyo.email_templates.context_store_search(
query={"filter": {"eq": {"attributes": {}}}}
)
API
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": "context_store_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, startswith, endswith, contains, array_contains, 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 |
Searchable Fields
| Field Name | Type | Description |
|---|
attributes | object | |
id | string | |
links | object | |
type | string | |
updated | string | |
Response Schema
| 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 | |
Email Templates Context Store SQL Query
Run a SQL query against email templates records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "email_templates",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await klaviyo.email_templates.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
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": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Email Templates Semantic Search
Search email templates records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "klaviyo",
"entity": "email_templates",
"action": "context_store_search",
"params": {
"semantic": {"field": "attributes", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed email_templates.context_store_search helper only accepts query.
await klaviyo.execute(
"email_templates",
"context_store_search",
{"semantic": {"field": "attributes", "prompt": "<your natural-language query>"}},
)
API
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": "context_store_search",
"params": {
"semantic": {"field": "attributes", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
attributes | 2048 | |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source record |
data[].entity.id | string | Source record field |
data[].entity.updated | string | Source record field |
data[].entity.name | string | Source record field |
data[].entity.editor_type | string | Source record field |
data[].entity.created | string | Source record field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
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 |