Klaviyo Campaigns API

campaigns

Operations 26

GET /api/campaigns Get Campaigns #
POST /api/campaigns Create Campaign #
GET /api/campaigns/{id} Get Campaign #
PATCH /api/campaigns/{id} Update Campaign #
DELETE /api/campaigns/{id} Delete Campaign #
GET /api/campaign-messages/{id} Get Campaign Message #
PATCH /api/campaign-messages/{id} Update Campaign Message #
GET /api/campaign-send-jobs/{id} Get Campaign Send Job #
PATCH /api/campaign-send-jobs/{id} Cancel Campaign Send #
GET /api/campaign-recipient-estimation-jobs/{id} Get Campaign Recipient Estimation Job #
GET /api/campaign-recipient-estimations/{id} Get Campaign Recipient Estimation #
POST /api/campaign-clone Create Campaign Clone #
POST /api/campaign-message-assign-template Assign Template to Campaign Message #
POST /api/campaign-send-jobs Send Campaign #
POST /api/campaign-recipient-estimation-jobs Refresh Campaign Recipient Estimation #
GET /api/campaign-messages/{id}/campaign Get Campaign for Campaign Message #
GET /api/campaign-messages/{id}/relationships/campaign Get Campaign ID for Campaign Message #
GET /api/campaign-messages/{id}/template Get Template for Campaign Message #
GET /api/campaign-messages/{id}/relationships/template Get Template ID for Campaign Message #
GET /api/campaign-messages/{id}/image Get Image for Campaign Message #
GET /api/campaign-messages/{id}/relationships/image Get Image ID for Campaign Message #
PATCH /api/campaign-messages/{id}/relationships/image Update Image for Campaign Message #
GET /api/campaigns/{id}/tags Get Tags for Campaign #
GET /api/campaigns/{id}/relationships/tags Get Tag IDs for Campaign #
GET /api/campaigns/{id}/campaign-messages Get Messages for Campaign #
GET /api/campaigns/{id}/relationships/campaign-messages Get Message IDs for Campaign #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/klaviyo-campaigns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

klaviyo-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Klaviyo Accounts Campaigns API
  version: '2026-04-15'
  description: The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
  contact:
    name: Klaviyo Developer Experience Team
    email: developers@klaviyo.com
    url: https://developers.klaviyo.com
  termsOfService: https://www.klaviyo.com/legal/api-terms
  license:
    name: License
    url: https://www.klaviyo.com/legal
servers:
- url: https://a.klaviyo.com
  description: Production
security:
- Klaviyo-API-Key: []
tags:
- name: Campaigns
  description: campaigns
