Skip to content

Marketing Automation

Klaviyo
API integration

Ship Marketing Automation features without building the integration. Full Klaviyo API access via Proxy, normalized data through Unified APIs, and 330+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Klaviyo

Use Cases

Why integrate with Klaviyo

Common scenarios for SaaS companies building Klaviyo integrations for their customers.

01

Sync survey and quiz responses into Klaviyo for personalized campaigns

Form and survey builder SaaS companies can push respondent data into their customers' Klaviyo accounts as enriched Contacts with Tags, enabling merchants to trigger hyper-personalized email and SMS flows based on quiz answers without any manual CSV work.

02

Suppress promotional messaging during open support tickets

Helpdesk and customer support platforms can update Klaviyo Contact properties and Tags in real time when tickets are created or resolved, letting merchants automatically suppress promotional campaigns for customers who are mid-issue — eliminating one of eCommerce's most common CX failures.

03

Keep loyalty and rewards data in sync with marketing audiences

Loyalty and rewards platforms can continuously update Klaviyo Contacts with points balances, tier changes, and reward statuses, so merchants can build dynamic Segments like 'Points Expiring Soon' and drive repeat purchases through automated lifecycle campaigns.

04

Route event attendees into targeted post-event follow-up flows

Webinar and virtual event platforms can automatically push registrants into Klaviyo Lists and tag Contacts as 'Attended' or 'No_Show' after events, giving merchants a seamless path to post-event nurture campaigns without manual data handling.

05

Use Klaviyo Segments to personalize in-app experiences

B2B SaaS products can read their customers' Klaviyo Segments to adapt their own UI — for example, a customer service tool routing 'VIP Segment' members to priority queues, or a personalization engine changing on-site content based on marketing audience membership.

What You Can Build

Ship these features with Truto + Klaviyo

Concrete product features your team can ship faster by leveraging Truto’s Klaviyo integration instead of building from scratch.

01

Automatic Contact enrichment pipeline

Push user attributes, custom properties, and behavioral metadata from your product into your customers' Klaviyo Profiles so their marketing teams can build dynamic audiences without any manual data entry.

02

Real-time Tag-based suppression controls

Apply and remove Tags on Klaviyo Contacts based on events in your app — like open tickets, pending refunds, or onboarding state — so merchants can suppress or trigger marketing automations contextually.

03

One-click List subscription management

Let your users map actions in your product (form submissions, event registrations, feature opt-ins) to specific Klaviyo Lists, handling subscribe and unsubscribe operations automatically and in compliance with consent requirements.

04

Segment-aware in-app personalization

Read your customers' Klaviyo Segments and surface that audience intelligence inside your product — enabling features like priority routing, dynamic UI badges, or segment-based content targeting.

05

Bi-directional Contact sync dashboard

Give your users a single view that shows which of their end-users exist in Klaviyo, what Lists and Segments they belong to, and what Tags are applied — all without leaving your product.

06

Self-serve Klaviyo connection via embedded auth

Ship a native 'Connect Klaviyo' button in your settings page using Truto's auth infrastructure, so your customers can link their Klaviyo accounts in seconds without your team managing OAuth flows or API keys.

SuperAI

Klaviyo AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_klaviyo_lists

List all Klaviyo lists in an account, optionally filtered by id, name, created, or updated. Returns each list as a JSON:API resource object with type, id, attributes, and links, where attributes contains name, created, updated, and opt_in_process. Max 10 results per page.

get_single_klaviyo_list_by_id

Get a single Klaviyo list by id. Returns the list as a JSON:API resource object with type, id, attributes, and links, where attributes contains name, created, updated, opt_in_process, and profile_count when requested via additional-fields. Required: id.

create_a_klaviyo_list

Create a new Klaviyo list. Returns the created list object including its id, type, attributes (name, created, updated, opt_in_process), and links. Required: data.type, data.attributes.name.

delete_a_klaviyo_list_by_id

Delete a Klaviyo list by id. Returns an empty 204 response on success. Required: id.

update_a_klaviyo_list_by_id

Update the name of a Klaviyo list by id. Returns the updated list object including its id, type, attributes (name, created, updated, opt_in_process), and links. Required: id, data.type, data.id, data.attributes.name.

list_all_klaviyo_list_tags

List all tags associated with a given Klaviyo list. Returns tag records with type, id, and attributes containing name. Required: list_id.

list_all_klaviyo_list_profiles

List all profiles within a specific Klaviyo list. Returns: type, attributes, id, relationships, links. The attributes object contains email, phone_number, first_name, last_name, joined_group_at, location, and custom properties. Required: list_id. Supports filtering by email, phone_number, push_token, and joined_group_at; sorting by joined_group_at ascending or descending.

list_all_klaviyo_segments

List all segments in a Klaviyo account. Returns segment records with id, type, attributes (name, created, updated, is_active, is_processing, is_starred, definition), and relationships. Filterable by name, id, created, updated, is_active, and is_starred. Max 10 results per page.

get_single_klaviyo_segment_by_id

Get a single Klaviyo segment by id. Returns the segment record with id, type, attributes (name, created, updated, is_active, is_processing, is_starred, definition), and relationships. The profile_count attribute is available when requested via additional-fields[segment]. Required: id.

create_a_klaviyo_segment

Create a new segment in Klaviyo. Returns the created segment resource including its type, id, attributes (name, definition, created, updated, is_active, is_processing, is_starred), relationships, and links. Required: name and definition in the request body.

delete_a_klaviyo_segment_by_id

Delete a Klaviyo segment by id. Returns an empty 204 response on success. Required: id.

update_a_klaviyo_segment_by_id

Update a Klaviyo segment by id. Returns the updated segment resource including its type, id, attributes (name, definition, created, updated, is_active, is_processing, is_starred), relationships, and links. Required: id.

list_all_klaviyo_segment_tags

List all tags associated with a specific Klaviyo segment. Returns: type, id, attributes, relationships, links. Required: segment_id.

list_all_klaviyo_segment_profiles

List all Klaviyo profiles that belong to a specific segment. Returns profile objects including type, id, attributes (email, phone_number, first_name, last_name, joined_group_at, created, updated, location, properties), and links. Required: segment_id. Max 100 per page.

list_all_klaviyo_tags

List all tags in a Klaviyo account, filterable by name and sortable by name or id. Returns: type, id, attributes, relationships, links. Max 50 tags per page.

create_a_klaviyo_tag

Create a tag in Klaviyo. A tag belongs to a single tag group; if no tag group is specified, the tag is added to the account's default tag group. Returns the created tag object including its type, id, attributes, relationships, and links. An account cannot have more than 500 unique tags.

get_single_klaviyo_tag_by_id

Get a single Klaviyo tag by id. Returns the tag object including its type, id, attributes, relationships, and links. Required: id.

update_a_klaviyo_tag_by_id

Update a Klaviyo tag by id. Only the tag's name can be changed; a tag cannot be moved between tag groups. Returns an empty 204 response on success. Required: id.

delete_a_klaviyo_tag_by_id

Delete a Klaviyo tag by id. Any associations between the tag and other resources will also be removed. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_tag_lists

List all list IDs associated with a Klaviyo tag. Returns each list resource identifier including type and id. Required: tag_id.

list_all_klaviyo_tag_segments

List segment IDs associated with a specific tag in Klaviyo. Returns a collection of JSON:API resource-identifier objects, each containing type and id, representing every segment linked to the tag. Required: tag_id.

list_all_klaviyo_profiles

List all Klaviyo profiles in an account. Returns: type, attributes, id, relationships, links. Supports filtering by id, email, phone_number, external_id, created, and updated, and sorting by id, created, updated, or email. Max 100 per page.

get_single_klaviyo_profile_by_id

Get a single Klaviyo profile by id. Returns the profile resource object including its type, id, and attributes such as email, first_name, last_name, phone_number, organization, location, created, and updated. Use the additional-fields parameter to include subscriptions or predictive_analytics data. Required: id.

create_a_klaviyo_profile

Create a new profile in Klaviyo. Returns the created profile including id, type, attributes (email, first_name, last_name, phone_number, location, properties, created, updated), and links. Required: data.type, data.attributes. Max payload size 100KB.

update_a_klaviyo_profile_by_id

Update a Klaviyo profile by id. Returns the updated profile resource with type, id, attributes (email, phone_number, first_name, last_name, location, properties, and more), and links. Required: id. Setting a field to null clears it; omitting a field leaves it unchanged. Max payload 100KB.

list_all_klaviyo_accounts

List Klaviyo accounts associated with the current private API key. Returns a single account record with id, type, attributes (contact_information, industry, locale, preferred_currency, public_api_key, test_account, timezone), and links.

get_single_klaviyo_account_by_id

Get a single Klaviyo account by id. Only the account associated with the API key can be retrieved. Returns: type, id, attributes, links. Required: id.

list_all_klaviyo_campaigns

List Klaviyo campaigns filtered by channel and other criteria. Returns each campaign with id, name, status, archived, audiences, send_options, tracking_options, send_strategy, created_at, scheduled_at, updated_at, and send_time. Required: filter. A channel filter such as equals(messages.channel,'email') is mandatory; sorting by multiple fields is not supported. Max 100 per page.

create_a_klaviyo_campaign

Create a new Klaviyo campaign. Returns the created campaign including type, id, attributes (name, status, audiences, send_options, tracking_options, send_strategy, created_at, updated_at), relationships, and links. Required: data.

get_single_klaviyo_campaign_by_id

Get a single Klaviyo campaign by id. Returns the campaign object including id, name, status, archived, audiences, send_options, tracking_options, send_strategy, created_at, scheduled_at, updated_at, and send_time. Required: id.

