Use Klaviyo with AI Agents

A marketing platform for email, SMS, and more.
🔗 Connect and Use Klaviyo
1. 🔑 Connect your Klaviyo account
2. ✅ Select an action
3. 🚀 Go live with the agent
What do you want to do?
Actions
Accounts
- Get accounts
Campaigns
Catalogs
Coupons
Data Privacy
Events
Flows
Forms
Images
Lists
Metrics
Profiles
Reporting
Segments
Tags
Templates
Webhooks
Client

API actions for Klaviyo for AI assitants/agents

Language
JS
PYTHON

Events

Bulk Create Events

This API endpoint creates or updates profiles by batching up to 1,000 events, with a 5MB payload limit. Minimum required: a profile ID and metric name. It has rate limits of 10 events per seco
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_BULK_CREATE_EVENTS])

Get Event Metric

Get the metric for an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `events:read` `metrics:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_EVENT_METRIC])

Get Event Profile

Get the profile associated with an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `events:read` `profiles:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_EVENT_PROFILE])

Get Event Relationships Metric

Get a list of related Metrics for an Event<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `events:read` `metrics:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_EVENT_RELATIONSHIPS_METRIC])

Get Event Relationships Profile

Get profile [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `35
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_EVENT_RELATIONSHIPS_PROFILE])

Flows

Get Flows

Get all flows in an account. Returns a maximum of 50 flows per request, which can be paginated with cursor-based pagination.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:**
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOWS])

Get Flow

Get a flow with the given flow ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW])

Update Flow Status

Update the status of a flow with the given flow ID, and all actions in that flow.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_FLOW_STATUS])

Delete Flow

Delete a flow with the given flow ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_DELETE_FLOW])

Get Flow Action

Get a flow action from a flow with the given flow action ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_ACTION])

Get Flow Message

Get the flow message of a flow with the given message ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_MESSAGE])

Get Flow Flow Actions

Get all flow actions associated with the given flow ID. Returns a maximum of 50 flows per request, which can be paginated with cursor-based pagination.<br><br>*Rate limits*:<br>Burst: `3/s`<br
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_FLOW_ACTIONS])

Get Flow Relationships Flow Actions

Retrieve all flow action relationships for a specific flow ID, sortable by `id`, `status`, `created`, `updated`. Refine with filters, max 50 per page, paginated by `page[size]` and `page[numbe
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_RELATIONSHIPS_FLOW_ACTIONS])

Get Flow Relationships Tags

Return the tag IDs of all tags associated with the given flow.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read` `tags:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_RELATIONSHIPS_TAGS])

Get Flow Tags

Return all tags associated with the given flow ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read` `tags:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_TAGS])

Get Flow For Flow Action

Get the flow associated with the given action ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_FOR_FLOW_ACTION])

Get Flow Action Relationships Flow

Get the flow associated with the given action ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_ACTION_RELATIONSHIPS_FLOW])

Get Flow Action Messages

Retrieve up to 50 flow messages per request by action ID, sortable by various fields, with ascending/descending options, and paginated using `page[size]` and `page[number]`. Rate limits: 3/s b
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_ACTION_MESSAGES])

Get Flow Action Relationships Messages

Retrieves up to 50 flow message relationships per request for a specified flow action ID, with cursor pagination. Rate limits: 3/s burst, 60/min steady. Requires `flows:read` scope.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_ACTION_RELATIONSHIPS_MESSAGES])

Get Flow Action For Message

Get the flow action for a flow message with the given message ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_ACTION_FOR_MESSAGE])

Get Flow Message Relationships Action

Get the [relationship](https://developers.klaviyo.com/en/reference/api_overview#relationships) for a flow message's flow action, given the flow ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Ste
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_MESSAGE_RELATIONSHIPS_ACTION])

Get Flow Message Relationships Template

Returns the ID of the related template<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `templates:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_MESSAGE_RELATIONSHIPS_TEMPLATE])

Get Flow Message Template

