Klaviyo website screenshot

Klaviyo

Klaviyo is a marketing automation and customer data platform built for ecommerce. Build custom integrations to bring data into Klaviyo to create personalized experiences across email, SMS, mobile push, and more. The Klaviyo API exposes profiles, events, lists, segments, campaigns, flows, catalogs, coupons, metrics, reviews, templates, webhooks, and reporting endpoints for building rich integrations and data pipelines.

1 APIs 16 Features
MarketingEmailSMSCustomer DataEcommerceAutomation

APIs

Klaviyo API

The Klaviyo API provides programmatic access to profiles, events, lists, segments, campaigns, flows, templates, catalogs, coupons, metrics, reviews, forms, images, tags, webhook...

Collections

GraphQL

Klaviyo GraphQL Schema

This document describes a conceptual GraphQL schema for the Klaviyo marketing automation and customer data platform. Klaviyo exposes a REST API (v1–v3 and the newer revision-dat...

GRAPHQL

Pricing Plans

Klaviyo Plans Pricing

3 plans

PLANS

Rate Limits

Klaviyo Rate Limits

4 limits

RATE LIMITS

FinOps

Features

Free: 250 profiles, 500 emails/mo, 150 SMS credits/mo
Email plan from $20/mo (500 profiles) up to $720+/mo (50K profiles)
Email + SMS from $35/mo (500 profiles) with 1,250 SMS credits
SMS credits: 1=domestic SMS, 3=MMS, 3-12=international
Public API at api.klaviyo.com
Default 75 req/s burst, 700 req/min steady-state
OAuth 2.0 (private apps) and API keys
Webhooks for profile, event, and metric updates
Profile and event APIs (track, identify)
Lists, segments, campaigns, flows
Templates with drag-and-drop editor
Predictive analytics (CLV, churn risk)
AI segments and AI-generated content
Marketing Agent for campaign and flow creation
350+ ecommerce/CRM integrations
Mobile push notifications and on-site messaging

Event Specifications

Klaviyo Webhooks

AsyncAPI 2.6 description of Klaviyo's system webhook surface. Klaviyo delivers webhook events to subscriber URLs configured via the Webhooks API (POST /api/webhooks). Each deliv...

ASYNCAPI

JSON Structure

Klaviyo Structure

0 properties

JSON STRUCTURE

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Reference
Reference
🔑
Authentication
Authentication
🔗
RateLimits
RateLimits
📄
ChangeLog
ChangeLog
📦
SDKs
SDKs
🟢
StatusPage
StatusPage
📰
Blog
Blog
📝
Signup
Signup
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
💬
Support
Support
👥
GitHub
GitHub

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Klaviyo API
  version: '2026-04-15'
request:
  auth:
    type: apikey
    key: Authorization
    value: '{{Authorization}}'
    placement: header
items:
- info:
    name: Accounts
    type: folder
  items:
  - info:
      name: Get Accounts
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/accounts
      headers:
      - name: revision
        value: ''
      params:
      - name: fields[account]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Retrieve the account(s) associated with a given private API key. This will return 1 account object within the array.


      You can use this to retrieve account-specific data (contact information, timezone, currency, Public API key, etc.) or
      test if a Private API Key belongs to the correct account prior to performing subsequent actions with the API.<br><br>*Rate
      limits*:<br>Burst: `1/s`<br>Steady: `15/m`


      **Scopes:**

      `accounts:read`'
  - info:
      name: Get Account
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/accounts/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the account
      - name: fields[account]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Retrieve a single account object by its account ID. You can only request the account by which the private API key
      was generated.<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady: `15/m`


      **Scopes:**

      `accounts:read`'
- info:
    name: Campaigns
    type: folder
  items:
  - info:
      name: Get Campaigns
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaigns
      headers:
      - name: revision
        value: ''
      params:
      - name: fields[campaign-message]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[campaign]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[tag]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: filter
        value: ''
        type: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed
          field(s)/operator(s):<br>`id`: `any`<br>`messages.channel`: `equals`<br>`name`: `contains`<br>`status`: `any`, `equals`<br>`archived`:
          `equals`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`scheduled_at`: `greater-or-equal`,
          `greater-than`, `less-or-equal`, `less-than`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`,
          `less-than`'
      - name: include
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
      - name: page[cursor]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
      - name: page[size]
        value: ''
        type: query
        description: 'Default: 100. Min: 1. Max: 100.'
      - name: sort
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
    docs: 'Returns some or all campaigns based on filters.


      A channel filter is required to list campaigns. Please provide either:

      `?filter=equals(messages.channel,''email'')` to list email campaigns, or

      `?filter=equals(messages.channel,''sms'')` to list SMS campaigns.

      `?filter=equals(messages.channel,''mobile_push'')` to list mobile push campaigns.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady:
      `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Create Campaign
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/campaigns
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Creates a campaign given a set of parameters, then returns it.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady:
      `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Get Campaign
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaigns/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The campaign ID to be retrieved
      - name: fields[campaign-message]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[campaign]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[tag]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: include
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
    docs: 'Returns a specific campaign based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Update Campaign
      type: http
    http:
      method: PATCH
      url: https://a.klaviyo.com/api/campaigns/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The campaign ID to be retrieved
      body:
        type: json
        data: '{}'
    docs: 'Update a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Delete Campaign
      type: http
    http:
      method: DELETE
      url: https://a.klaviyo.com/api/campaigns/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The campaign ID to be deleted
    docs: 'Delete a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Get Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The message ID to be retrieved
      - name: fields[campaign-message]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[campaign]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[image]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[template]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: include
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
    docs: 'Returns a specific message based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Update Campaign Message
      type: http
    http:
      method: PATCH
      url: https://a.klaviyo.com/api/campaign-messages/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The message ID to be retrieved
      body:
        type: json
        data: '{}'
    docs: 'Update a campaign message<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Get Campaign Send Job
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-send-jobs/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the campaign to send
      - name: fields[campaign-send-job]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Get a campaign send job<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Cancel Campaign Send
      type: http
    http:
      method: PATCH
      url: https://a.klaviyo.com/api/campaign-send-jobs/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the currently sending campaign to cancel or revert
      body:
        type: json
        data: '{}'
    docs: 'Permanently cancel the campaign, setting the status to CANCELED or

      revert the campaign, setting the status back to DRAFT<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Get Campaign Recipient Estimation Job
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-recipient-estimation-jobs/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the campaign to get recipient estimation status
      - name: fields[campaign-recipient-estimation-job]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Retrieve the status of a recipient estimation job triggered

      with the `Create Campaign Recipient Estimation Job` endpoint.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Get Campaign Recipient Estimation
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-recipient-estimations/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the campaign for which to get the estimated number of recipients
      - name: fields[campaign-recipient-estimation]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Get the estimated recipient count for a campaign with the provided campaign ID.

      You can refresh this count by using the `Create Campaign Recipient Estimation Job` endpoint.<br><br>*Rate limits*:<br>Burst:
      `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Create Campaign Clone
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/campaign-clone
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Clones an existing campaign, returning a new campaign based on the original with a new ID and name.<br><br>*Rate
      limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Assign Template to Campaign Message
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/campaign-message-assign-template
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Creates a non-reusable version of the template and assigns it to the message.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady:
      `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Send Campaign
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/campaign-send-jobs
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Trigger a campaign to send asynchronously<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Refresh Campaign Recipient Estimation
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/campaign-recipient-estimation-jobs
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Trigger an asynchronous job to update the estimated number of recipients

      for the given campaign ID. Use the `Get Campaign Recipient Estimation

      Job` endpoint to retrieve the status of this estimation job. Use the

      `Get Campaign Recipient Estimation` endpoint to retrieve the estimated

      recipient count for a given campaign.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`'
  - info:
      name: Get Campaign for Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id/campaign
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: fields[campaign]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Return the related campaign<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Get Campaign ID for Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id/relationships/campaign
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: 'Returns the ID of the related campaign<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Get Template for Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id/template
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: fields[template]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Return the related template<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`

      `templates:read`'
  - info:
      name: Get Template ID for Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id/relationships/template
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: 'Returns the ID of the related template<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`

      `templates:read`'
  - info:
      name: Get Image for Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id/image
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: fields[image]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Return the related image for a given campaign message<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`

      `images:read`'
  - info:
      name: Get Image ID for Campaign Message
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaign-messages/:id/relationships/image
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: 'Returns the ID of the related image<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`

      `images:read`'
  - info:
      name: Update Image for Campaign Message
      type: http
    http:
      method: PATCH
      url: https://a.klaviyo.com/api/campaign-messages/:id/relationships/image
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Update a campaign message image<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:write`

      `images:read`'
  - info:
      name: Get Tags for Campaign
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaigns/:id/tags
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: fields[tag]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Return all tags that belong to the given campaign.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


      **Scopes:**

      `campaigns:read`

      `tags:read`'
  - info:
      name: Get Tag IDs for Campaign
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaigns/:id/relationships/tags
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: 'Returns the IDs of all tags associated with the given campaign.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady:
      `60/m`


      **Scopes:**

      `campaigns:read`

      `tags:read`'
  - info:
      name: Get Messages for Campaign
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaigns/:id/campaign-messages
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: fields[campaign-message]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[campaign]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[image]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[template]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: include
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
    docs: 'Return all messages that belong to the given campaign.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


      **Scopes:**

      `campaigns:read`'
  - info:
      name: Get Message IDs for Campaign
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/campaigns/:id/relationships/campaign-messages
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: 'Returns the IDs of all messages associated with the given campaign.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady:
      `150/m`


      **Scopes:**

      `campaigns:read`'
- info:
    name: Catalogs
    type: folder
  items:
  - info:
      name: Get Catalog Items
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/catalog-items
      headers:
      - name: revision
        value: ''
      params:
      - name: fields[catalog-item]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[catalog-variant]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: filter
        value: ''
        type: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed
          field(s)/operator(s):<br>`ids`: `any`<br>`category.id`: `equals`<br>`title`: `contains`<br>`published`: `equals`'
      - name: include
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
      - name: page[cursor]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
      - name: page[size]
        value: ''
        type: query
        description: 'Default: 100. Min: 1. Max: 100.'
      - name: sort
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
    docs: 'Get all catalog items in an account.


      Catalog items can be sorted by the following fields, in ascending and descending order:

      `created`


      Currently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`.


      Returns a maximum of 100 items per request.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


      **Scopes:**

      `catalogs:read`'
  - info:
      name: Create Catalog Item
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/catalog-items
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Create a new catalog item.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`


      **Scopes:**

      `catalogs:write`'
  - info:
      name: Get Catalog Item
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/catalog-items/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: 'The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`.
          Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.'
      - name: fields[catalog-item]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: fields[catalog-variant]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: include
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
    docs: 'Get a specific catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


      **Scopes:**

      `catalogs:read`'
  - info:
      name: Update Catalog Item
      type: http
    http:
      method: PATCH
      url: https://a.klaviyo.com/api/catalog-items/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: 'The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`.
          Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.'
      body:
        type: json
        data: '{}'
    docs: 'Update a catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`


      **Scopes:**

      `catalogs:write`'
  - info:
      name: Delete Catalog Item
      type: http
    http:
      method: DELETE
      url: https://a.klaviyo.com/api/catalog-items/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: 'The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`.
          Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.'
    docs: 'Delete a catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`


      **Scopes:**

      `catalogs:write`'
  - info:
      name: Get Catalog Variants
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/catalog-variants
      headers:
      - name: revision
        value: ''
      params:
      - name: fields[catalog-variant]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: filter
        value: ''
        type: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed
          field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`sku`: `equals`<br>`title`: `contains`<br>`published`:
          `equals`'
      - name: page[cursor]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
      - name: page[size]
        value: ''
        type: query
        description: 'Default: 100. Min: 1. Max: 100.'
      - name: sort
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
    docs: 'Get all variants in an account.


      Variants can be sorted by the following fields, in ascending and descending order:

      `created`


      Currently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`.


      Returns a maximum of 100 variants per request.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


      **Scopes:**

      `catalogs:read`'
  - info:
      name: Create Catalog Variant
      type: http
    http:
      method: POST
      url: https://a.klaviyo.com/api/catalog-variants
      headers:
      - name: revision
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Create a new variant for a related catalog item.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`


      **Scopes:**

      `catalogs:write`'
  - info:
      name: Get Catalog Variant
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/catalog-variants/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: 'The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`.
          Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.'
      - name: fields[catalog-variant]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
    docs: 'Get a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


      **Scopes:**

      `catalogs:read`'
  - info:
      name: Update Catalog Variant
      type: http
    http:
      method: PATCH
      url: https://a.klaviyo.com/api/catalog-variants/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: 'The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`.
          Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.'
      body:
        type: json
        data: '{}'
    docs: 'Update a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`


      **Scopes:**

      `catalogs:write`'
  - info:
      name: Delete Catalog Variant
      type: http
    http:
      method: DELETE
      url: https://a.klaviyo.com/api/catalog-variants/:id
      headers:
      - name: revision
        value: ''
      params:
      - name: id
        value: ''
        type: path
        description: 'The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`.
          Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.'
    docs: 'Delete a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`


      **Scopes:**

      `catalogs:write`'
  - info:
      name: Get Catalog Categories
      type: http
    http:
      method: GET
      url: https://a.klaviyo.com/api/catalog-categories
      headers:
      - name: revision
        value: ''
      params:
      - name: fields[catalog-category]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
      - name: filter
        value: ''
        type: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed
          field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`name`: `contains`'
      - name: page[cursor]
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
      - name: page[size]
        value: ''
        type: query
        description: 'Default: 100. Min: 1. Max: 100.'
      - name: sort
        value: ''
        type: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
    docs: 'Get all catalog categories in an account.


      Catalog categories can be sorted by the following fields, in ascending and descending ord

# --- truncated at 32 KB (272 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/apis.yml