update_a_klaviyo_campaign_by_id

Update a Klaviyo campaign by id with partial attributes. Returns the updated campaign including type, id, attributes (name, status, audiences, send_options, tracking_options, send_strategy, created_at, updated_at), relationships, and links. Required: id, data.

delete_a_klaviyo_campaign_by_id

Delete a Klaviyo campaign by id. Returns an empty 204 response on success. Required: id.

klaviyo_campaigns_list_tags

List all tags associated with a specific Klaviyo campaign. Returns each tag's type, id, and attributes (including name). Required: campaign_id.

get_single_klaviyo_campaign_message_by_id

Get a specific Klaviyo campaign message by id. Returns: type, id, attributes, relationships, links. Required: id.

update_a_klaviyo_campaign_message_by_id

Update a Klaviyo campaign message by id. Returns: type, id, attributes, relationships, links. Required: id.

create_a_klaviyo_campaign_send_job

Trigger a Klaviyo campaign to send asynchronously by creating a campaign send job. Returns the campaign send job object including type, id, attributes, and links. Required: data. The send is processed asynchronously and returns 202 Accepted.

get_single_klaviyo_campaign_send_job_by_id

Get a Klaviyo campaign send job by id. Returns the campaign send job object including type, id, attributes, and links. Required: id.

update_a_klaviyo_campaign_send_job_by_id

Cancel or revert a Klaviyo campaign send by updating the campaign send job status to CANCELED or DRAFT. Returns an empty 204 response on success. Required: id, data.

create_a_klaviyo_campaign_recipient_estimation_job

Trigger an asynchronous campaign recipient estimation job in Klaviyo to refresh the estimated recipient count for a campaign. Returns: type, id, attributes, links, relationships. The job runs asynchronously; use the Get Campaign Recipient Estimation Job endpoint to poll its status.

get_single_klaviyo_campaign_recipient_estimation_job_by_id

Get the status of a campaign recipient estimation job in Klaviyo by id. Returns: type, id, attributes, links, relationships. Required: id.

get_single_klaviyo_campaign_recipient_estimation_by_id

Get the estimated recipient count for a Klaviyo campaign by campaign id. Returns: type, id, attributes, links, relationships. Required: id. The count can be refreshed using the Create Campaign Recipient Estimation Job endpoint.

create_a_klaviyo_campaign_clone

Clone an existing Klaviyo campaign to create a new campaign with a fresh ID and name. Returns the cloned campaign including type, id, attributes (name, status, created_at, updated_at), relationships, and links. Requires a JSON:API request body specifying the campaign to clone.

create_a_klaviyo_campaign_message_assign_template

Assign a reusable template to a Klaviyo campaign message by cloning the template and assigning the non-reusable clone to the message. Returns the campaign message resource including type, id, attributes, relationships, and links. Required: data.type, data.id, and data.relationships.template.

list_all_klaviyo_campaign_message_campaigns

Get the campaign related to a specific Klaviyo campaign message. Returns the campaign resource including id, attributes (with name, status, archived, audiences, send_options, tracking_options, send_strategy, created_at, updated_at), relationships, and links. Required: campaign_message_id.

list_all_klaviyo_campaign_message_templates

Get the email template associated with a specific Klaviyo campaign message. Returns the template resource including its id, attributes (containing name, html, text, amp, editor_type, created, and updated), and links. Required: campaign_message_id.

list_all_klaviyo_campaign_message_images

Get the image associated with a specific Klaviyo campaign message. Returns: type, id, attributes, links, name, image_url, format, hidden, size, updated_at. Required: campaign_message_id.

list_all_klaviyo_campaign_campaign_messages

List all campaign messages belonging to a specific Klaviyo campaign. Returns: type, id, attributes, relationships, links. Required: campaign_id.

list_all_klaviyo_relationships_campaign_messages

List all campaign message IDs associated with a specific Klaviyo campaign. Returns the type and id of each campaign-message relationship entry. Required: campaign_id.

list_all_klaviyo_relationships_campaigns

List campaign IDs associated with a Klaviyo tag. Returns resource linkage objects with type and id for each campaign. Required: tag_id.

create_a_klaviyo_relationships_campaign

Associate a Klaviyo tag with one or more campaigns by passing campaign IDs in the request body. Returns an empty 204 response on success. Required: tag_id. A campaign cannot be associated with more than 100 tags.

klaviyo_relationships_campaigns_bulk_delete

Remove a Klaviyo tag's association with one or more campaigns by passing campaign IDs in the request body. Returns an empty 204 response on success. Required: tag_id.

list_all_klaviyo_relationships_campaigns_campaign

Get the campaign relationship (ID mapping) for a Klaviyo campaign message. Returns a JSON:API relationship object containing the related campaign's type and id, not the full campaign resource. Required: campaign_message_id.

list_all_klaviyo_relationships_images

Get the image relationship for a Klaviyo campaign message, returning the resource identifier (type and id) of the associated image. Required: campaign_message_id.

klaviyo_relationships_images_bulk_update

Update the image relationship for a Klaviyo campaign message by specifying the image resource identifier in the request body. Returns an empty 204 response on success. Required: campaign_message_id, data (with type and id).

list_all_klaviyo_relationships_tags

List all tag IDs associated with a Klaviyo flow, returning JSON:API resource identifier objects. Returns: type, id. Required: flow_id.

list_all_klaviyo_relationships_tags_relationships

List tag IDs associated with a Klaviyo list. Returns JSON:API resource identifier objects containing type and id for each tag linked to the list. Required: list_id.

list_all_klaviyo_relationships_templates

Get the template relationship for a Klaviyo flow message, returning only the related template's resource identifier linkage (type and id), not the full template attributes. Returns: type, id. Required: flow_message_id.

list_all_klaviyo_relationships_templates_template

Get the template relationship for a specific Klaviyo campaign message, returning the related template's type and id. Required: campaign_message_id.

list_all_klaviyo_catalog_items

List all catalog items in a Klaviyo account. Returns each item with type, id, attributes (external_id, title, price, published, url, created, updated), relationships, and links. Max 100 per page.

create_a_klaviyo_catalog_item

Create a new catalog item in Klaviyo. Returns the created item with type, id, attributes (external_id, title, price, published, url), relationships, and links. Required: data.type and data.attributes.external_id.

get_single_klaviyo_catalog_item_by_id

Get a specific Klaviyo catalog item by its compound id. Returns the item with type, id, attributes (external_id, title, price, published, url, created, updated), relationships, and links. Required: id.

update_a_klaviyo_catalog_item_by_id

Update a Klaviyo catalog item by its compound id. Returns the updated item with type, id, attributes (external_id, title, price, published, url, created, updated), relationships, and links. Required: id.

delete_a_klaviyo_catalog_item_by_id

Delete a Klaviyo catalog item by its compound id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_catalog_variants

List all catalog variants in a Klaviyo account, sorted by creation date. Returns each variant's id, type, attributes (external_id, title, price, sku, etc.), and relationships. Max 100 per page.

create_a_klaviyo_catalog_variant

Create a new catalog variant for a related catalog item in Klaviyo. Returns the created variant including id, type, attributes, and relationships. Required: data (including type, attributes with external_id, and relationships.item referencing the catalog item).

get_single_klaviyo_catalog_variant_by_id

Get a single Klaviyo catalog variant by its compound ID. Returns: type, id, attributes, relationships, links.), relationships, and links. Required: id.

update_a_klaviyo_catalog_variant_by_id

Update a Klaviyo catalog variant by its compound ID. Returns the updated variant including id, type, attributes, and relationships. Required: id, data (including type and id).

delete_a_klaviyo_catalog_variant_by_id

Delete a Klaviyo catalog variant by its compound ID. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_catalog_categories

List all catalog categories in a Klaviyo account, sortable by created. Returns each category with its id, name, external_id, created, and updated. Max 100 per request.

create_a_klaviyo_catalog_category

Create a new catalog category in Klaviyo. Returns the created category with its type, id, attributes (external_id, name, updated), relationships, and links. Required: name, external_id.

get_single_klaviyo_catalog_category_by_id

Get a single Klaviyo catalog category by its compound id (format: {integration}:::{catalog}:::{external_id}). Returns the category with its id, name, external_id, created, and updated. Required: id.

update_a_klaviyo_catalog_category_by_id

Update a Klaviyo catalog category by id. Returns the updated category with its type, id, attributes (external_id, name, updated), relationships, and links. Required: id.

delete_a_klaviyo_catalog_category_by_id

Delete a Klaviyo catalog category by id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_catalog_item_bulk_create_jobs

List all catalog item bulk create jobs in Klaviyo. Returns: type, id, attributes, relationships, links. Max 100 jobs per request. Supports filtering by status using the equals operator (e.g. equals(status,'processing')).

create_a_klaviyo_catalog_item_bulk_create_job

Create a catalog item bulk create job in Klaviyo to create a batch of catalog items. Returns: type, id, attributes, relationships, links, created_at. Accepts up to 100 catalog items per request (max 5MB payload, max 500 jobs in progress at once).

get_single_klaviyo_catalog_item_bulk_create_job_by_id

Get a single catalog item bulk create job by id in Klaviyo. Returns: type, id, attributes, relationships, links. Related catalog items can be included via the include parameter. Required: id.

create_a_klaviyo_back_in_stock_subscription

Create a back in stock subscription in Klaviyo, subscribing a profile to receive notifications when a catalog item is back in stock. This is a server-side endpoint; use the client-side equivalent for browser contexts. Returns an empty 202 response on success.

list_all_klaviyo_catalog_categorie_items