Return the related template<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `templates:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FLOW_MESSAGE_TEMPLATE])

Forms

Get Forms

Get all forms in an account.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FORMS])

Get Form

Get the form with the given ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FORM])

Get Form Version

Get the form version with the given ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FORM_VERSION])

Get Versions For Form

Get the form versions for the given form.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_VERSIONS_FOR_FORM])

Get Version Ids For Form

Get the IDs of the form versions for the given form.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_VERSION_IDS_FOR_FORM])

Get Form Id For Form Version

Get the ID of the form associated with the given form version.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FORM_ID_FOR_FORM_VERSION])

Get Form For Form Version

Get the form associated with the given form version.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `forms:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_FORM_FOR_FORM_VERSION])

Images

Get Images

Get all images in an account.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `images:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_IMAGES])

Upload Image From Url

Import an image from a url or data uri. If you want to upload an image from a file, use the Upload Image From File endpoint instead.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `100/m`<br
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPLOAD_IMAGE_FROM_URL])

Get Image

Get the image with the given image ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `images:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_IMAGE])

Update Image

Update the image with the given image ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `images:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_IMAGE])

Upload Image From File

Upload an image from a file. If you want to import an image from an existing url or a data uri, use the Upload Image From URL endpoint instead.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady:
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPLOAD_IMAGE_FROM_FILE])

Lists

Get Lists

Retrieve a filtered selection of account lists by fields like `id`, `name`, `created`, and `updated`. Limited to 10 results per page with burst rate limits of 75 requests/second and a steady r
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_LISTS])

Create List

Create a new list.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`<br>Daily: `100/d` **Scopes:** `lists:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_LIST])

Get List

API allows 75 req/sec and 700 req/min, but with 'profile_count' param, it's 1 req/sec and 15 req/min. 'lists:read' scope needed. See developer guide for details.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_LIST])

Update List

Update the name of a list with the given list ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `lists:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_LIST])

Delete List

Delete a list with the given list ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `lists:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_DELETE_LIST])

Get List Relationships Tags

Returns the tag IDs of all tags associated with the given list.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `lists:read` `tags:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_LIST_RELATIONSHIPS_TAGS])

Get List Tags

Return all tags associated with the given list ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `lists:read` `tags:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_LIST_TAGS])

Get List Relationships Profiles

Get profile membership [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for a list with the given list ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady:
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_LIST_RELATIONSHIPS_PROFILES])

Add Profile To List

Use the Subscribe Profiles endpoint to add profiles to a list by ID, with a max of 1000 per call. Ideal for giving marketing consent. Rate limits: 10/s burst, 150/m steady. Requires lists:writ
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_ADD_PROFILE_TO_LIST])

Remove Profile From List

Delete profiles from a marketing list using its ID without affecting overall consent. Use Unsubscribe Profiles for complete unsubscribing. Limit: 1000 profiles per call, 10 calls/s, 150 calls/
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_REMOVE_PROFILE_FROM_LIST])

Get List Profiles

Retrieve profiles in a list by ID, filterable by email/phone/push token/join date, sortable by join date. Regular rate limit: 75/s, 700/m; with predictive analytics: 10/s, 150/m. Details at Kl
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_LIST_PROFILES])

Metrics

Get Metrics

Get all metrics in an account. Requests can be filtered by the following fields: integration `name`, integration `category` Returns a maximum of 200 results per page.<br><br>*Rate limits*:<br>
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_METRICS])

Get Metric

Get a metric with the given metric ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `metrics:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_METRIC])

Query Metric Aggregates

The Klaviyo endpoint fetches metric events, handling JSON requests for custom data queries, sorting, and filtering; offers grouping and time-based filters; requires adherence to rate limits (3
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_QUERY_METRIC_AGGREGATES])

Profiles

Get Profiles

Retrieve account profiles, sort by various fields. Rate limits: 75/s burst, 700/m steady; lower with `predictive_analytics`. Details at developers.klaviyo.com. Requires `profiles:read` scope.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_PROFILES])

Frequently asked questions

What is Composio.dev?