paths:
  /api/campaigns:
    get:
      operationId: get_campaigns
      summary: Get Campaigns
      description: '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`'
      parameters:
      - name: fields[campaign-message]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created_at
            - definition
            - definition.channel
            - definition.content
            - definition.content.action_buttons
            - definition.content.bcc_email
            - definition.content.body
            - definition.content.cc_email
            - definition.content.dynamic_image
            - definition.content.from_email
            - definition.content.from_label
            - definition.content.media_url
            - definition.content.preview_text
            - definition.content.reply_to_email
            - definition.content.subject
            - definition.content.title
            - definition.kv_pairs
            - definition.label
            - definition.notification_type
            - definition.options
            - definition.options.badge
            - definition.options.badge.badge_options
            - definition.options.badge.badge_options.badge_config
            - definition.options.badge.badge_options.set_from_property
            - definition.options.badge.badge_options.value
            - definition.options.badge.display
            - definition.options.on_open
            - definition.options.on_open.android_deep_link
            - definition.options.on_open.ios_deep_link
            - definition.options.on_open.type
            - definition.options.play_sound
            - definition.render_options
            - definition.render_options.add_info_link
            - definition.render_options.add_opt_out_language
            - definition.render_options.add_org_prefix
            - definition.render_options.shorten_links
            - send_times
            - updated_at
        explode: false
      - name: fields[campaign]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - archived
            - audiences
            - audiences.excluded
            - audiences.included
            - created_at
            - name
            - scheduled_at
            - send_options
            - send_options.use_smart_sending
            - send_strategy
            - send_strategy.date
            - send_strategy.datetime
            - send_strategy.method
            - send_strategy.options
            - send_strategy.options.is_local
            - send_strategy.options.send_past_recipients_immediately
            - send_strategy.throttle_percentage
            - send_time
            - status
            - tracking_options
            - tracking_options.add_tracking_params
            - tracking_options.custom_tracking_params
            - tracking_options.is_tracking_clicks
            - tracking_options.is_tracking_opens
            - updated_at
        explode: false
      - name: fields[tag]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
        explode: false
      - name: filter
        in: 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`'
        required: true
        schema:
          type: string
          example: equals(messages.channel,'email')
      - name: include
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
        schema:
          type: array
          items:
            type: string
            enum:
            - campaign-messages
            - tags
        explode: false
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 100. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 100
          maximum: 100
          minimum: 1
      - name: sort
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
        schema:
          type: string
          enum:
          - created_at
          - -created_at
          - id
          - -id
          - name
          - -name
          - scheduled_at
          - -scheduled_at
          - updated_at
          - -updated_at
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetCampaignResponseCollectionCompoundDocument'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:read
    post:
      operationId: create_campaign
      summary: Create Campaign
      description: '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`'
      parameters:
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        description: Creates a campaign from parameters
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CampaignCreateQuery'
      responses:
        '201':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/PostCampaignResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:write
  /api/campaigns/{id}:
    get:
      operationId: get_campaign
      summary: Get Campaign
      description: 'Returns a specific campaign based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `campaigns:read`'
      parameters:
      - name: id
        in: path
        description: The campaign ID to be retrieved
        required: true
        schema:
          description: The campaign ID to be retrieved
          type: string
      - name: fields[campaign-message]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created_at
            - definition
            - definition.channel
            - definition.content
            - definition.content.action_buttons
            - definition.content.bcc_email
            - definition.content.body
            - definition.content.cc_email
            - definition.content.dynamic_image
            - definition.content.from_email
            - definition.content.from_label
            - definition.content.media_url
            - definition.content.preview_text
            - definition.content.reply_to_email
            - definition.content.subject
            - definition.content.title
            - definition.kv_pairs
            - definition.label
            - definition.notification_type
            - definition.options
            - definition.options.badge
            - definition.options.badge.badge_options
            - definition.options.badge.badge_options.badge_config
            - definition.options.badge.badge_options.set_from_property
            - definition.options.badge.badge_options.value
            - definition.options.badge.display
            - definition.options.on_open
            - definition.options.on_open.android_deep_link
            - definition.options.on_open.ios_deep_link
            - definition.options.on_open.type
            - definition.options.play_sound
            - definition.render_options
            - definition.render_options.add_info_link
            - definition.render_options.add_opt_out_language
            - definition.render_options.add_org_prefix
            - definition.render_options.shorten_links
            - send_times
            - updated_at
        explode: false
      - name: fields[campaign]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - archived
            - audiences
            - audiences.excluded
            - audiences.included
            - created_at
            - name
            - scheduled_at
            - send_options
            - send_options.use_smart_sending
            - send_strategy
            - send_strategy.date
            - send_strategy.datetime
            - send_strategy.method
            - send_strategy.options
            - send_strategy.options.is_local
            - send_strategy.options.send_past_recipients_immediately
            - send_strategy.throttle_percentage
            - send_time
            - status
            - tracking_options
            - tracking_options.add_tracking_params
            - tracking_options.custom_tracking_params
            - tracking_options.is_tracking_clicks
            - tracking_options.is_tracking_opens
            - updated_at
        explode: false
      - name: fields[tag]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - name
        explode: false
      - name: include
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
        schema:
          type: array
          items:
            type: string
            enum:
            - campaign-messages
            - tags
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetCampaignResponseCompoundDocument'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:read
    patch:
      operationId: update_campaign
      summary: Update Campaign
      description: 'Update a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `campaigns:write`'
      parameters:
      - name: id
        in: path
        description: The campaign ID to be retrieved
        required: true
        schema:
          description: The campaign ID to be retrieved
          type: string
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        description: Update a campaign and return it
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CampaignPartialUpdateQuery'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/PatchCampaignResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:write
    delete:
      operationId: delete_campaign
      summary: Delete Campaign
      description: 'Delete a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `campaigns:write`'
      parameters:
      - name: id
        in: path
        description: The campaign ID to be deleted
        required: true
        schema:
          description: The campaign ID to be deleted
          type: string
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '204':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:write
  /api/campaign-messages/{id}:
    get:
      operationId: get_campaign_message
      summary: Get Campaign Message
      description: 'Returns a specific message based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `campaigns:read`'
      parameters:
      - name: id
        in: path
        description: The message ID to be retrieved
        required: true
        schema:
          description: The message ID to be retrieved
          type: string
      - name: fields[campaign-message]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created_at
            - definition
            - definition.channel
            - definition.content
            - definition.content.action_buttons
            - definition.content.bcc_email
            - definition.content.body
            - definition.content.cc_email
            - definition.content.dynamic_image
            - definition.content.from_email
            - definition.content.from_label
            - definition.content.media_url
            - definition.content.preview_text
            - definition.content.reply_to_email
            - definition.content.subject
            - definition.content.title
            - definition.kv_pairs
            - definition.label
            - definition.notification_type
            - definition.options
            - definition.options.badge
            - definition.options.badge.badge_options
            - definition.options.badge.badge_options.badge_config
            - definition.options.badge.badge_options.set_from_property
            - definition.options.badge.badge_options.value
            - definition.options.badge.display
            - definition.options.on_open
            - definition.options.on_open.android_deep_link
            - definition.options.on_open.ios_deep_link
            - definition.options.on_open.type
            - definition.options.play_sound
            - definition.render_options
            - definition.render_options.add_info_link
            - definition.render_options.add_opt_out_language
            - definition.render_options.add_org_prefix
            - definition.render_options.shorten_links
            - send_times
            - updated_at
        explode: false
      - name: fields[campaign]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - archived
            - audiences
            - audiences.excluded
            - audiences.included
            - created_at
            - name
            - scheduled_at
            - send_options
            - send_options.use_smart_sending
            - send_strategy
            - send_strategy.date
            - send_strategy.datetime
            - send_strategy.method
            - send_strategy.options
            - send_strategy.options.is_local
            - send_strategy.options.send_past_recipients_immediately
            - send_strategy.throttle_percentage
            - send_time
            - status
            - tracking_options
            - tracking_options.add_tracking_params
            - tracking_options.custom_tracking_params
            - tracking_options.is_tracking_clicks
            - tracking_options.is_tracking_opens
            - updated_at
        explode: false
      - name: fields[image]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - format
            - hidden
            - image_url
            - name
            - size
            - updated_at
        explode: false
      - name: fields[template]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - amp
            - created
            - editor_type
            - html
            - name
            - text
            - updated
        explode: false
      - name: include
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
        schema:
          type: array
          items:
            type: string
            enum:
            - campaign
            - image
            - template
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetCampaignMessageResponseCompoundDocument'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:read
      x-klaviyo-subtag: Messages
    patch:
      operationId: update_campaign_message
      summary: Update Campaign Message
      description: 'Update a campaign message<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `campaigns:write`'
      parameters:
      - name: id
        in: path
        description: The message ID to be retrieved
        required: true
        schema:
          description: The message ID to be retrieved
          type: string
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        description: Update a message and return it
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CampaignMessagePartialUpdateQuery'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/PatchCampaignMessageResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:write
      x-klaviyo-subtag: Messages
  /api/campaign-send-jobs/{id}:
    get:
      operationId: get_campaign_send_job
      summary: Get Campaign Send Job
      description: 'Get a campaign send job<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `campaigns:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the campaign to send
        required: true
        schema:
          description: The ID of the campaign to send
          type: string
      - name: fields[campaign-send-job]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - status
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetCampaignSendJobResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:read
      x-klaviyo-subtag: Jobs
    patch:
      operationId: cancel_campaign_send
      summary: Cancel Campaign Send
      description: '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`'
      parameters:
      - name: id
        in: path
        description: The ID of the currently sending campaign to cancel or revert
        required: true
        schema:
          description: The ID of the currently sending campaign to cancel or revert
          type: string
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        description: 'Permanently cancel the campaign, setting the status to CANCELED or

          revert the campaign, setting the status back to DRAFT'
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CampaignSendJobPartialUpdateQuery'
      responses:
        '204':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-operation-aliases:
      - update_campaign_send_job
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:write
      x-klaviyo-subtag: Jobs
  /api/campaign-recipient-estimation-jobs/{id}:
    get:
      operationId: get_campaign_recipient_estimation_job
      summary: Get Campaign Recipient Estimation Job
      description: '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`'
      parameters:
      - name: id
        in: path
        description: The ID of the campaign to get recipient estimation status
        required: true
        schema:
          description: The ID of the campaign to get recipient estimation status
          type: string
      - name: fields[campaign-recipient-estimation-job]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - status
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetCampaignRecipientEstimationJobResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:read
      x-klaviyo-subtag: Jobs
  /api/campaign-recipient-estimations/{id}:
    get:
      operationId: get_campaign_recipient_estimation
      summary: Get Campaign Recipient Estimation
      description: '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`'
      parameters:
      - name: id
        in: path
        description: The ID of the campaign for which to get the estimated number of recipients
        required: true
        schema:
          description: The ID of the campaign for which to get the estimated number of recipients
          type: string
      - name: fields[campaign-recipient-estimation]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - estimated_recipient_count
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetCampaignRecipientEstimationResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:read
  /api/campaign-clone:
    post:
      operationId: create_campaign_clone
      summary: Create Campaign Clone
      description: '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`'
      parameters:
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        description: Clones a campaign from an existing campaign
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CampaignCloneQuery'
      responses:
        '201':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/PostCampaignResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Campaigns
      x-klaviyo-operation-aliases:
      - clone_campaign
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - campaigns:write
  /api/campaign-message-assign-template:
    post:
      operationId: assign_template_to_campaign_message
      summary: Assign Template to Campaign Message
      description: '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`'
      parameters:
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: str

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