List all catalog items in a Klaviyo catalog category. Returns each item with type, id, attributes (title, external_id, price, published, created, updated, url, images), relationships, and links. Required: catalog_category_id. Max 100 per page.

list_all_klaviyo_catalog_category_bulk_create_jobs

List all catalog category bulk create jobs in Klaviyo. Returns: type, id, attributes, relationships, links, status, created_at, total_count, completed_count, failed_count, completed_at, errors, expires_at. Max 100 jobs per request.

create_a_klaviyo_catalog_category_bulk_create_job

Create a catalog category bulk create job in Klaviyo to create a batch of catalog categories. Returns: type, id, attributes, relationships, links, created_at. Accepts up to 100 categories per request; 5MB max payload; 500 concurrent jobs max. A request body with category data is required.

get_single_klaviyo_catalog_category_bulk_create_job_by_id

Get a single catalog category bulk create job by id in Klaviyo. Returns: type, id, attributes, relationships, links, status, created_at, total_count, completed_count, failed_count, completed_at, errors, expires_at. Supports include=categories for related category data. Required: id.

list_all_klaviyo_catalog_category_bulk_delete_jobs

List Klaviyo catalog category bulk delete jobs. Returns each job including id, type, attributes (status, counts, timestamps, errors), and links. Max 100 per page.

create_a_klaviyo_catalog_category_bulk_delete_job

Create a Klaviyo catalog category bulk delete job to delete a batch of catalog categories. Returns the created job including id, type, attributes (status, counts, timestamps, errors), and links. Required: data. Max 100 categories per request, 5MB payload, 500 concurrent jobs.

get_single_klaviyo_catalog_category_bulk_delete_job_by_id

Get a Klaviyo catalog category bulk delete job by id. Returns the job including id, type, attributes (status, counts, timestamps, errors), and links. Required: id.

list_all_klaviyo_catalog_category_bulk_update_jobs

List all klaviyo catalog category bulk update jobs. Returns: type, id, attributes, relationships, links, status, created_at, total_count, completed_count, failed_count, completed_at, errors, expires_at. Max 100 jobs per request. Optionally filter by status (queued, processing, complete, cancelled) using the `filter` parameter.

create_a_klaviyo_catalog_category_bulk_update_job

Create a klaviyo catalog category bulk update job to update a batch of up to 100 catalog categories in a single request. Returns: type, id, attributes, relationships, links, created_at. Max 500 concurrent jobs in progress.

get_single_klaviyo_catalog_category_bulk_update_job_by_id

Get a Klaviyo catalog category bulk update job by id. Returns the job object including id, status, created_at, completed_at, expires_at, completed_count, failed_count, total_count, and errors. Optionally include related category data via the include parameter. Required: id.

list_all_klaviyo_catalog_item_bulk_delete_jobs

List Klaviyo catalog item bulk delete jobs. Returns: type, id, attributes, relationships, links. Max 100 jobs per request.

create_a_klaviyo_catalog_item_bulk_delete_job

Create a Klaviyo catalog item bulk delete job to delete a batch of up to 100 catalog items. Returns: type, id, attributes, relationships, links. Required: data. Max payload 5MB; max 500 concurrent jobs.

get_single_klaviyo_catalog_item_bulk_delete_job_by_id

Get a single Klaviyo catalog item bulk delete job by id. Returns: type, id, attributes, relationships, links. Required: id.

list_all_klaviyo_catalog_item_bulk_update_jobs

List Klaviyo catalog item bulk update jobs, optionally filtered by status. Returns: type, id, attributes, relationships, links. Max 100 jobs per page.

create_a_klaviyo_catalog_item_bulk_update_job

Create a Klaviyo catalog item bulk update job to asynchronously update a batch of up to 100 catalog items. Returns: type, id, attributes, relationships, links. Accepts up to 100 items per request; max payload size 5MB; max 500 jobs in progress at one time.

get_single_klaviyo_catalog_item_bulk_update_job_by_id

Get a single Klaviyo catalog item bulk update job by id, optionally including related catalog items. Returns: type, id, attributes, relationships, links. Required: id. Use the include parameter with 'items' to retrieve related catalog item data.

list_all_klaviyo_catalog_item_categories

List all Klaviyo catalog categories that a given catalog item belongs to. Returns each category with id, external_id, name, and updated timestamp. Required: catalog_item_id. Max 100 categories per request; sortable by created.

list_all_klaviyo_catalog_item_variants

List all variants for a specific Klaviyo catalog item. Returns each variant with type, id, attributes (title, sku, price, external_id, published, created, updated), relationships, and links. Required: catalog_item_id. Max 100 variants per request.

list_all_klaviyo_catalog_variant_bulk_create_jobs

List Klaviyo catalog variant bulk create jobs. Returns each job with id, status, created_at, total_count, completed_count, failed_count, and errors. Max 100 per page. Filter by status using equals(status,'processing').

create_a_klaviyo_catalog_variant_bulk_create_job

Create a Klaviyo catalog variant bulk create job to batch-create up to 100 catalog variants. Returns: type, id, attributes, relationships, links. Accepts up to 100 variants per request; max 5MB payload; max 500 concurrent jobs. Required: data (with nested variants array).

get_single_klaviyo_catalog_variant_bulk_create_job_by_id

Get a single Klaviyo catalog variant bulk create job by id. Returns: type, id, attributes, relationships, links. Use the include parameter to retrieve related variant resources. Required: id.

list_all_klaviyo_catalog_variant_bulk_delete_jobs

List catalog variant bulk delete jobs in Klaviyo. Returns: type, id, attributes, relationships, links. Max 100 jobs per request.

create_a_klaviyo_catalog_variant_bulk_delete_job

Create a catalog variant bulk delete job in Klaviyo to delete a batch of catalog variants. Returns: type, id, attributes, relationships, links, created_at. Required: type, attributes. Accepts up to 100 variants per request, max 5MB payload, 500 concurrent jobs.

get_single_klaviyo_catalog_variant_bulk_delete_job_by_id

Get a Klaviyo catalog variant bulk delete job by id. Returns the job resource including id, type, and attributes with status, created_at, completed_at, expires_at, total_count, completed_count, failed_count, and errors. Required: id.

list_all_klaviyo_catalog_variant_bulk_update_jobs

List Klaviyo catalog variant bulk update jobs. Returns: type, id, attributes, relationships, links, status, created_at, total_count, completed_count, failed_count, completed_at, expires_at, errors. Max 100 per page. Filter by status using the equals operator.

create_a_klaviyo_catalog_variant_bulk_update_job

Create a Klaviyo catalog variant bulk update job to update a batch of catalog variants asynchronously. Returns: type, id, attributes, relationships, links, created_at. Accepts up to 100 variants per request; max 5MB payload; max 500 concurrent jobs. Required: data.

get_single_klaviyo_catalog_variant_bulk_update_job_by_id

Get a single Klaviyo catalog variant bulk update job by id. Returns: type, id, attributes, relationships, links, status, created_at, total_count, completed_count, failed_count, completed_at, expires_at, errors. Use include to retrieve related variant data. Required: id.

create_a_klaviyo_conversation_message

Send an outbound message to a conversation in Klaviyo. Returns an empty 202 response on success. Requires account-level enablement. Required: data.

list_all_klaviyo_coupon_code_bulk_create_jobs

List Klaviyo coupon code bulk create jobs. Returns: type, id, attributes, relationships, links. Max 100 per page. Filter by status using the equals operator.

create_a_klaviyo_coupon_code_bulk_create_job

Create a Klaviyo coupon code bulk create job to bulk create coupon codes. Returns: type, id, attributes, relationships, links, created_at. Required: type, attributes (containing coupon-codes). Max 1000 coupon codes per job, max 100 jobs queued at once.

get_single_klaviyo_coupon_code_bulk_create_job_by_id

Get a single Klaviyo coupon code bulk create job by id. Returns: type, id, attributes, relationships, links. Use include=coupon-codes to retrieve the coupon codes created by this job. Required: id.

list_all_klaviyo_coupon_codes

List Klaviyo coupon codes associated with a coupon or profile. Returns each coupon code resource including id, type, attributes (unique_code, status, expires_at), and coupon relationship. Required: filter. A coupon or profile filter must be provided.

create_a_klaviyo_coupon_code

Create a Klaviyo coupon code for a given coupon synchronously. Returns the created coupon code with id, type, unique_code, status, and expires_at. Required: type, unique_code, coupon_id.

get_single_klaviyo_coupon_code_by_id

Get a single Klaviyo coupon code by id. Returns the coupon code resource including id, type, attributes (unique_code, status, expires_at), and coupon relationship. Required: id.

update_a_klaviyo_coupon_code_by_id

Update a Klaviyo coupon code's status and/or expires_at by id synchronously. Only 'status' and 'expires_at' are updatable. Returns the updated coupon code with id, type, unique_code, status, and expires_at. Required: id, type.

delete_a_klaviyo_coupon_code_by_id

Delete a Klaviyo coupon code by id synchronously. Returns an empty 204 response on success. Required: id. An exception is raised if a profile has been assigned to the coupon code.

list_all_klaviyo_coupons

List all Klaviyo coupons in an account. Returns an array of coupons, each with type, id, attributes (external_id, description, monitor_configuration), and links.

create_a_klaviyo_coupon

Create a new Klaviyo coupon. Returns the created coupon including type, id, attributes (external_id, description, monitor_configuration), and links. Required: external_id.

get_single_klaviyo_coupon_by_id

Get a single Klaviyo coupon by id. Returns the coupon including type, id, attributes (external_id, description, monitor_configuration), and links. Required: id.

update_a_klaviyo_coupon_by_id

