Klaviyo Campaigns API

campaigns

OpenAPI Specification

klaviyo-campaigns-api-openapi.yml Raw ↑
openapi: 3.0.2
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