- Retrieve all Klaviyo accounts associated with the current API key. Always returns exactly one account object per key.
- Retrieve detailed configuration for a specific Klaviyo account by its unique account ID.
- List email, SMS, or push campaigns with required channel filter and optional sorting and pagination.
- Retrieve complete details for a single campaign by its unique ID, including status, audiences, send strategy, and tracking options.
- Create a new email, SMS, or mobile push campaign as a draft. Requires specifying the channel, audiences, and at least one campaign message.
- Update campaign properties such as name, target audiences, send strategy, or tracking options before the campaign is sent.
- Permanently delete a campaign by ID. This action cannot be undone. Only Draft campaigns can be deleted.
- Duplicate an existing campaign to create a new Draft campaign, optionally giving it a new name.
- Get the current estimated number of recipients for a campaign based on its configured audiences.
- Retrieve all tags associated with a specific campaign for organizational and filtering purposes.
- Retrieve all campaign messages (email, SMS, or push variants) that belong to a specific campaign.
- Retrieve full details for a specific campaign message by its unique ID, including channel-specific content and render options.
- Update the content and settings of a campaign message, including channel-specific fields such as subject, body, sender info, and mobile push options.
- Assign an email template to a campaign message, creating a non-reusable snapshot of the template's HTML for that message.
- Trigger a campaign to send immediately (or at its configured scheduled time) by creating an asynchronous send job. Campaign message must have a template assigned (via assign_template_to_campaign_message) and an audience configured before sending.
- Cancel an in-progress campaign send job or revert a scheduled campaign back to Draft status. Campaign must be in Scheduled state (after send_campaign). The action attribute supports both 'cancel' and 'revert' (back to Draft), but 'revert' is not documented by Klaviyo. Each is one-time -- cancelled campaigns cannot be reverted.
- List all product catalog items in the account with filtering by title, category, or IDs, sorting by creation date, and cursor-based pagination up to 100 items per page.
- Create a new product catalog item with title, description, URL, price, and images, optionally assigning it to one or more catalog categories.
- Retrieve the full details of a specific catalog item by its compound ID, with optional variant inclusion and sparse fieldsets.
- Update an existing catalog item's title, description, URL, price, images, or published status using PATCH semantics - only supplied fields are changed.
- Permanently delete a catalog item by its compound ID, removing it from all recommendation feeds and product blocks.
- Submit an asynchronous bulk job to create up to 100 catalog items in a single request, returning a job ID to poll for completion.
- Submit an asynchronous bulk job to update up to 100 existing catalog items in a single request, returning a job ID to poll for completion.
- Submit an asynchronous bulk job to permanently delete up to 100 catalog items in a single request, returning a job ID to poll for completion.
- List all product catalog categories in the account with filtering by name or item membership, sorting by creation date, and cursor-based pagination up to 100 categories per page.
- Create a new product catalog category with an external ID and display name, optionally assigning catalog items to it at creation time.
- Retrieve the full details of a specific catalog category by its compound ID, including its name and external ID.
- Update an existing catalog category's name or item associations using PATCH semantics - only supplied fields are changed.
- Permanently delete a catalog category by its compound ID, removing the category grouping without deleting the items it contained.
- Submit an asynchronous bulk job to create up to 100 catalog categories in a single request, returning a job ID to poll for completion.
- Submit an asynchronous bulk job to update up to 100 existing catalog categories in a single request, returning a job ID to poll for completion.
- Submit an asynchronous bulk job to permanently delete up to 100 catalog categories in a single request, returning a job ID to poll for completion.
- List all product catalog variants in the account with filtering by item, SKU, title, or published status, sorting by creation date, and cursor-based pagination up to 100 variants per page.
- Create a new catalog variant (size, color, or style variation) for an existing catalog item, with SKU, inventory, price, and URL.
- Retrieve the full details of a specific catalog variant by its compound ID, including SKU, inventory quantity, price, and published status.
- Update an existing catalog variant's SKU, price, inventory quantity, title, images, or published status using PATCH semantics - only supplied fields are changed.
- Permanently delete a catalog variant by its compound ID, removing it from recommendation feeds and back-in-stock subscription eligibility.
- Submit an asynchronous bulk job to create up to 100 catalog variants in a single request, each linked to an existing parent catalog item, returning a job ID to poll for completion.
- Submit an asynchronous bulk job to update up to 100 existing catalog variants in a single request, returning a job ID to poll for completion.
- Submit an asynchronous bulk job to permanently delete up to 100 catalog variants in a single request, returning a job ID to poll for completion.
- Additively associate one or more catalog items with a specific category without replacing existing item memberships.
- Remove specific catalog items from a category's membership without affecting other items already in the category.
- Additively assign one or more catalog categories to a specific item without replacing its existing category memberships.
- Remove specific category assignments from a catalog item without affecting the item's other category memberships.
- Subscribe an existing profile to back-in-stock notifications for a specific catalog variant via EMAIL, PUSH, or SMS channels, for use in server-side applications.
- Track a client-side event from a browser or mobile app using the public API key. No server-side credentials required.
- Create or update a Klaviyo profile from client-side code using the public API key. Safe for use in browser and mobile apps.
- List all coupons in the account with optional sparse fieldsets and cursor-based pagination.
- Create a new coupon container with a unique external ID, matching your e-commerce platform's coupon identifier.
- Retrieve complete details for a specific coupon by its unique Klaviyo coupon ID.
- Update the description or monitor configuration of an existing coupon. The external_id cannot be changed after creation. Note: Shopify-originated coupons (synced from Shopify via Klaviyo UI) return 404 on get/update/delete — they are not accessible via the Coupons API.
- Permanently delete a coupon and all its associated coupon codes. This action is irreversible. Note: Shopify-originated coupons (synced from Shopify via Klaviyo UI) return 404 on get/update/delete — they are not accessible via the Coupons API. Only API-created or non-Shopify UI-uploaded coupons can be managed.
- List coupon codes filtered by coupon ID or profile ID. A filter specifying coupon.id or profile.id is required.
- Create a single unique coupon code and associate it with an existing coupon. Use bulk_create_coupon_codes for creating multiple codes at once.
- Retrieve full details for a specific coupon code by its unique ID, including its status, unique code value, and expiration date.
- Update the status or expiration date of an existing coupon code. Useful for manually marking codes as used or extending their validity.
- Permanently delete a single coupon code by its ID. This action is irreversible.
- Create up to 1000 coupon codes in a single bulk job, associating each with an existing coupon.
- List Klaviyo events (customer activity records) with optional filtering by metric, profile, or date range.
- Track a server-side customer activity event for a profile, such as a purchase, page view, or custom business action.
- Retrieve complete details for a specific event by its unique ID, including all event properties and optional metric and profile data.
- Efficiently ingest up to 1000 events in a single asynchronous bulk job, grouped by profile for high-volume tracking scenarios.
- List all Klaviyo automation flows with optional filtering by name, status, trigger type, and date, plus pagination and sorting.
- Retrieve the full configuration of a specific Klaviyo flow by its unique ID, including trigger definition and optional flow actions.
- Retrieve detailed configuration for a single flow action step by its unique ID, including its type, branching links, and optional message content.
- Retrieve the content and configuration of a specific flow message by its ID, including channel-specific content and template association.
- List all action steps for a specific flow with pagination, filtering by action type or status, and sorting.
- Retrieve all tags associated with a specific flow for organizational and categorization purposes.
- List all message variants associated with a specific flow action step, with pagination, filtering, and sorting options.
- Create a new Klaviyo automation flow with a trigger, chained actions, and optional profile filters. Use this to programmatically set up welcome series, abandoned cart, post-purchase, birthday, and other automated messaging workflows.
- Permanently delete a flow and all its actions by flow ID. Use this to remove test flows or decommission automation workflows. This action cannot be undone.
- Update a single action within a flow — change email subject lines, SMS body text, delay durations, split conditions, or action status. Use this to modify existing flow actions without recreating the entire flow.
- List all signup forms and pop-ups in the account with filtering, sorting, and cursor-based pagination up to 100 results per page.
- Retrieve the full configuration and version history for a specific Klaviyo form by its unique ID.
- Create a new Klaviyo form — popup, flyout, embed, banner, or full screen. Use this to programmatically deploy signup forms, coupon popups, back-in-stock alerts, and other customer-facing form experiences.
- Permanently delete a form by its ID. Use this to remove test forms or decommission form experiences. This action cannot be undone.
- List all images in the Klaviyo asset library with filtering by name, format, size, or visibility, plus sorting and pagination.
- Import an image into the Klaviyo asset library from a public URL or a base64-encoded data URI.
- Retrieve complete metadata for a specific image in the Klaviyo asset library by its unique ID.
- Update the name or visibility (hidden status) of an existing image in the Klaviyo asset library.
- List all subscriber lists in the account with filtering by name or timestamps, sorting, and cursor-based pagination up to 10 results per page.
- Create a new subscriber list with a specified name and opt-in process (single or double opt-in) for managing profile subscriptions.
- Retrieve the full details of a specific subscriber list by its unique ID, with optional profile count, tags, and flow trigger inclusions.
- Update the name or opt-in process (single vs double opt-in) of an existing subscriber list using PATCH semantics.
- Permanently delete a subscriber list from the account - this removes the list definition but does not delete the profiles that were in it.
- Retrieve all tags that have been applied to a specific subscriber list, returning full tag objects including their names.
- Retrieve all profile members of a subscriber list with filtering, sorting by join date, and cursor-based pagination up to 100 per page.
- Add one or more existing profiles to a subscriber list by their profile IDs, up to 1000 profiles per call.
- Remove one or more profiles from a subscriber list by their profile IDs, up to 1000 per call, without affecting their subscription or consent status.
- Retrieve all automation flows that use a specific subscriber list as their trigger, useful for understanding dependencies before modifying or deleting the list.
- List all event metric types tracked in the Klaviyo account, including built-in and integration-specific metrics, up to 200 per page.
- Retrieve complete details for a specific event metric type by its unique ID, including integration source and optional flow trigger relationships.
- Query aggregated event data for a metric over a date range, with grouping by time intervals, campaign, flow, channel, or custom dimensions.
- Retrieve the definition and inferred data type of a specific metric property, with optional sample values for reference.
- Retrieve all automation flows that use a specific metric as their entry trigger event.
- List all custom composite metrics in the account that combine multiple underlying metrics into a single unified reporting and attribution metric.
- Create a new custom composite metric that aggregates multiple base metrics into a single unified metric for attribution and reporting.
- Retrieve the full definition and composition details for a specific custom composite metric by its unique ID.
- Update the name or definition of an existing custom composite metric using PATCH semantics.
- Permanently delete a custom composite metric from the account by its unique ID.
- List all customer profiles in the account with rich filtering, sorting, subscription and predictive analytics data, up to 100 per page.
- Retrieve the complete data for a specific customer profile by its Klaviyo ID, including optional subscription consent, list/segment memberships, and predictive analytics.
- Create a new customer profile with contact details, location, and custom properties; at least one of email, phone_number, or external_id must be provided to uniquely identify the profile.
- Update an existing customer profile's contact details, location, or custom properties using PATCH semantics, with support for appending to or unsetting specific custom property keys.
- Retrieve all subscriber lists that a specific profile is a member of, returning full list objects with name, opt-in process, and timestamps.
- Retrieve all dynamic and static segments that a specific profile currently qualifies for, returning full segment objects with name, status, and definition details.
- Permanently merge one or more source profiles into a destination profile, consolidating their event history, list memberships, and properties - source profiles are deleted after merging. Warning: Merge is destructive and irreversible — the source profile is permanently deleted.
- Submit an asynchronous bulk import job to create or update up to 10,000 profiles in a single request, with optional list assignment for imported profiles.
- Retrieve the subscriber list(s) that profiles were added to during a specific bulk profile import job, useful for verifying list membership after import completion.
- Retrieve all profiles that were successfully created or updated by a completed bulk profile import job, with pagination and optional subscription data.
- Submit a GDPR/CCPA-compliant data deletion request for a profile identified by email, phone number, or Klaviyo profile ID - the deletion is processed asynchronously.
- Generate a campaign performance report with aggregate statistics (opens, clicks, revenue, conversions) for a given timeframe and optional campaign or channel filter.
- Generate a flow performance report with aggregate statistics (opens, clicks, revenue, conversions) broken down by flow, message, or channel for a given timeframe.
- Generate a time-series flow performance report with statistics aggregated into daily, weekly, monthly, or hourly intervals for trend analysis.
- Generate a segment membership report showing how many profiles were added, removed, or are currently in a segment over a given timeframe.
- Generate a time-series segment membership report with statistics aggregated into daily, weekly, monthly, or hourly intervals for growth trend analysis.
- List all segments in the account with filtering by name, status, or timestamps, sorting, and cursor-based pagination, including optional tags and flow trigger inclusions.
- Create a new segment with complex condition groups
- Retrieve the full details of a specific segment by its unique ID, including its condition definition, active status, and optional tags and flow trigger inclusions.
- Update an existing segment with new properties or definition
- Permanently delete a segment from the account by its unique ID - this removes the segment definition but does not delete the profiles that were in it.
- Retrieve all tags applied to a specific segment, returning full tag objects with their names for auditing and UI display purposes.
- Retrieve all profiles currently matching a segment's conditions, with filtering by contact details or join date, sorting, and pagination up to 100 per page.
- Retrieve all automation flows that use a specific segment as their trigger, useful for understanding dependencies before modifying or deleting the segment.
- List all tags in the account with cursor-based pagination, name filtering, and optional tag group inclusion, up to 50 results per page.
- Create a new tag, optionally associating it with a specific tag group, or it defaults to the account's default tag group.
- Retrieve complete details for a specific tag by its unique ID, including optional tag group relationship.
- Update the name of an existing tag by its unique ID using PATCH semantics.
- Permanently delete a tag and automatically remove all its associations with campaigns, flows, lists, and segments.
- Retrieve the IDs of all automation flows that are associated with a specific tag.
- Apply a tag to one or more automation flows to organize and categorize them in the Klaviyo UI.
- Retrieve the IDs of all campaigns that are associated with a specific tag.
- Apply a tag to one or more campaigns to organize and categorize them in the Klaviyo UI.
- Retrieve the IDs of all subscriber lists that are associated with a specific tag.
- Apply a tag to one or more subscriber lists to organize and categorize them in the Klaviyo UI.
- Retrieve the IDs of all segments that are associated with a specific tag.
- Apply a tag to one or more audience segments to organize and categorize them in the Klaviyo UI.
- List all tag groups in the account with filtering by name, exclusivity, or default status, and cursor-based pagination up to 25 results per page.
- Create a new tag group to organize related tags under a shared category, with optional exclusivity enforcement across the account.
- Retrieve the full details of a specific tag group by its unique ID, including its name, exclusivity setting, and default status.
- Update the name of an existing tag group using PATCH semantics - only the name can be changed, not the exclusivity or default status.
- Permanently delete a tag group and all of its tags and their resource associations - the account's default tag group cannot be deleted.
- Retrieve all tags that belong to a specific tag group, returning the full tag objects including their names.
- List all email templates in the account with filtering by name or timestamps, sorting, and cursor-based pagination up to 10 results per page.
- Create a new email template with custom HTML content or a drag-and-drop structure, for use in campaigns and automated flows.
- Retrieve the full HTML content and metadata for a specific email template by its unique ID.
- Update the HTML content, plaintext version, AMP version, or name of an existing email template using PATCH semantics - note that drag-and-drop (USER_DRAGGABLE) templates cannot be updated via API.
- Permanently delete an email template from the account by its unique ID - this action cannot be undone.
- Render an email template with sample profile context data to preview the final HTML, plaintext, and AMP output before sending.
- Create a duplicate copy of an existing email template with an optional new name, useful for creating variations without modifying the original.
- List all reusable universal content blocks in the account with filtering by name, content type, or timestamps, sorting, and pagination up to 100 per page.
- Create a new reusable universal content block (button, image, text, HTML, spacer, horizontal rule, or drop shadow) that can be embedded across multiple email templates.
- Retrieve the full definition and metadata of a specific universal content block by its unique ID, including block type, content, display options, and styles.
- Update the name or block definition of an existing universal content block using PATCH semantics - changes propagate to all templates that embed this block.
- Permanently delete a universal content block from the account - any templates that embed this block will lose the reference and may display broken content.
- List all webhook subscriptions configured in the account, with optional inclusion of their subscribed topic definitions.
- Retrieve the full configuration details of a specific webhook subscription by its unique ID, including endpoint URL, enabled status, and subscribed topics.
- Create a new webhook subscription with an HTTPS endpoint URL, signing secret, and one or more event topic subscriptions for real-time event notifications.
- Update a webhook's name, endpoint URL, signing secret, enabled status, or topic subscriptions using PATCH semantics - useful for rotating secrets or changing event subscriptions.
- Permanently delete a webhook subscription from the account, stopping all event notifications to that endpoint.
- Retrieve all available webhook event topics that can be subscribed to, returning topic IDs and descriptions for use when creating or updating webhooks.
- Retrieve the full details of a specific webhook topic by its ID, including the event schema, payload structure, and description for integration planning.
No matching actions