Update a Klaviyo coupon by id. Returns the updated coupon including type, id, attributes (external_id, description, monitor_configuration), and links. Required: id.

delete_a_klaviyo_coupon_by_id

Delete a Klaviyo coupon by id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_relationships_categories

List catalog category relationship linkage objects for a Klaviyo catalog item. Returns: type, id. Required: catalog_item_id. Max 100 per page.

create_a_klaviyo_relationships_category

Add a catalog category relationship to a Klaviyo catalog item by specifying the category type and id. Returns an empty 204 response on success. Required: catalog_item_id, type, id.

klaviyo_relationships_categories_bulk_update

Update (replace) catalog category relationships for a Klaviyo catalog item. Returns an empty 204 response on success. Required: catalog_item_id, data.

klaviyo_relationships_categories_bulk_delete

Remove catalog category relationships from a Klaviyo catalog item. Returns an empty 204 response on success. Required: catalog_item_id, data.

list_all_klaviyo_relationships_items

List catalog item relationships for a Klaviyo catalog category, returning resource identifiers (type and id) for each item in the category. Required: catalog_category_id. Max 100 per page.

create_a_klaviyo_relationships_item

Add catalog items to a catalog category in Klaviyo by creating item relationships. Returns an empty 204 response on success. Required: catalog_category_id, data.

klaviyo_relationships_items_bulk_update

Replace all catalog item relationships for a category in Klaviyo. Returns an empty 204 response on success. Required: catalog_category_id, data.

klaviyo_relationships_items_bulk_delete

Remove catalog items from a category in Klaviyo. Returns an empty 204 response on success. Required: catalog_category_id, data.

list_all_klaviyo_relationships_variants

List Klaviyo catalog variant IDs related to a given catalog item. Returns: type, id. Required: catalog_item_id. Max 100 variants per request; sort by created.

list_all_klaviyo_coupon_code_coupons

Get the Klaviyo coupon associated with a given coupon code. Returns the coupon resource including id, type, attributes (containing description, external_id, and monitor_configuration), and links. Required: coupon_code_id.

list_all_klaviyo_coupon_coupon_codes

List coupon codes associated with a specific Klaviyo coupon. Returns each coupon code record including its id, status, unique_code, and expires_at. Required: coupon_id. Max 100 per page.

create_a_klaviyo_data_privacy_deletion_job

Request a profile deletion in Klaviyo by providing exactly one identifier (email, phone_number, or id). All profiles matching the identifier are deleted asynchronously. Returns an empty 202 response on success. Required: data.type, data.attributes. Exactly one of email, phone_number, or id must be provided; providing multiple returns an error.

create_a_klaviyo_data_source_record_bulk_create_job

Create a bulk data source record import job in Klaviyo to create a batch of up to 500 records. Maximum payload size is 4MB with 512KB per record. Required: data. Returns an empty 204 response on success.

create_a_klaviyo_data_source_record_create_job

Create a data source record import job to create a single record in Klaviyo. Returns an empty 204 response on success. Requires a JSON:API request body. Maximum allowed payload size per-record is 512KB.

list_all_klaviyo_data_sources

List all data sources in a Klaviyo account. Returns each data source's type, id, and attributes including description, namespace, title, and visibility. Max 100 per page.

get_single_klaviyo_data_source_by_id

Get a single Klaviyo data source by id. Returns the data source's type, id, and attributes including description, namespace, title, and visibility. Required: id.

create_a_klaviyo_data_source

Create a new data source in a Klaviyo account. Returns the created data source including its type, id, title, visibility, description, and namespace. Required: type, title.

delete_a_klaviyo_data_source_by_id

Delete a Klaviyo data source by id. Returns an empty 204 response on success. Required: id.

create_a_klaviyo_event_bulk_create_job

Create a batch of events for one or more profiles in Klaviyo, creating or updating profiles as needed. Returns an empty 202 response on success. Required: a request body containing event data where each event includes at least one profile identifier (id, email, or phone_number) and a metric name. Accepts up to 1,000 events per request with a 5MB maximum payload size.

list_all_klaviyo_events

List all Klaviyo events in an account. Returns each event with type, id, attributes (timestamp, event_properties, datetime, uuid), relationships, and links. Custom metrics are not supported in the metric_id filter.

get_single_klaviyo_event_by_id

Get a single Klaviyo event by id. Returns the event with type, id, attributes (timestamp, event_properties, datetime, uuid), relationships, and links. Required: id.

create_a_klaviyo_event

Create a new event in Klaviyo to track a profile's activity, also creating or updating the associated profile. Returns an empty 202 response on success. Required: data with a metric name and at least one profile identifier (email, phone_number, or id).

create_a_klaviyo_object_record_bulk_delete_job

Create a bulk delete job to delete a batch of object records in Klaviyo. Accepts up to 500 object record IDs per request with a maximum payload size of 5MB. Returns an empty 202 Accepted response on success. Required: data.

get_single_klaviyo_object_record_by_id

Get a single Klaviyo object record by its compound ID (formatted as object_type_id:::object_record_id). Returns: type, id, attributes, links. Required: id.

list_all_klaviyo_object_schema_source_mappings

Get the source mapping for a Klaviyo object schema. Returns the source mapping resource including its type, id, attributes (with property_mappings and relationship_mappings), and links. Required: object_schema_id.

create_a_klaviyo_object_schema

Create a new object schema in Klaviyo. Returns: type, id, attributes, relationships, links, title, description, properties, required, status, published_at, visibility, meta. Required: type.

get_single_klaviyo_object_schema_by_id

Get a specific object schema in Klaviyo by its ULID ID. Returns: type, id, attributes, relationships, links, meta. Required: id.

update_a_klaviyo_object_schema_by_id

Update a Klaviyo object schema by id. Returns: type, id, attributes, relationships, links, title, description, properties, required, status, published_at, visibility, meta. Required: id, type.

list_all_klaviyo_object_type_current_schemas

Get the current schema for a Klaviyo custom object type by its ULID ID. Returns: type, id, attributes, relationships, links. Required: object_type_id.

list_all_klaviyo_object_type_draft_schemas

Get the draft schema for a Klaviyo object type by its ULID ID. Returns the object-schema resource including its type, id, attributes, and links, where attributes contains the schema's properties, title, description, status, visibility, published_at, and required field list. Required: object_type_id.

list_all_klaviyo_object_type_object_ingestion_logs

List ingestion logs for a Klaviyo object type. Only ingestion failures are logged. Returns each log entry including its id, type, attributes (errors, event_type, status, summary, timestamp), relationships, and links. Required: object_type_id. Logs are retained for 14 days; results are newest first with a fixed page size of 50.

list_all_klaviyo_object_type_object_records

List all object records for a given Klaviyo custom object type. Returns each record's type, id, attributes (including record_properties), and links. Required: object_type_id. Max 100 records per page.

list_all_klaviyo_object_type_schema_versions

List all schema versions for a Klaviyo object type. Returns: type, id, attributes, relationships, links. Required: object_type_id.

list_all_klaviyo_object_types

List all object types in a Klaviyo account, optionally filtered by namespace. Returns: type, id, attributes, relationships, links, meta.

get_single_klaviyo_object_type_by_id

Get a single object type in Klaviyo by its ULID id. Returns: type, id, attributes, relationships, links, meta. Required: id.

create_a_klaviyo_object_type

Create a new object type in Klaviyo. Returns: type, id, attributes, relationships, links, meta. Required: title and namespace.

delete_a_klaviyo_object_type_by_id

Delete an object type in Klaviyo by its ULID id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_relationships_coupon_codes

List the coupon code IDs associated with a Klaviyo coupon. Returns an array of resource identifier objects with type and id for each coupon code. Required: coupon_id.

list_all_klaviyo_relationships_coupons

Get the coupon relationship (resource linkage) for a Klaviyo coupon code, returning the related coupon's JSON:API resource type and id — not the full coupon resource. Returns: type, id. Required: coupon_code_id.

list_all_klaviyo_relationships_current_schemas

Get the current schema ID relationship for a Klaviyo object type. Returns: type, id, attributes, relationships, links. Required: object_type_id.

list_all_klaviyo_relationships_draft_schemas

Get the draft schema relationship for a Klaviyo object type, returning the related draft schema's resource identifier (type and id) rather than the full schema resource. Returns: type, id. Required: object_type_id.

list_all_klaviyo_relationships_object_ingestion_logs

List ingestion log relationship IDs for a Klaviyo custom object type. Only ingestion failures are logged; logs are retained for 14 days and returned newest first with a fixed page size of 50. Returns: type, id. Required: object_type_id.

list_all_klaviyo_relationships_object_records

List all object record IDs for a given object type in Klaviyo. Returns relationship linkage objects with type and id for each object record. Required: object_type_id.

list_all_klaviyo_relationships_object_schemas

List related object schemas for a Klaviyo object schema by its ULID ID. Returns: type, id, meta. Required: object_schema_id.

create_a_klaviyo_relationships_object_schema

Create a relationship between object schemas in Klaviyo. Returns an empty 204 response on success. Required: object_schema_id, type, id. Flow filtering and segmentation are not supported for object-to-object relationships.

klaviyo_relationships_object_schemas_bulk_update

Update (replace) all relationships between object schemas in Klaviyo with the provided list of related object schemas. Returns an empty 204 response on success. Required: object_schema_id, data.

klaviyo_relationships_object_schemas_bulk_delete

Delete relationships between object schemas in Klaviyo by removing the specified related object schemas. Returns an empty 204 response on success. Required: object_schema_id, data.

list_all_klaviyo_relationships_object_types

List related object types for a Klaviyo object type by its ULID ID. Returns the JSON:API relationship identifier collection including type, id, and meta with description, name, and relationship_id for each related object type. Required: object_type_id.