Composio.dev is a platform for building AI applications, designed to make the process of developing AI solutions super easy and fun! It provides a comprehensive set of tools and libraries that simplify the process of developing AI solutions, allowing you to focus on the creative aspects of your project without getting bogged down by the technical details.

How does Composio.dev support Klaviyo?

Composio.dev seamlessly integrates with Klaviyo, allowing you to leverage its capabilities within the Composio.dev platform. You can utilize Klaviyo to call functions across various platforms, including Google, GitHub, and others, making it a breeze to incorporate different services into your AI applications. Additionally, it supports user authentication via OAuth2 and can work in conjunction with other popular frameworks like LangChain and CrewAI, giving you the flexibility to build truly innovative AI solutions.

What models can I use with Klaviyo?

With Klaviyo, you have access to a wide range of state-of-the-art language models, including GPT-4o (OpenAI), GPT-3.5 (OpenAI), GPT-4 (OpenAI), Claude (Anthropic), PaLM (Google), LLaMA and LLaMA 2 (Meta), Gemini, and many others. This flexibility allows you to choose the model that best suits your specific use case, whether you're building a chatbot, a content creation tool, or any other AI-powered application. You can experiment with different models and find the one that delivers the best performance for your project.

How can I integrate Klaviyo into my project?

Composio.dev provides a seamless integration for Klaviyo, making it super easy to incorporate this powerful framework into your projects. You can leverage the Composio.dev API to call functions from Klaviyo, allowing you to tap into its capabilities with just a few lines of code. The SDK is available in Python, JavaScript, and TypeScript, so you can work with your preferred programming language and integrate Klaviyo into your projects seamlessly.

What is the pricing for Klaviyo?

Klaviyo is completely free to use, with a generous free tier that allows up to 1000 requests per month. This makes it accessible for developers and organizations of all sizes to explore and experiment with this powerful tool without any upfront costs. Whether you're a student working on a personal project or a startup building the next big thing, you can get started with Klaviyo without worrying about breaking the bank.

What kind of authentication is supported for Klaviyo?

Klaviyo supports OAuth2 authentication, ensuring secure and authorized access to its functionalities. You can leverage the Composio.dev API to handle authentication and call functions from Klaviyo seamlessly. The SDK is available in Python, JavaScript, and TypeScript for your convenience, making it easy to integrate authentication into your projects and keep your users' data safe and secure.

Can I add Klaviyo to my project?

Absolutely! You can easily incorporate Klaviyo into your project by utilizing the Composio.dev API. This API allows you to call functions from Klaviyo, enabling you to leverage its capabilities within your application. The SDK is available in Python, JavaScript, and TypeScript to facilitate integration, so you can work with the language you're most comfortable with and add Klaviyo to your project with ease.

What is the accuracy of Klaviyo?

Klaviyo is designed to provide highly accurate and reliable results, ensuring that your AI applications perform at their best. The integration with Composio.dev ensures precise function calls, enabling you to build robust and powerful AI applications with confidence. Klaviyo's comprehensive framework and the ability to leverage state-of-the-art models ensure reliable and accurate outcomes for your AI development needs, whether you're working on a chatbot, a content creation tool, or any other AI-powered project.

What are some common use cases for Klaviyo?

Klaviyo can be used for a wide range of AI applications, making it a versatile tool for developers and creators alike. Some common use cases include natural language processing, text generation, question answering, sentiment analysis, and more. It's particularly useful for building chatbots, virtual assistants, content creation tools, and other AI-powered applications that can help you automate tasks, engage with users, and create compelling content. Whether you're working on a personal project or building a product for your startup, Klaviyo can help you bring your ideas to life.

How does Klaviyo handle data privacy and security?

Data privacy and security are crucial considerations when working with AI systems, and Klaviyo takes these issues seriously. It follows industry best practices and adheres to strict data protection regulations, ensuring that your data is kept safe and secure. Klaviyo provides robust security measures, such as encryption and access controls, to ensure the confidentiality and integrity of your data. You can rest assured that your sensitive information is protected when using Klaviyo for your AI development needs.
+ Integrate seamlessly with your agentic frameworks
Composio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and Sizes
Building for AI across continents🧪