list_all_klaviyo_relationships_profile_object_schemas

List profile object schema relationships for a Klaviyo object schema. Returns: type, id, links. Required: object_schema_id.

create_a_klaviyo_relationships_profile_object_schema

Create a relationship between a Klaviyo object schema and a profile by providing a type and id linkage object in the request body. Returns an empty 204 response on success. Required: object_schema_id, type, id.

klaviyo_relationships_profile_object_schemas_bulk_update

Replace all profile object schema relationships for a Klaviyo object schema by providing a data array of type and id linkage objects. Returns an empty 204 response on success. Required: object_schema_id, data.

klaviyo_relationships_profile_object_schemas_bulk_delete

Remove profile object schema relationships from a Klaviyo object schema by providing a data array of type and id linkage objects. Returns an empty 204 response on success. Required: object_schema_id, data.

list_all_klaviyo_relationships_profile_object_types

List related profile object types for a Klaviyo object type, returning the relationship linkage (ID mappings only, not full resources). Returns: type, id. Required: object_type_id.

list_all_klaviyo_relationships_schema_versions

List all schema version relationship linkage objects for a Klaviyo object type. Returns the resource identifier mapping (type, id) for each schema version. Required: object_type_id.

list_all_klaviyo_relationships_source_mappings

Get the source mapping relationship (ID linkage) for a Klaviyo object schema. Returns the JSON:API linkage object containing the related source mapping's type and id. Required: object_schema_id.

get_single_klaviyo_source_mapping_by_id

Get a Klaviyo source mapping by its ULID id. Returns the source-mapping resource including id, property_mappings, and relationship_mappings. Required: id.

update_a_klaviyo_source_mapping_by_id

Update a Klaviyo source mapping by its ULID id with new property or relationship mappings. Returns the updated source-mapping resource including id, property_mappings, and relationship_mappings. Required: id.

list_all_klaviyo_event_metrics

Get the metric associated with a specific Klaviyo event by event ID. Returns the metric resource including id, attributes with name, integration, created and updated, and links. Required: event_id.

list_all_klaviyo_event_profiles

Get the Klaviyo profile associated with a specific event by event ID. Returns: type, attributes, id, relationships, links. Required: event_id.

list_all_klaviyo_flow_action_flow_messages

List all Klaviyo flow messages associated with a given flow action. Returns: type, id, attributes, relationships, links, channel, created, definition, updated. Required: flow_action_id. Max 50 per page.

list_all_klaviyo_flow_action_flows

Get the Klaviyo flow associated with a specific flow action. Returns: type, id, attributes, relationships, links. Required: flow_action_id.

delete_a_klaviyo_flow_action_by_id

Delete a Klaviyo flow action by id. Returns an empty 204 response on success. Required: id.

get_single_klaviyo_flow_action_by_id

Get a single Klaviyo flow action by id. Returns the flow action resource including type, id, attributes with created, updated, and definition, plus links and relationships to flow and flow-messages. Required: id.

update_a_klaviyo_flow_action_by_id

Update a Klaviyo flow action by id with a new definition. Returns the updated flow action resource including type, id, attributes (created, definition, updated), and links. Required: id.

list_all_klaviyo_flow_flow_actions

List all flow actions associated with a specific Klaviyo flow. Returns each flow action's id, type, status, action_type, created, updated, and definition. Required: flow_id. Max 50 results per page with cursor-based pagination.

list_all_klaviyo_flow_message_flow_actions

Get the flow action associated with a specific Klaviyo flow message by message ID. Returns: type, id, attributes, relationships, links. Required: flow_message_id.

list_all_klaviyo_flow_message_templates

Get the email template associated with a specific flow message in Klaviyo. Returns: type, id, attributes, links. Required: flow_message_id.

get_single_klaviyo_flow_message_by_id

Get a Klaviyo flow message by its flow message ID. Returns the flow-message resource object including its type, id, attributes (channel, created, definition, updated), relationships, and links. Required: id.

create_a_klaviyo_flow

Create a new Klaviyo flow using an encoded flow definition. New objects within the definition use temporary_id for identification, replaced with real ids after creation. Returns the created flow with id, type, attributes (name, status, created, updated, archived, trigger_type, definition), and links. Required: data.

delete_a_klaviyo_flow_by_id

Delete a Klaviyo flow by id. Returns an empty 204 response on success. Required: id.

get_single_klaviyo_flow_by_id

Get a single Klaviyo flow by id. Returns the flow resource with id, type, attributes (name, status, created, updated, archived, trigger_type, definition), relationships (flow-actions, tags), and links. Required: id.

list_all_klaviyo_flows

List all flows in a Klaviyo account with cursor-based pagination. Returns flow resource objects including type, id, and attributes with name, status, archived, created, updated, and trigger_type. Max 50 per page.

klaviyo_flows_list_tags

List all tags associated with a specific Klaviyo flow. Returns each tag with its type, id, attributes (including name), and links. Required: flow_id.

update_a_klaviyo_flow_by_id

Update the status of a Klaviyo flow and all actions within it. Returns the updated flow object including id, name, status, created, updated, archived, and trigger_type. Required: id, data.

list_all_klaviyo_form_form_versions

List Klaviyo form versions for a specific form. Returns form version resource objects including type, id, attributes (form_type, status, created_at, updated_at, variation_name, ab_test), and links. Required: form_id. Max 100 per page.

list_all_klaviyo_form_version_forms

Get the Klaviyo form associated with a specific form version. Returns the form resource object including its type, id, attributes (name, status, ab_test, created_at, updated_at), and links. Required: form_version_id.

get_single_klaviyo_form_version_by_id

Get a Klaviyo form version by id. Returns the form-version resource object including id, type, attributes (form_type, status, created_at, updated_at, variation_name, ab_test), relationships, and links. Required: id.

create_a_klaviyo_form

Create a new Klaviyo form (signup form, popup, embed, or flyout). Returns the created form's id and attributes: name, status, ab_test, definition, created_at, updated_at. Required: data.type ("form"), data.attributes.name, data.attributes.definition. The definition is the form's full visual builder configuration and is most reliably built by copying the structure from an existing form (GET /api/forms/{id}) rather than authored from scratch.

delete_a_klaviyo_form_by_id

Delete a Klaviyo form by id. Returns an empty 204 response on success. Required: id.

get_single_klaviyo_form_by_id

Get a single Klaviyo form by id. Returns the form's id and attributes: name, status (draft or live), ab_test, definition (the full visual builder configuration), created_at, updated_at. Required: id.

list_all_klaviyo_forms

List forms (signup forms, popups, embeds, and flyouts) in the Klaviyo account. Returns each form's id and attributes: name, status (draft or live), ab_test, definition (the form's visual builder configuration), created_at, updated_at. Supports filtering, sorting, and cursor pagination.

create_a_klaviyo_image_upload

Upload an image from a file to Klaviyo's image library. Returns the created image resource including type, id, attributes (name, image_url, format, size, hidden, updated_at), and links. Required: data and file. Use the Upload Image From URL endpoint to import from a URL or data URI instead.

create_a_klaviyo_image

Upload an image to Klaviyo from a URL or data URI. Returns the created image object including id, name, image_url, format, size, hidden, and updated_at.

get_single_klaviyo_image_by_id

Get a single Klaviyo image by id. Returns the image object including id, name, image_url, format, size, hidden, and updated_at. Required: id.

list_all_klaviyo_images

List all images in a Klaviyo account. Returns each image with id, name, image_url, format, size, hidden, and updated_at. Supports filtering by id, updated_at, format, name, size, and hidden, and sorting by format, id, name, size, or updated_at.

update_a_klaviyo_image_by_id

Update a Klaviyo image by id. Returns the updated image object including id, name, image_url, format, size, hidden, and updated_at. Required: id.

list_all_klaviyo_list_flow_triggers

List all Klaviyo flows where the given list is used as the trigger. Returns flow objects including id, name, status, trigger_type, archived, created, and updated. Required: list_id.

list_all_klaviyo_relationships_flow_actions

List flow action relationship linkage objects for a Klaviyo flow, returning only the type and id of each associated flow action. Required: flow_id. Max 50 results per page.

list_all_klaviyo_relationships_flow_actions_flow_action

Get the flow action relationship for a specific flow message in Klaviyo. Returns the to-one relationship linkage object containing id and type. Required: flow_message_id.

list_all_klaviyo_relationships_flow_messages

List flow message relationships for a Klaviyo flow action, returning the IDs of all associated flow messages. Returns: type, id, links. Required: flow_action_id. Max 50 results per page.

klaviyo_relationships_flows_bulk_delete

Remove a Klaviyo tag's association with one or more flows. Pass the flow resource identifier(s) in the request body whose association with the tag will be removed. Returns an empty 204 response on success. Required: tag_id.

create_a_klaviyo_relationships_flow

Associate a Klaviyo tag with one or more flows by passing a flow resource identifier in the request body. A flow cannot be associated with more than 100 tags. Returns an empty 204 response on success. Required: tag_id.

list_all_klaviyo_relationships_flows

List the flow resource identifiers associated with a given Klaviyo tag. Returns a collection of JSON:API relationship identifier objects, each containing the flow's type and id. Returns: type, id. Required: tag_id.

list_all_klaviyo_relationships_flows_flow

Get the flow relationship (ID mapping) for a specific Klaviyo flow action. Returns the resource identifier object with type and id of the associated flow. Required: flow_action_id.

list_all_klaviyo_relationships_form_versions

List form version resource identifiers (type and id only) for a Klaviyo form — this relationships endpoint returns ID mappings, not full form version attributes. Returns: type, id. Supports filtering by form_type, status, created_at, and updated_at, and sorting by created_at or updated_at. Required: form_id. Max 100 per page.

list_all_klaviyo_relationships_forms

Get the form relationship for a Klaviyo form version, returning the associated form's type and id. Required: form_version_id.

list_all_klaviyo_relationships_metrics

Get the metric ID for a Klaviyo event by event_id. Returns the related metric resource linkage including type and id. Required: event_id.

list_all_klaviyo_relationships_metrics_metric

Get the metric resource identifier associated with a mapped metric in Klaviyo. This is a JSON:API to-one relationship endpoint returning only the related metric's type and id. Returns: type, id. Required: mapped_metric_id.

list_all_klaviyo_relationships_metrics_relationships

List metric IDs associated with a custom metric in Klaviyo. Returns: type, id. Required: custom_metric_id.

klaviyo_relationships_profiles_bulk_delete

Remove one or more profiles from a Klaviyo list by list ID. Accepts up to 1000 profiles per call. Returns an empty 204 response on success. Required: list_id, data.

create_a_klaviyo_relationships_profile

Add one or more profiles to a Klaviyo list by list ID. Accepts up to 1000 profiles per call. Returns an empty 204 response on success. Required: list_id, data.

list_all_klaviyo_relationships_profiles

Get the profile relationship (ID mapping) for a specific Klaviyo event. This returns a JSON:API resource identifier containing the type and id of the profile associated with the event. Returns: type, id. Required: event_id.

list_all_klaviyo_relationships_profiles_profile

Get the profile ID associated with a push token in Klaviyo. Returns a to-one relationship resource identifier object containing type and id. Required: push_token_id.

list_all_klaviyo_relationships_profiles_relationships

List profile membership relationships (ID mappings) for a Klaviyo list, returning resource identifier objects for each profile in the list. Returns: type, id. Required: list_id. Supports filtering by email, phone_number, push_token, _kx, and joined_group_at, and sorting by joined_group_at. Max 100 per page.

list_all_klaviyo_custom_metric_metrics

List all metrics associated with a specific custom metric in Klaviyo. Returns: type, id, attributes, relationships, links. Required: custom_metric_id.

list_all_klaviyo_custom_metrics

List all custom metrics in a Klaviyo account. Returns each custom metric resource with its id, type, and attributes including name, definition, created, and updated.

create_a_klaviyo_custom_metric

Create a new custom metric in Klaviyo. Returns the created custom metric with its id, type, name, definition, created, and updated. Required: name, definition.

get_single_klaviyo_custom_metric_by_id

Get a single custom metric in Klaviyo by id. Returns the custom metric resource with its id, type, and attributes including name, definition, created, and updated. Required: id.

update_a_klaviyo_custom_metric_by_id

Update a custom metric in Klaviyo by id. Returns the updated custom metric with its id, type, name, definition, created, and updated. Required: id.

delete_a_klaviyo_custom_metric_by_id

Delete a custom metric in Klaviyo by id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_mapped_metric_custom_metrics

Get the custom metric associated with a mapped metric type in Klaviyo. Returns the custom-metric resource including its id, name, created, updated, and definition (with aggregation_method and metric_groups). Required: mapped_metric_id.

list_all_klaviyo_mapped_metric_metrics

Get the Klaviyo metric associated with a mapped metric by mapping type. Returns the metric resource including type, id, attributes (name, created, updated, integration), and links. Required: mapped_metric_id.

list_all_klaviyo_mapped_metrics

List all mapped metrics in a Klaviyo account. Returns each mapped metric with its id and updated timestamp. Supports sparse fieldsets for mapped-metric, metric, and custom-metric resources, and including related metric or custom-metric resources.

get_single_klaviyo_mapped_metric_by_id

Get a single mapped metric in Klaviyo by its mapping type id. Returns: type, id, attributes, relationships, links. Required: id.

update_a_klaviyo_mapped_metric_by_id

Update a mapped metric in Klaviyo by its mapping type id. Returns the updated mapped metric with its id and updated timestamp. Required: id.

create_a_klaviyo_metric_aggregate

Query and aggregate Klaviyo metric event data—native metrics, integration-specific metrics, and custom events—via a required JSON request body. Results can be filtered and grouped by time, event, or profile dimensions. Returns: type, id, attributes, links.

list_all_klaviyo_metric_flow_triggers

List all Klaviyo flows triggered by a given metric. Returns: type, id, attributes, relationships, links. Required: metric_id.

list_all_klaviyo_metric_metric_properties

List metric properties for a specific Klaviyo metric. Returns each metric property's id, type, attributes (inferred_type, label, property), and links. Required: metric_id.

list_all_klaviyo_metric_propertie_metrics

Get the Klaviyo metric associated with a specific metric property. Returns the metric resource including its type, id, attributes (name, created, updated, integration with name and category), and links. Required: metric_property_id.

get_single_klaviyo_metric_property_by_id

Get a Klaviyo metric property by id. Returns: type, attributes, id, relationships, links, inferred_type, label, property, sample_values. Required: id.

list_all_klaviyo_metrics

List all metrics in a Klaviyo account. Returns the metric object including id, name, integration, created, and updated for each result. Results can be filtered by integration name or category. Max 200 per page.

get_single_klaviyo_metric_by_id

Get a single Klaviyo metric by id. Returns the full metric object including id, name, integration, created, and updated. Required: id.

list_all_klaviyo_profile_bulk_import_jobs

List all bulk profile import jobs in Klaviyo. Returns each job resource including id, type, attributes (status, created_at, total_count, completed_count, failed_count, started_at, completed_at, expires_at), and links. Max 100 per page.

create_a_klaviyo_profile_bulk_import_job

Create a bulk profile import job in Klaviyo to asynchronously create or update a batch of profiles. Returns: type, id, attributes, relationships, links. The request body is required and the job is processed asynchronously, returning a 202 Accepted response. Accepts up to 10,000 profiles per request with a 5MB maximum payload size and 100KB per-profile limit.

get_single_klaviyo_profile_bulk_import_job_by_id

Get a Klaviyo bulk profile import job by id. Returns: type, id, attributes, relationships, links. Required: id.

create_a_klaviyo_profile_import

Create or update a Klaviyo profile from a set of attributes and optionally an ID for upsert behavior. Returns the profile object including type, id, attributes (email, first_name, last_name, phone_number, created, updated, location, properties), and links. Setting a field to null clears it; omitting leaves it unchanged. Max payload 100KB. Required: data.type, data.attributes.

list_all_klaviyo_profile_lists

List Klaviyo list memberships for a given profile. Returns each list's type, id, attributes (including name, created, and updated), and links. Required: profile_id.

create_a_klaviyo_profile_merge

Merge a source Klaviyo profile into a destination profile by queuing an asynchronous task that merges data and deletes the source. Returns the destination profile including type, id, and links. Required: data.type, data.id (destination profile), and data.relationships.profiles with one source profile entry. Only one source profile accepted per request.

list_all_klaviyo_profile_push_tokens

List all push tokens that belong to a specific Klaviyo profile. Returns each push token record with type, id, attributes (including token, platform, enablement_status, vendor, and created), and links. Required: profile_id.

list_all_klaviyo_profile_segments

List segment memberships for a Klaviyo profile by profile ID. Returns: type, id, attributes, relationships, links. Required: profile_id.

create_a_klaviyo_profile_subscription_bulk_create_job

Create a bulk subscription job to subscribe one or more Klaviyo profiles to email, SMS, WhatsApp, or push marketing. Returns an empty 202 response on success. Required: data. Maximum 1000 profiles per call; either email or phone_number is required per profile; if historical_import is set to true, consented_at is required and must be in the past.

create_a_klaviyo_profile_subscription_bulk_delete_job

Create a bulk unsubscribe job in Klaviyo to unsubscribe one or more profiles from email, SMS, WhatsApp, and push marketing channels. Push tokens in subscriptions.push.tokens will be removed for the specified profiles. Returns an empty 202 response on success. Required: a request body with profiles containing email or phone_number identifiers. Maximum 100 profiles per call; profiles not in the…

list_all_klaviyo_profile_suppression_bulk_create_jobs

List all bulk profile suppression jobs in Klaviyo. Returns: type, id, attributes, relationships, links. Supports filtering by status, list_id, and segment_id, and sorting by created date.

create_a_klaviyo_profile_suppression_bulk_create_job

Create a bulk profile suppression job in Klaviyo by email address (max 100 per request) or by segment/list ID. Returns: type, id, attributes, relationships, links. Required: data.

get_single_klaviyo_profile_suppression_bulk_create_job_by_id

Get a Klaviyo bulk profile suppression job by id. Returns the job resource including type, id, attributes (containing status, created_at, completed_at, total_count, completed_count, and skipped_count), and links. Required: id.

list_all_klaviyo_profile_suppression_bulk_delete_jobs

List all bulk unsuppress profiles jobs in Klaviyo. Returns each job with id, status, created_at, completed_at, total_count, completed_count, and skipped_count. Filter by status, list_id, or segment_id; sort by created date ascending or descending.

create_a_klaviyo_profile_suppression_bulk_delete_job

Create a bulk unsuppress profiles job in Klaviyo by email address or by specifying a segment or list whose members to unsuppress. Only removes USER_SUPPRESSED suppressions; max 100 email addresses per request. Returns: type, id, attributes, relationships, links, status, created_at, completed_at, total_count, completed_count, skipped_count.

get_single_klaviyo_profile_suppression_bulk_delete_job_by_id

Get a single bulk unsuppress profiles job in Klaviyo by id. Returns: type, id, attributes, relationships, links. Required: id.

list_all_klaviyo_push_tokens

List push tokens associated with the Klaviyo company. Returns each push token resource with id, attributes (token, platform, vendor, enablement_status, created, metadata), relationships (profile), and links. Filterable by id, profile.id, enablement_status, and platform.

create_a_klaviyo_push_token

Create or update a push token in Klaviyo. Useful for migrating push tokens from another platform. Returns an empty 202 response on success. Required: data.type, data.attributes.token, data.attributes.vendor, and data.attributes.platform. Maximum payload size is 100KB.

get_single_klaviyo_push_token_by_id

Get a specific Klaviyo push token by id. Returns the push token resource with id, attributes (token, platform, vendor, enablement_status, created, metadata), relationships (profile), and links. Required: id.

delete_a_klaviyo_push_token_by_id

Delete a Klaviyo push token by id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_relationships_custom_metrics

Get the custom metric ID for a mapped metric in Klaviyo. Returns a JSON:API resource identifier object with the type and id of the linked custom metric. Required: mapped_metric_id.

list_all_klaviyo_relationships_flow_triggers

Get the IDs of all Klaviyo flows where a given list is used as the trigger. Returns: type, id. Required: list_id.

list_all_klaviyo_relationships_flow_triggers_flow_triggers

List the IDs of all Klaviyo flows where the given metric is used as the flow trigger. Returns: type, id. Required: metric_id.

list_all_klaviyo_relationships_lists

Get list memberships for a Klaviyo profile, returning resource linkage objects with the type and id of each associated list. Returns: type, id. Required: profile_id.

create_a_klaviyo_relationships_list

Associate a Klaviyo tag with one or more lists by passing a list resource linkage object in the request body. Returns an empty 204 response on success. Required: tag_id, type, id. A list cannot be associated with more than 100 tags.

klaviyo_relationships_lists_bulk_delete

Remove a Klaviyo tag's association with one or more lists by passing list resource linkage objects in the request body. Returns an empty 204 response on success. Required: tag_id, data.

list_all_klaviyo_relationships_lists_relationships

List the list relationship identifiers (JSON:API resource linkage) for a Klaviyo profile bulk import job. Each item contains only the type and id of a related list — use the related-resource endpoint to retrieve full list attributes. Returns: type, id. Required: profile_bulk_import_job_id.

list_all_klaviyo_relationships_metric_properties

List the IDs of metric properties for a given Klaviyo metric. Returns JSON:API resource-identifier objects, each containing a type and id for a metric property. Required: metric_id.

list_all_klaviyo_relationships_push_tokens

List push token IDs associated with a Klaviyo profile. Returns: type, id, attributes, relationships, links. Required: profile_id.

create_a_klaviyo_relationships_segment

Associate a Klaviyo tag with one or more segments by passing segment resource identifiers in the request body. Returns an empty 204 response on success. Required: tag_id. Any single segment cannot be associated with more than 100 tags.

list_all_klaviyo_relationships_segments

List segment membership relationships for a Klaviyo profile. Returns: type, id, attributes, relationships, links. Required: profile_id.

klaviyo_relationships_segments_bulk_delete

Remove a Klaviyo tag's association with one or more segments by passing segment resource identifiers in the request body. Returns an empty 204 response on success. Required: tag_id.

create_a_klaviyo_campaign_values_report

Query campaign analytics values in Klaviyo by submitting a JSON:API request body specifying the statistics, time frame, and conversion metric to analyse. Returns: type, attributes, relationships, id. Required: type, statistics, timeframe, conversion_metric_id.

create_a_klaviyo_flow_series_report

Query flow analytics series data in Klaviyo by submitting a flow series report request. Returns the flow series report including type, id, attributes (containing date_times and results), and links. Required: data (request body with flow series query parameters including statistics, timeframe, interval, and conversion_metric_id).

create_a_klaviyo_flow_values_report

Query flow analytics values data in Klaviyo by submitting a flow values query in the request body. Returns: type, attributes, relationships, id, results, links. Required: statistics, timeframe, and conversion_metric_id in the request body.

create_a_klaviyo_form_series_report

Query Klaviyo form analytics series data by submitting a JSON:API request body with the query specification. Returns: type, attributes, id. Required: request body.

create_a_klaviyo_form_values_report

Query form analytics values data in Klaviyo. Returns a form-values-report object including its id and results. Requires a JSON:API request body specifying the form analytics query criteria.

create_a_klaviyo_segment_series_report

Query Klaviyo segment analytics series data by submitting a report request. Returns the segment series report including id, type, and attributes with date_times and results. Required: a request body specifying the segment analytics query.

create_a_klaviyo_segment_values_report

Query segment analytics values in Klaviyo by submitting a JSON:API request body with the desired query specification. Returns: type, attributes, id, links, relationships. Required: data (including type and attributes).

list_all_klaviyo_profile_bulk_import_job_import_errors

List import errors for a Klaviyo profile bulk import job. Returns import-error records including id, code, title, detail, source, and original_payload. Required: profile_bulk_import_job_id.

list_all_klaviyo_profile_bulk_import_job_lists

Get the Klaviyo list associated with a specific profile bulk import job. Returns a list resource including its type, id, attributes (name, created, updated, opt_in_process), and links. Required: profile_bulk_import_job_id.

list_all_klaviyo_profile_bulk_import_job_profiles

List profiles for a specific Klaviyo bulk profile import job. Returns profile objects including id, attributes (email, first_name, last_name, created, updated), and links. Required: profile_bulk_import_job_id. Max 100 per page.

list_all_klaviyo_profile_conversations

Get the conversation for a Klaviyo profile by profile id. Returns the conversation object including its id, type, attributes (with channel), and links. Required: profile_id.

list_all_klaviyo_profile_conversations_profiles

List all conversations for a Klaviyo profile across all channels. Returns each conversation with type, id, attributes (including channel), and links. Required: profile_id.

list_all_klaviyo_push_token_profiles

Get the Klaviyo profile associated with a given push token. Returns: type, attributes, id, relationships, links. Required: push_token_id. Use the additional-fields parameter to include subscriptions or predictive_analytics data not returned by default.

list_all_klaviyo_relationships_conversations

Get the conversation relationship (ID mapping) for a Klaviyo profile, returning the to-one conversation resource identifier. Returns: type, id, links. Required: profile_id.

list_all_klaviyo_relationships_conversations_relationships

List all conversation relationship IDs for a Klaviyo profile across all channels. Returns JSON:API resource identifier objects containing type and id for each conversation. Required: profile_id.

list_all_klaviyo_relationships_tag_groups

Get the tag group relationship for a specific Klaviyo tag, returning only the related tag group's type and id (the JSON:API relationship object). Required: tag_id.

list_all_klaviyo_reviews

List all Klaviyo reviews with optional filtering, sorting, and sparse fieldsets. Returns: type, id, attributes, relationships, links, author, content, created, email, images, product, public_reply, rating, review_type, smart_quote, status, title, updated, verified. Supports filtering by created, rating, id, item.id, content, status, review_type, and verified. Max 100 per page.

get_single_klaviyo_review_by_id

Get a single Klaviyo review by id. Returns: type, id, attributes, relationships, links, author, content, created, email, images, product, public_reply, rating, review_type, smart_quote, status, title, updated, verified. Required: id.

update_a_klaviyo_review_by_id

Update a Klaviyo review by id, including attributes such as status, public_reply, smart_quote, title, content, rating, and verified. Returns: type, id, attributes, relationships, links, content. Required: id.

list_all_klaviyo_segment_flow_triggers

List all Klaviyo flows where the given segment is used as the trigger. Returns flow objects including id, name, status, archived, trigger_type, created, and updated. Required: segment_id.

list_all_klaviyo_tag_group_tags

List all tags belonging to a specific Klaviyo tag group. Returns: type, id, attributes, relationships, links. Required: tag_group_id.

list_all_klaviyo_tag_groups

List all tag groups in a Klaviyo account. Returns: type, id, attributes, relationships, links. Max 25 per page; supports filtering by name, exclusive, and default, and sorting by name or id.

create_a_klaviyo_tag_group

Create a tag group in Klaviyo. Returns: type, id, attributes, relationships, links, name, exclusive. Required: name. An account cannot have more than 50 tag groups; exclusive defaults to false if omitted.

get_single_klaviyo_tag_group_by_id

Get a single Klaviyo tag group by id. Returns: type, id, attributes, relationships, links. Required: id.

update_a_klaviyo_tag_group_by_id

Update a Klaviyo tag group by id. Only the name can be changed; exclusive and default cannot be modified. Returns an empty 204 response on success. Required: id, name.

delete_a_klaviyo_tag_group_by_id

Delete a Klaviyo tag group by id. Any tags inside the group and their associations are also removed; the default tag group cannot be deleted. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_tag_tag_groups

Get the Klaviyo tag group that a specific tag belongs to. Returns the tag-group resource including its type, id, attributes (name, exclusive, default), and links. Required: tag_id.

create_a_klaviyo_template_clone

Clone a Klaviyo email template from an existing template ID. Returns the new template object including id, name, html, text, amp, editor_type, created, and updated. Required: data.attributes.name, data.relationships.template.data.id. Cloning fails if the account already has 1,000 or more templates.

create_a_klaviyo_template_render

Render a Klaviyo email template by template ID and context, producing the AMP, HTML, and plain text versions. Returns the rendered template object including type, id, attributes (with html, text, and amp content), and links. Required: id, context.

list_all_klaviyo_template_universal_contents

List all universal content blocks in a Klaviyo account. Returns each block as a resource object with id, type, attributes (name, definition, created, updated, screenshot_status, screenshot_url), and links. Filterable by id, name, created, updated, definition.content_type, and definition.type.

create_a_klaviyo_template_universal_content

Create a new universal content block in Klaviyo. Supported block types: button, drop_shadow, horizontal_rule, html, image, spacer, and text. Returns the created resource object with id, type, attributes (name, definition, created, updated, screenshot_status, screenshot_url), and links. Required: name and definition.

get_single_klaviyo_template_universal_content_by_id

Get a single Klaviyo universal content block by id. Returns the resource object with id, type, attributes (name, definition, created, updated, screenshot_status, screenshot_url), and links. Required: id.

update_a_klaviyo_template_universal_content_by_id

Update a Klaviyo universal content block by id. The definition field can only be updated on button, drop_shadow, horizontal_rule, html, image, spacer, and text block types. Returns the updated resource object with id, type, attributes (name, definition, created, updated, screenshot_status, screenshot_url), and links. Required: id.

delete_a_klaviyo_template_universal_content_by_id

Delete a Klaviyo universal content block by id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_templates

List all Klaviyo email templates in an account. Returns each template object with its id, type, and attributes (name, html, text, amp, editor_type, created, updated). Max 10 per page; use additional-fields[template]=definition to include DnD template definitions.

create_a_klaviyo_template

Create a new HTML or drag-and-drop Klaviyo template. Returns the created template including its id, type, attributes (name, html, text, amp, editor_type, created, updated), and links. There is a limit of 1,000 templates per account via the API.

get_single_klaviyo_template_by_id

Get a single Klaviyo template by id. Returns the template object with its id, type, and attributes (name, html, text, amp, editor_type, created, updated). Required: id. Use additional-fields[template]=definition to include DnD template definitions.

update_a_klaviyo_template_by_id

Update a Klaviyo template by id. Returns the updated template including its id, type, attributes (name, html, text, amp, editor_type, created, updated), and links. Required: id. Use additional-fields[template]=definition to include DnD template definitions in the response.

delete_a_klaviyo_template_by_id

Delete a Klaviyo template by id. Returns an empty 204 response on success. Required: id.

list_all_klaviyo_tracking_settings

List all UTM tracking settings in a Klaviyo account. Returns an array with a single tracking setting resource including type, id, attributes, and links. The attributes contain auto_add_parameters, custom_parameters, and UTM parameters (utm_campaign, utm_source, utm_medium, utm_term, utm_id). Max page size is 1.

get_single_klaviyo_tracking_setting_by_id

Get a specific Klaviyo UTM tracking setting by account ID. Returns the tracking setting resource including type, id, attributes, and links. The attributes contain auto_add_parameters, custom_parameters, and UTM parameters (utm_campaign, utm_source, utm_medium, utm_term, utm_id). Required: id.

update_a_klaviyo_tracking_setting_by_id

Update a Klaviyo UTM tracking setting by account ID. Returns the updated tracking setting resource including type, id, attributes, and links. The attributes contain auto_add_parameters, custom_parameters, and UTM parameters (utm_campaign, utm_source, utm_medium, utm_term, utm_id). Required: id.

create_a_klaviyo_client_back_in_stock_subscription

Create a client-side back in stock subscription in Klaviyo, subscribing a profile to receive back-in-stock notifications. Returns an empty 202 Accepted response on success. Required: company_id.

create_a_klaviyo_client_event_bulk_create

Bulk create client events to track profile activity in Klaviyo from client-side environments using a public API key. Accepts a maximum of 1000 events per request. Returns an empty 202 response on success. Required: company_id.

create_a_klaviyo_client_event

Create a new client event in Klaviyo to track a profile's activity from client-side environments. Returns an empty 202 response on success. Required: company_id and a request body containing at least one profile identifier (email, phone_number, or id) and the metric name. Designed for client-side use only; do not use from server-side applications.

list_all_klaviyo_client_geofences

List all geofences in a Klaviyo account, designed for mobile SDK consumption. Returns: type, id, attributes, links, relationships. Required: company_id. Max 100 results per page.

get_single_klaviyo_client_ip_allowlist_by_id

Get the Klaviyo integration-egress IP allowlist by id. Returns: type, id, attributes, links, relationships. Required: id (must be 'integration-egress'; any other value returns 404).

create_a_klaviyo_client_profile

Create or update a client profile in Klaviyo from a client-side environment. Accepts profile attributes including email, phone_number, first_name, last_name, organization, title, image, location, and custom properties. Returns an empty 202 response on success. Existing profile identifiers such as email cannot be updated for existing profiles via this client-side endpoint; use a server-side…

create_a_klaviyo_client_push_token_unregister

Unregister a Klaviyo client push token from a mobile device. Returns an empty 202 response on success. Required: company_id.

create_a_klaviyo_client_push_token

Create or update a client push token in Klaviyo, designed for mobile SDK use with a public API key. Returns an empty 202 response on success. Required: company_id, token, platform, vendor. Push notifications must be enabled.

list_all_klaviyo_client_review_values_reports

List all review values reports in a Klaviyo account grouped by company or product. Returns each report's type, id, and attributes containing computed statistics results. Required: group_by, statistics, timeframe.

create_a_klaviyo_client_subscription

Create a Klaviyo client subscription and consent record for email and/or SMS marketing channels. Returns an empty 202 response on success. At least one of email or phone_number must be provided in the request body. If no subscriptions object is included, subscriptions default to MARKETING.

create_a_klaviyo_web_feed

Create a web feed in Klaviyo. Returns: type, id, attributes, links, url. Required: name, url, content_type, request_method.

delete_a_klaviyo_web_feed_by_id

Delete a Klaviyo web feed by id. Returns an empty 204 response on success. Required: id.

get_single_klaviyo_web_feed_by_id

Get a single Klaviyo web feed by id. Returns the web feed object including its type, id, attributes (name, url, content_type, request_method, status, created, updated), and links. Required: id.

list_all_klaviyo_web_feeds

List all web feeds for a Klaviyo account. Returns web feed objects with type, id, attributes (name, url, content_type, request_method, status, created, updated), and links. Supports filtering by name, created, and updated, and sorting by created, name, or updated.

update_a_klaviyo_web_feed_by_id

Update a Klaviyo web feed by id. Returns: type, id, attributes, links, url. Required: id.

get_single_klaviyo_webhook_topic_by_id

Get a single Klaviyo webhook topic by id. Returns the webhook topic resource including id, type, and links. Required: id.

list_all_klaviyo_webhook_topics

List all webhook topics in a Klaviyo account. Returns each topic resource including id, type, and links.

create_a_klaviyo_webhook

Create a new webhook in Klaviyo. Returns the created webhook including type, id, attributes, relationships, and links. Required: data.

delete_a_klaviyo_webhook_by_id

Delete a Klaviyo webhook by id. Returns an empty 204 response on success. Required: id.

get_single_klaviyo_webhook_by_id

Get a single Klaviyo webhook by id. Returns the webhook including id, name, endpoint_url, enabled, description, created_at, and updated_at. Required: id.

list_all_klaviyo_webhooks

List all webhooks in a Klaviyo account. Returns each webhook with id, name, endpoint_url, enabled, description, created_at, and updated_at.

update_a_klaviyo_webhook_by_id

Update a Klaviyo webhook by id. Returns the updated webhook including type, id, attributes, relationships, and links. Required: id, data.

Why Truto

Why use Truto’s MCP server for Klaviyo

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Klaviyo

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified Marketing Automation API

Contacts

The contact represent a contact in the remote system.

View Docs

Lists

The list represent a list of contacts in the remote system.

View Docs

Segments

Represents a segment of contacts in the remote system.

View Docs

Tags

The tags on a contact in the remote system.

View Docs

How It Works

From zero to integrated

Go live with Klaviyo in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Klaviyo account

Use Truto’s frontend SDK to connect your customer’s Klaviyo account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Klaviyo

Truto’s Proxy API is a 1-to-1 mapping of the Klaviyo API. You call us, we call Klaviyo, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Klaviyo’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Klaviyo on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does Klaviyo use?

Klaviyo uses API key-based authentication. Your end users generate a private API key from their Klaviyo account settings. Truto handles the secure storage and injection of these keys so your application never manages raw credentials directly.

Which Klaviyo objects are covered by Truto's Unified Marketing Automation API?

The Unified Marketing Automation API maps to four core models: Contacts (Klaviyo Profiles), Lists, Segments, and Tags. These cover the most common integration patterns — profile enrichment, list management, audience reading, and tagging for workflow control.

Are Klaviyo-specific tools available out of the box?

Klaviyo-specific tools beyond the Unified API models are built on request. If you need access to additional Klaviyo endpoints — such as Events/Metrics or Flows — Truto can build custom tools tailored to your use case.

How does Truto handle Klaviyo's API rate limits?

Truto manages rate limiting, retries, and pagination automatically at the platform level. You interact with a consistent API interface and Truto ensures requests to Klaviyo stay within allowed limits, handling backoff and retry logic transparently.

Can I write custom properties to Klaviyo Profiles through the Unified API?

Yes. When creating or updating Contacts via the Unified Marketing Automation API, you can pass custom properties (e.g., loyalty_score, subscription_tier) that map to Klaviyo's custom profile properties. These are immediately usable by merchants for segmentation and flow triggers.

Are Klaviyo Segments writable through the API?

No — Klaviyo Segments are dynamic, rule-based audiences that are computed server-side by Klaviyo. They are read-only via the API. To influence Segment membership, you update the underlying Contact properties or Tags that Segments are built on.

Klaviyo

Get Klaviyo integrated into your app

Our team understands what it takes to make a Klaviyo integration successful. A short, crisp 30 minute call with folks who understand the problem.