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.

*Rate limits*:
Burst: `10/s`
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
Allowed field(s)/operator(s):
`id`: `any`
`messages.channel`: `equals`
`name`: `contains`
`status`: `any`, `equals`
`archived`: `equals`
`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`scheduled_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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

*Rate limits*:
Burst: `10/s`
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

*Rate limits*:
Burst: `10/s`
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

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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.

*Rate limits*:
Burst: `10/s`
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: Takes a reusable template, clones it, and assigns the non-reusable clone to the message. required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CampaignMessageAssignTemplateQuery' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/PostCampaignMessageResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - create_campaign_message_assign_template 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: post: operationId: send_campaign summary: Send Campaign description: 'Trigger a campaign to send asynchronously

*Rate limits*:
Burst: `10/s`
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: Trigger the campaign to send asynchronously required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CampaignSendJobCreateQuery' responses: '202': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/PostCampaignSendJobResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - create_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: post: operationId: refresh_campaign_recipient_estimation summary: Refresh Campaign Recipient Estimation description: '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.

*Rate limits*:
Burst: `10/s`
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: '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.' required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CampaignRecipientEstimationJobCreateQuery' responses: '202': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/PostCampaignRecipientEstimationJobResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - create_campaign_recipient_estimation_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-messages/{id}/campaign: get: operationId: get_campaign_for_campaign_message summary: Get Campaign for Campaign Message description: 'Return the related campaign

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read`' parameters: - name: id in: path description: '' required: true schema: type: string - 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: 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/GetCampaignResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_message_campaign x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read x-klaviyo-subtag: Messages /api/campaign-messages/{id}/relationships/campaign: get: operationId: get_campaign_id_for_campaign_message summary: Get Campaign ID for Campaign Message description: 'Returns the ID of the related campaign

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read`' parameters: - name: id in: path description: '' required: true schema: 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: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetCampaignMessageCampaignRelationshipResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_message_relationships_campaign x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read x-klaviyo-subtag: Messages /api/campaign-messages/{id}/template: get: operationId: get_template_for_campaign_message summary: Get Template for Campaign Message description: 'Return the related template

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read` `templates:read`' parameters: - name: id in: path description: '' required: true schema: type: string - 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: 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/GetTemplateResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_message_template x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read - templates:read x-klaviyo-subtag: Messages /api/campaign-messages/{id}/relationships/template: get: operationId: get_template_id_for_campaign_message summary: Get Template ID for Campaign Message description: 'Returns the ID of the related template

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read` `templates:read`' parameters: - name: id in: path description: '' required: true schema: 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: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetCampaignMessageTemplateRelationshipResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_message_relationships_template x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read - templates:read x-klaviyo-subtag: Messages /api/campaign-messages/{id}/image: get: operationId: get_image_for_campaign_message summary: Get Image for Campaign Message description: 'Return the related image for a given campaign message

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read` `images:read`' parameters: - name: id in: path description: '' required: true schema: type: string - 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: 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/GetImageResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_message_image x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read - images:read x-klaviyo-subtag: Messages /api/campaign-messages/{id}/relationships/image: get: operationId: get_image_id_for_campaign_message summary: Get Image ID for Campaign Message description: 'Returns the ID of the related image

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read` `images:read`' parameters: - name: id in: path description: '' required: true schema: 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: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetCampaignMessageImageRelationshipResponse' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_message_relationships_image x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read - images:read x-klaviyo-subtag: Messages patch: operationId: update_image_for_campaign_message summary: Update Image for Campaign Message description: 'Update a campaign message image

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:write` `images:read`' parameters: - name: id in: path description: '' required: true schema: 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: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CampaignMessageImageUpdateQuery' responses: '204': description: Success 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - update_campaign_message_relationships_image x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:write - images:read x-klaviyo-subtag: Messages /api/campaigns/{id}/tags: get: operationId: get_tags_for_campaign summary: Get Tags for Campaign description: 'Return all tags that belong to the given campaign.

*Rate limits*:
Burst: `3/s`
Steady: `60/m` **Scopes:** `campaigns:read` `tags:read`' parameters: - name: id in: path description: '' required: true schema: type: string - 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: 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/GetTagResponseCollection' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_tags x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 3/s steady: 60/m x-klaviyo-scopes: - campaigns:read - tags:read /api/campaigns/{id}/relationships/tags: get: operationId: get_tag_ids_for_campaign summary: Get Tag IDs for Campaign description: 'Returns the IDs of all tags associated with the given campaign.

*Rate limits*:
Burst: `3/s`
Steady: `60/m` **Scopes:** `campaigns:read` `tags:read`' parameters: - name: id in: path description: '' required: true schema: 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: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetCampaignTagsRelationshipsResponseCollection' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_relationships_tags x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 3/s steady: 60/m x-klaviyo-scopes: - campaigns:read - tags:read /api/campaigns/{id}/campaign-messages: get: operationId: get_messages_for_campaign summary: Get Messages for Campaign description: 'Return all messages that belong to the given campaign.

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read`' parameters: - name: id in: path description: '' required: true schema: 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/GetCampaignMessageResponseCollectionCompoundDocument' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_campaign_messages - get_campaign_messages x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read /api/campaigns/{id}/relationships/campaign-messages: get: operationId: get_message_ids_for_campaign summary: Get Message IDs for Campaign description: 'Returns the IDs of all messages associated with the given campaign.

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `campaigns:read`' parameters: - name: id in: path description: '' required: true schema: 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: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetCampaignMessagesRelationshipsResponseCollection' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Campaigns x-klaviyo-operation-aliases: - get_campaign_relationships_campaign_messages - get_campaign_relationships_messages x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - campaigns:read components: schemas: CampaignMessageIncrement: type: object properties: badge_config: type: string enum: - increment_one required: - badge_config CampaignMessageCreateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignMessageEnum' attributes: type: object properties: definition: oneOf: - $ref: '#/components/schemas/EmailMessageDefinition' - $ref: '#/components/schemas/SMSMessageDefinitionCreate' - $ref: '#/components/schemas/MobilePushMessageStandardDefinitionCreate' - $ref: '#/components/schemas/MobilePushMessageSilentDefinitionCreate' required: - definition relationships: type: object properties: image: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: The associated image for mobile_push messages type: string required: - type - id required: - type - attributes MobilePushOptions: type: object properties: on_open: nullable: true oneOf: - $ref: '#/components/schemas/PushOnOpenApp' - $ref: '#/components/schemas/PushOnOpenDeepLink' badge: description: Only supported on iOS. nullable: true oneOf: - $ref: '#/components/schemas/MobilePushBadge' - $ref: '#/components/schemas/MobilePushNoBadge' play_sound: description: Only supported on iOS. type: boolean default: false nullable: true ImageResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: The ID of the image type: string example: '7' attributes: type: object properties: name: type: string image_url: type: string format: type: string size: type: integer hidden: type: boolean updated_at: type: string format: date-time example: '2022-11-08T00:00:00+00:00' required: - name - image_url - format - size - hidden - updated_at links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links CampaignPartialUpdateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The campaign ID to be retrieved type: string attributes: type: object properties: name: description: The campaign name type: string example: My new campaign nullable: true audiences: description: The audiences to be included and/or excluded from the campaign $ref: '#/components/schemas/AudiencesUpdate' nullable: true send_options: description: Options to use when sending a campaign nullable: true oneOf: - $ref: '#/components/schemas/EmailSendOptions' - $ref: '#/components/schemas/SMSSendOptions' - $ref: '#/components/schemas/PushSendOptions' tracking_options: description: The tracking options associated with the campaign nullable: true oneOf: - $ref: '#/components/schemas/CampaignsEmailTrackingOptions' - $ref: '#/components/schemas/CampaignsSMSTrackingOptions' send_strategy: description: The send strategy the campaign will send with nullable: true oneOf: - $ref: '#/components/schemas/StaticSendStrategy' - $ref: '#/components/schemas/ThrottledSendStrategy' - $ref: '#/components/schemas/ImmediateSendStrategy' - $ref: '#/components/schemas/SmartSendTimeStrategy' required: - type - id - attributes StaticSendStrategy: type: object properties: method: type: string enum: - static datetime: description: The time to send at type: string format: date-time example: '2022-11-08T00:00:00+00:00' options: description: If the campaign should be sent with local recipient timezone send (requires UTC time) or statically sent at the given time. nullable: true oneOf: - $ref: '#/components/schemas/LocalStaticSend' - $ref: '#/components/schemas/NonLocalStaticSend' required: - method - datetime CampaignMessageEnum: type: string enum: - campaign-message SMSContentCreate: type: object properties: body: description: The message body type: string example: My preview sms nullable: true GetTagResponseCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/TagResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data ListEnum: type: string enum: - list GetCampaignResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CampaignResponseObjectResource' included: type: array items: oneOf: - $ref: '#/components/schemas/TagResponseObjectResource' - $ref: '#/components/schemas/CampaignMessageResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CampaignMessageAssignTemplateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message ID to be assigned to type: string relationships: type: object properties: template: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/TemplateEnum' id: description: The template ID to assign type: string example: RipRmi required: - type - id required: - template required: - type - id - relationships PushSendOptions: type: object properties: use_smart_sending: description: Use smart sending. type: boolean example: true default: true nullable: true GetCampaignMessageCampaignRelationshipResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The campaign ID type: string required: - type - id links: $ref: '#/components/schemas/ObjectLinks' required: - data Audiences: type: object properties: included: description: A list of included audiences type: array items: type: string example: - Y6nRLr excluded: description: An optional list of excluded audiences type: array items: type: string example: - UTd5ui nullable: true required: - included GetCampaignMessageResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CampaignMessageResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' included: type: array items: oneOf: - $ref: '#/components/schemas/TemplateResponseObjectResource' - $ref: '#/components/schemas/CampaignResponseObjectResource' - $ref: '#/components/schemas/ImageResponseObjectResource' required: - data CampaignMessageResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message ID type: string attributes: type: object properties: definition: nullable: true oneOf: - $ref: '#/components/schemas/EmailMessageDefinition' - $ref: '#/components/schemas/SMSMessageDefinition' - $ref: '#/components/schemas/MobilePushMessageStandardDefinition' - $ref: '#/components/schemas/MobilePushMessageSilentDefinition' send_times: description: The list of appropriate Send Time Sub-objects associated with the message type: array items: $ref: '#/components/schemas/SendTime' nullable: true created_at: description: The datetime when the message was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated_at: description: The datetime when the message was last updated type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true relationships: type: object properties: campaign: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The parent campaign id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' template: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/TemplateEnum' id: description: The associated template id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' image: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: The associated image id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links CampaignRecipientEstimationJobCreateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignRecipientEstimationJobEnum' id: description: The ID of the campaign to perform recipient estimation type: string required: - type - id StaticTrackingParam: type: object properties: type: description: The type of the tracking parameter type: string enum: - static value: description: The value of the tracking parameter type: string name: description: Name of the tracking param type: string example: utm_medium required: - type - value - name ObjectLinks: type: object properties: self: type: string format: uri required: - self EmailContentSubObject: type: object properties: subject: description: The subject of the message type: string example: Buy our product! nullable: true preview_text: description: Preview text associated with the message type: string example: My preview text nullable: true from_email: description: The email the message should be sent from type: string example: store@my-company.com nullable: true from_label: description: The label associated with the from_email type: string example: My Company nullable: true reply_to_email: description: Optional Reply-To email address type: string example: reply-to@my-company.com nullable: true cc_email: description: Optional CC email address type: string example: cc@my-company.com nullable: true bcc_email: description: Optional BCC email address type: string example: bcc@my-company.com nullable: true ABTestSendStrategy: type: object properties: method: type: string enum: - ab_test_campaign required: - method TagEnum: type: string enum: - tag SMSContent: type: object properties: body: description: The message body type: string example: My preview sms nullable: true media_url: description: URL for included media type: string nullable: true GetCampaignResponse: type: object properties: data: $ref: '#/components/schemas/CampaignResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data SendTime: type: object properties: datetime: description: The datetime that the message is to be sent type: string format: date-time example: '2022-11-08T00:00:00+00:00' is_local: description: Whether that datetime is to be a local datetime for the recipient type: boolean required: - datetime - is_local CampaignMessagePartialUpdateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message ID to be retrieved type: string attributes: type: object properties: definition: description: The contents and settings of the campaign message nullable: true oneOf: - $ref: '#/components/schemas/EmailMessageDefinition' - $ref: '#/components/schemas/SMSMessageDefinitionCreate' - $ref: '#/components/schemas/MobilePushMessageStandardDefinitionUpdate' - $ref: '#/components/schemas/MobilePushMessageSilentDefinitionUpdate' relationships: type: object properties: image: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: The associated image for mobile_push messages type: string required: - type - id required: - type - id - attributes SMSContentSubObject: type: object properties: body: description: The message body type: string example: My preview sms nullable: true media_url: description: URL for included media type: string nullable: true PostCampaignSendJobResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignSendJobEnum' id: description: The ID of the campaign to send type: string attributes: type: object properties: status: description: The status of the send job type: string enum: - cancelled - complete - processing - queued required: - status links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data MobilePushNoBadge: type: object properties: display: description: Whether to display a badge on the app icon type: boolean enum: - false required: - display CampaignCreateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignCreateQueryResourceObject' required: - data CampaignResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The campaign ID type: string attributes: type: object properties: name: description: The campaign name type: string status: description: The current status of the campaign type: string enum: - Adding Recipients - Cancelled - 'Cancelled: Account Disabled' - 'Cancelled: Billing Limit' - 'Cancelled: Internal Error' - 'Cancelled: Misconfigured' - 'Cancelled: No Recipients' - 'Cancelled: Smart Sending' - Draft - Preparing to schedule - Preparing to send - Queued without Recipients - Scheduled - Sending - Sending Segments - Sent - Unknown - Variations Sent archived: description: Whether the campaign has been archived or not type: boolean audiences: description: The audiences to be included and/or excluded from the campaign $ref: '#/components/schemas/Audiences' send_options: description: Options to use when sending a campaign oneOf: - $ref: '#/components/schemas/EmailSendOptions' - $ref: '#/components/schemas/SMSSendOptions' - $ref: '#/components/schemas/PushSendOptions' tracking_options: description: The tracking options associated with the campaign nullable: true oneOf: - $ref: '#/components/schemas/CampaignsEmailTrackingOptions' - $ref: '#/components/schemas/CampaignsSMSTrackingOptions' send_strategy: description: The send strategy the campaign will send with oneOf: - $ref: '#/components/schemas/StaticSendStrategy' - $ref: '#/components/schemas/SmartSendTimeStrategy' - $ref: '#/components/schemas/ThrottledSendStrategy' - $ref: '#/components/schemas/ImmediateSendStrategy' - $ref: '#/components/schemas/ABTestSendStrategy' - $ref: '#/components/schemas/UnsupportedSendStrategy' created_at: description: The datetime when the campaign was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' scheduled_at: description: The datetime when the campaign was scheduled for future sending type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated_at: description: The datetime when the campaign was last updated by a user or the system type: string format: date-time example: '2022-11-08T00:00:00+00:00' send_time: description: The datetime when the campaign will be / was sent or None if not yet scheduled by a send_job. type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true required: - name - status - archived - audiences - send_options - send_strategy - created_at - updated_at relationships: type: object properties: campaign-messages: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message(s) associated with the campaign type: string links: $ref: '#/components/schemas/RelationshipLinks' tags: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/TagEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links PatchCampaignMessageResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message ID type: string attributes: type: object properties: definition: nullable: true oneOf: - $ref: '#/components/schemas/EmailMessageDefinition' - $ref: '#/components/schemas/SMSMessageDefinition' - $ref: '#/components/schemas/MobilePushMessageStandardDefinition' - $ref: '#/components/schemas/MobilePushMessageSilentDefinition' send_times: description: The list of appropriate Send Time Sub-objects associated with the message type: array items: $ref: '#/components/schemas/SendTime' nullable: true created_at: description: The datetime when the message was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated_at: description: The datetime when the message was last updated type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true relationships: type: object properties: campaign: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The parent campaign id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' template: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/TemplateEnum' id: description: The associated template id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' image: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: The associated image id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data EmailContent: type: object properties: subject: description: The subject of the message type: string example: Buy our product! nullable: true preview_text: description: Preview text associated with the message type: string example: My preview text nullable: true from_email: description: The email the message should be sent from type: string example: store@my-company.com nullable: true from_label: description: The label associated with the from_email type: string example: My Company nullable: true reply_to_email: description: Optional Reply-To email address type: string example: reply-to@my-company.com nullable: true cc_email: description: Optional CC email address type: string example: cc@my-company.com nullable: true bcc_email: description: Optional BCC email address type: string example: bcc@my-company.com nullable: true SMSMessageDefinitionCreate: type: object properties: channel: type: string enum: - sms content: $ref: '#/components/schemas/SMSContentCreate' description: Additional attributes relating to the content of the message nullable: true render_options: description: Additional options for rendering the message $ref: '#/components/schemas/RenderOptions' nullable: true required: - channel CampaignMessageStaticCount: type: object properties: badge_config: type: string enum: - set_count value: type: string required: - badge_config - value ImageEnum: type: string enum: - image MobilePushMessageStandardDefinitionUpdate: type: object properties: channel: type: string enum: - mobile_push kv_pairs: description: The key-value pairs to be sent with the push notification type: object nullable: true content: $ref: '#/components/schemas/MobilePushContentUpdate' description: Additional attributes relating to the content of the message nullable: true options: description: Additional device specific options for the push notification $ref: '#/components/schemas/MobilePushOptions' nullable: true notification_type: description: The type of notification to send type: string example: standard default: standard enum: - standard required: - channel CampaignMessageAssignTemplateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignMessageAssignTemplateQueryResourceObject' required: - data GetCampaignMessageResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CampaignMessageResponseObjectResource' included: type: array items: oneOf: - $ref: '#/components/schemas/TemplateResponseObjectResource' - $ref: '#/components/schemas/CampaignResponseObjectResource' - $ref: '#/components/schemas/ImageResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data MobilePushMessageStandardDefinitionCreate: type: object properties: channel: type: string enum: - mobile_push content: $ref: '#/components/schemas/MobilePushContentCreate' description: Additional attributes relating to the content of the message kv_pairs: description: The key-value pairs to be sent with the push notification type: object nullable: true options: $ref: '#/components/schemas/MobilePushOptions' nullable: true notification_type: description: The type of notification to send type: string example: standard default: standard enum: - standard required: - channel - content RenderOptionsSubObject: type: object properties: shorten_links: type: boolean example: true default: true nullable: true add_org_prefix: type: boolean example: true default: true nullable: true add_info_link: type: boolean example: true default: true nullable: true add_opt_out_language: type: boolean default: false nullable: true GetTemplateResponse: type: object properties: data: $ref: '#/components/schemas/TemplateResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data FlowEnum: type: string enum: - flow CampaignEnum: type: string enum: - campaign LocalStaticSend: type: object properties: is_local: description: Whether the campaign should be sent with local recipient timezone send (requires UTC time) or statically sent at the given time. type: boolean enum: - true send_past_recipients_immediately: description: Determines if we should send to local recipient timezone if the given time has passed. Only applicable to local sends. type: boolean default: false required: - is_local MobilePushContentUpdate: type: object properties: title: description: The title of the message type: string nullable: true body: description: The message body type: string example: My preview push notification nullable: true dynamic_image: description: The dynamic image to be used in the push notification type: string nullable: true action_buttons: description: Action buttons for the push notification (max 3, positions 0-indexed with no gaps) type: array items: $ref: '#/components/schemas/PushActionButtonDefinition' nullable: true MobilePushContent: type: object properties: title: description: The title of the message type: string nullable: true body: description: The message body type: string example: My preview push notification nullable: true dynamic_image: description: The dynamic image to be used in the push notification type: string nullable: true action_buttons: description: Action buttons for the push notification type: array items: $ref: '#/components/schemas/PushActionButtonDefinition' nullable: true CampaignCloneQuery: type: object properties: data: $ref: '#/components/schemas/CampaignCloneQueryResourceObject' required: - data AudiencesUpdate: type: object properties: included: description: An optional list of included audiences, will override existing included audiences type: array items: type: string example: - Y6nRLr nullable: true excluded: description: An optional list of excluded audiences, will override exising excluded audiences type: array items: type: string example: - UTd5ui nullable: true PostCampaignRecipientEstimationJobResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignRecipientEstimationJobEnum' id: description: The ID of the campaign used for estimating recipients type: string example: 01GMRWDSA0ARTAKE1SFX8JGXAY attributes: type: object properties: status: description: The status of the recipient estimation job type: string enum: - cancelled - complete - processing - queued required: - status links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data PatchCampaignResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The campaign ID type: string attributes: type: object properties: name: description: The campaign name type: string status: description: The current status of the campaign type: string enum: - Adding Recipients - Cancelled - 'Cancelled: Account Disabled' - 'Cancelled: Billing Limit' - 'Cancelled: Internal Error' - 'Cancelled: Misconfigured' - 'Cancelled: No Recipients' - 'Cancelled: Smart Sending' - Draft - Preparing to schedule - Preparing to send - Queued without Recipients - Scheduled - Sending - Sending Segments - Sent - Unknown - Variations Sent archived: description: Whether the campaign has been archived or not type: boolean audiences: description: The audiences to be included and/or excluded from the campaign $ref: '#/components/schemas/Audiences' send_options: description: Options to use when sending a campaign oneOf: - $ref: '#/components/schemas/EmailSendOptions' - $ref: '#/components/schemas/SMSSendOptions' - $ref: '#/components/schemas/PushSendOptions' tracking_options: description: The tracking options associated with the campaign nullable: true oneOf: - $ref: '#/components/schemas/CampaignsEmailTrackingOptions' - $ref: '#/components/schemas/CampaignsSMSTrackingOptions' send_strategy: description: The send strategy the campaign will send with oneOf: - $ref: '#/components/schemas/StaticSendStrategy' - $ref: '#/components/schemas/SmartSendTimeStrategy' - $ref: '#/components/schemas/ThrottledSendStrategy' - $ref: '#/components/schemas/ImmediateSendStrategy' - $ref: '#/components/schemas/ABTestSendStrategy' - $ref: '#/components/schemas/UnsupportedSendStrategy' created_at: description: The datetime when the campaign was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' scheduled_at: description: The datetime when the campaign was scheduled for future sending type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated_at: description: The datetime when the campaign was last updated by a user or the system type: string format: date-time example: '2022-11-08T00:00:00+00:00' send_time: description: The datetime when the campaign will be / was sent or None if not yet scheduled by a send_job. type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true required: - name - status - archived - audiences - send_options - send_strategy - created_at - updated_at relationships: type: object properties: campaign-messages: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message(s) associated with the campaign type: string links: $ref: '#/components/schemas/RelationshipLinks' tags: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/TagEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data CampaignRecipientEstimationJobEnum: type: string enum: - campaign-recipient-estimation-job GetCampaignMessagesRelationshipsResponseCollection: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message ID type: string links: $ref: '#/components/schemas/CollectionLinks' required: - data RelationshipLinks: type: object properties: self: type: string format: uri related: type: string format: uri required: - self - related MobilePushMessageSilentDefinition: type: object properties: channel: type: string enum: - mobile_push notification_type: description: The type of notification to send type: string enum: - silent kv_pairs: description: The key-value pairs to be sent with the push notification type: object nullable: true required: - channel - notification_type CampaignMessageProperty: type: object properties: badge_config: type: string enum: - set_property set_from_property: type: string required: - badge_config - set_from_property GetCampaignMessageTemplateRelationshipResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/TemplateEnum' id: description: The ID of template type: string required: - type - id links: $ref: '#/components/schemas/ObjectLinks' required: - data GetCampaignResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CampaignResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' included: type: array items: oneOf: - $ref: '#/components/schemas/TagResponseObjectResource' - $ref: '#/components/schemas/CampaignMessageResponseObjectResource' required: - data MobilePushMessageSilentDefinitionUpdate: type: object properties: channel: type: string enum: - mobile_push kv_pairs: description: The key-value pairs to be sent with the push notification type: object notification_type: description: The type of notification to send type: string example: silent default: silent enum: - silent required: - channel CampaignRecipientEstimationJobResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/CampaignRecipientEstimationJobEnum' id: description: The ID of the campaign used for estimating recipients type: string example: 01GMRWDSA0ARTAKE1SFX8JGXAY attributes: type: object properties: status: description: The status of the recipient estimation job type: string enum: - cancelled - complete - processing - queued required: - status links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links CampaignRecipientEstimationEnum: type: string enum: - campaign-recipient-estimation EmailSendOptions: type: object properties: use_smart_sending: description: Use smart sending. type: boolean example: true default: true nullable: true CampaignCloneQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The campaign ID to be cloned type: string attributes: type: object properties: new_name: description: The name for the new cloned campaign type: string example: My cloned campaign's new name nullable: true required: - type - id - attributes SMSMessageDefinition: type: object properties: channel: type: string enum: - sms content: $ref: '#/components/schemas/SMSContent' description: Additional attributes relating to the content of the message nullable: true render_options: description: Additional options for rendering the message $ref: '#/components/schemas/RenderOptions' nullable: true required: - channel TagResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/TagEnum' id: description: The Tag ID type: string example: abcd1234-ef56-gh78-ij90-abcdef123456 attributes: type: object properties: name: description: The Tag name type: string example: My Tag required: - name relationships: type: object properties: tag-group: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/TagGroupEnum' id: type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' lists: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/ListEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' segments: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/SegmentEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' campaigns: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/CampaignEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' flows: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/FlowEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links PushOnOpenApp: type: object properties: type: type: string enum: - open_app required: - type SmartSendTimeStrategy: type: object properties: method: type: string enum: - smart_send_time date: description: The day to send on type: string format: date required: - method - date MobilePushMessageSilentDefinitionCreate: type: object properties: channel: type: string enum: - mobile_push kv_pairs: description: The key-value pairs to be sent with the push notification type: object nullable: true notification_type: description: The type of notification to send type: string example: silent default: silent enum: - silent required: - channel SegmentEnum: type: string enum: - segment MobilePushContentCreate: type: object properties: title: description: The title of the message type: string nullable: true body: description: The message body type: string example: My preview push notification dynamic_image: description: The dynamic image to be used in the push notification type: string nullable: true action_buttons: description: Action buttons for the push notification (max 3, positions 0-indexed with no gaps) type: array items: $ref: '#/components/schemas/PushActionButtonDefinition' nullable: true required: - body PushOnOpenDeepLink: type: object properties: type: type: string enum: - deep_link ios_deep_link: description: required for all platforms enabled for push type: string nullable: true android_deep_link: description: required for all platforms enabled for push type: string nullable: true required: - type TagGroupEnum: type: string enum: - tag-group PushActionButtonDefinition: type: object properties: label: description: The button label (max 40 characters) type: string action_type: description: 'The action type: open_app, deep_link, open_url, or dismiss' type: string position: description: The display order of the button (0-indexed). If omitted, inferred from the button's order in the list. type: integer nullable: true url: description: URL for deep_link or open_url action types (max 2048 characters) type: string nullable: true required: - label - action_type GetCampaignRecipientEstimationResponse: type: object properties: data: $ref: '#/components/schemas/CampaignRecipientEstimationResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CampaignSendJobPartialUpdateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignSendJobEnum' id: description: The ID of the currently sending campaign to cancel or revert type: string attributes: type: object properties: action: description: The action you would like to take with this send job from among 'cancel' and 'revert' type: string example: cancel enum: - cancel - revert required: - action required: - type - id - attributes EmailMessageDefinition: type: object properties: channel: type: string enum: - email label: description: The label or name on the message type: string example: My message name nullable: true content: $ref: '#/components/schemas/EmailContent' description: Additional attributes relating to the content of the message nullable: true required: - channel CampaignRecipientEstimationResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/CampaignRecipientEstimationEnum' id: description: The ID of the campaign for which to get the estimated number of recipients type: string attributes: type: object properties: estimated_recipient_count: description: The estimated number of unique recipients the campaign will send to type: integer required: - estimated_recipient_count links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links ThrottledSendStrategy: type: object properties: method: type: string enum: - throttled datetime: description: The time to send at type: string format: date-time throttle_percentage: description: The percentage of recipients per hour to send to. type: integer enum: - 10 - 11 - 13 - 14 - 17 - 20 - 25 - 33 - 50 required: - method - datetime - throttle_percentage CampaignSendJobResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/CampaignSendJobEnum' id: description: The ID of the campaign to send type: string attributes: type: object properties: status: description: The status of the send job type: string enum: - cancelled - complete - processing - queued required: - status links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links CampaignMessageImageUpdateQuery: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: Campaign Message Image type: string example: '14254' required: - type - id required: - data SMSSendOptions: type: object properties: use_smart_sending: description: Use smart sending. type: boolean example: true default: true nullable: true PostCampaignResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The campaign ID type: string attributes: type: object properties: name: description: The campaign name type: string status: description: The current status of the campaign type: string enum: - Adding Recipients - Cancelled - 'Cancelled: Account Disabled' - 'Cancelled: Billing Limit' - 'Cancelled: Internal Error' - 'Cancelled: Misconfigured' - 'Cancelled: No Recipients' - 'Cancelled: Smart Sending' - Draft - Preparing to schedule - Preparing to send - Queued without Recipients - Scheduled - Sending - Sending Segments - Sent - Unknown - Variations Sent archived: description: Whether the campaign has been archived or not type: boolean audiences: description: The audiences to be included and/or excluded from the campaign $ref: '#/components/schemas/Audiences' send_options: description: Options to use when sending a campaign oneOf: - $ref: '#/components/schemas/EmailSendOptions' - $ref: '#/components/schemas/SMSSendOptions' - $ref: '#/components/schemas/PushSendOptions' tracking_options: description: The tracking options associated with the campaign nullable: true oneOf: - $ref: '#/components/schemas/CampaignsEmailTrackingOptions' - $ref: '#/components/schemas/CampaignsSMSTrackingOptions' send_strategy: description: The send strategy the campaign will send with oneOf: - $ref: '#/components/schemas/StaticSendStrategy' - $ref: '#/components/schemas/SmartSendTimeStrategy' - $ref: '#/components/schemas/ThrottledSendStrategy' - $ref: '#/components/schemas/ImmediateSendStrategy' - $ref: '#/components/schemas/ABTestSendStrategy' - $ref: '#/components/schemas/UnsupportedSendStrategy' created_at: description: The datetime when the campaign was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' scheduled_at: description: The datetime when the campaign was scheduled for future sending type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated_at: description: The datetime when the campaign was last updated by a user or the system type: string format: date-time example: '2022-11-08T00:00:00+00:00' send_time: description: The datetime when the campaign will be / was sent or None if not yet scheduled by a send_job. type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true required: - name - status - archived - audiences - send_options - send_strategy - created_at - updated_at relationships: type: object properties: campaign-messages: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message(s) associated with the campaign type: string links: $ref: '#/components/schemas/RelationshipLinks' tags: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/TagEnum' id: type: string links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data CampaignsEmailTrackingOptions: type: object properties: add_tracking_params: description: Whether the campaign needs custom tracking parameters. If set to False, tracking params will not be used. type: boolean nullable: true custom_tracking_params: description: A list of custom tracking parameters. If an empty list is given and add_tracking_params is True, uses company defaults. type: array items: oneOf: - $ref: '#/components/schemas/DynamicTrackingParam' - $ref: '#/components/schemas/StaticTrackingParam' nullable: true is_tracking_clicks: description: Whether the campaign is tracking click events. If not specified, uses company defaults. type: boolean nullable: true is_tracking_opens: description: Whether the campaign is tracking open events. If not specified, uses company defaults. type: boolean nullable: true CampaignRecipientEstimationJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignRecipientEstimationJobCreateQueryResourceObject' required: - data UnsupportedSendStrategy: type: object properties: method: type: string enum: - unsupported required: - method CampaignMessagePartialUpdateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignMessagePartialUpdateQueryResourceObject' required: - data RenderOptions: type: object properties: shorten_links: type: boolean example: true default: true nullable: true add_org_prefix: type: boolean example: true default: true nullable: true add_info_link: type: boolean example: true default: true nullable: true add_opt_out_language: type: boolean default: false nullable: true GetCampaignMessageImageRelationshipResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ImageEnum' id: description: The ID of the image type: string example: '7' required: - type - id links: $ref: '#/components/schemas/ObjectLinks' required: - data GetImageResponse: type: object properties: data: $ref: '#/components/schemas/ImageResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data MobilePushMessageStandardDefinition: type: object properties: channel: type: string enum: - mobile_push notification_type: description: The type of notification to send type: string enum: - standard content: $ref: '#/components/schemas/MobilePushContent' description: Additional attributes relating to the content of the message kv_pairs: description: The key-value pairs to be sent with the push notification type: object nullable: true options: $ref: '#/components/schemas/MobilePushOptions' nullable: true required: - channel - notification_type - content TemplateEnum: type: string enum: - template CampaignPartialUpdateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignPartialUpdateQueryResourceObject' required: - data CampaignCreateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' attributes: type: object properties: name: description: The campaign name type: string example: My new campaign audiences: description: The audiences to be included and/or excluded from the campaign $ref: '#/components/schemas/Audiences' send_strategy: description: The send strategy the campaign will send with. Defaults to 'Immediate' send strategy. nullable: true oneOf: - $ref: '#/components/schemas/StaticSendStrategy' - $ref: '#/components/schemas/ThrottledSendStrategy' - $ref: '#/components/schemas/ImmediateSendStrategy' - $ref: '#/components/schemas/SmartSendTimeStrategy' send_options: description: Options to use when sending a campaign nullable: true oneOf: - $ref: '#/components/schemas/EmailSendOptions' - $ref: '#/components/schemas/SMSSendOptions' - $ref: '#/components/schemas/PushSendOptions' tracking_options: description: The tracking options associated with the campaign nullable: true oneOf: - $ref: '#/components/schemas/CampaignsEmailTrackingOptions' - $ref: '#/components/schemas/CampaignsSMSTrackingOptions' campaign-messages: description: The message(s) associated with the campaign type: object properties: data: type: array items: $ref: '#/components/schemas/CampaignMessageCreateQueryResourceObject' required: - data required: - name - audiences - campaign-messages required: - type - attributes GetCampaignTagsRelationshipsResponseCollection: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/TagEnum' id: description: The Tag ID type: string example: abcd1234-ef56-gh78-ij90-abcdef123456 links: $ref: '#/components/schemas/CollectionLinks' required: - data PostCampaignMessageResponse: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignMessageEnum' id: description: The message ID type: string attributes: type: object properties: label: description: The label or name on the message type: string channel: description: The channel the message is to be sent on type: string content: description: Additional attributes relating to the content of the message oneOf: - $ref: '#/components/schemas/EmailContentSubObject' - $ref: '#/components/schemas/SMSContentSubObject' send_times: description: The list of appropriate Send Time Sub-objects associated with the message type: array items: $ref: '#/components/schemas/SendTimeSubObject' nullable: true render_options: description: Additional options for rendering the message $ref: '#/components/schemas/RenderOptionsSubObject' nullable: true created_at: description: The datetime when the message was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated_at: description: The datetime when the message was last updated type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true required: - label - channel - content relationships: type: object properties: campaign: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CampaignEnum' id: description: The parent campaign id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' template: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/TemplateEnum' id: description: The associated template id type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data GetCampaignRecipientEstimationJobResponse: type: object properties: data: $ref: '#/components/schemas/CampaignRecipientEstimationJobResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CampaignSendJobCreateQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/CampaignSendJobEnum' id: description: The ID of the campaign to send type: string required: - type - id GetCampaignSendJobResponse: type: object properties: data: $ref: '#/components/schemas/CampaignSendJobResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data MobilePushBadge: type: object properties: display: description: Whether to display a badge on the app icon type: boolean enum: - true badge_options: description: Badge options nullable: true oneOf: - $ref: '#/components/schemas/CampaignMessageIncrement' - $ref: '#/components/schemas/CampaignMessageStaticCount' - $ref: '#/components/schemas/CampaignMessageProperty' required: - display CampaignSendJobEnum: type: string enum: - campaign-send-job CampaignSendJobPartialUpdateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignSendJobPartialUpdateQueryResourceObject' required: - data ImmediateSendStrategy: type: object properties: method: type: string enum: - immediate required: - method SendTimeSubObject: type: object properties: datetime: description: The datetime that the message is to be sent type: string format: date-time example: '2022-11-08T00:00:00+00:00' is_local: description: Whether that datetime is to be a local datetime for the recipient type: boolean required: - datetime - is_local CampaignsSMSTrackingOptions: type: object properties: add_tracking_params: description: Whether the campaign needs custom tracking parameters. If set to False, tracking params will not be used. type: boolean nullable: true custom_tracking_params: description: A list of custom tracking parameters. If an empty list is given and add_tracking_params is True, uses company defaults. type: array items: oneOf: - $ref: '#/components/schemas/DynamicTrackingParam' - $ref: '#/components/schemas/StaticTrackingParam' nullable: true NonLocalStaticSend: type: object properties: is_local: description: Whether the campaign should be sent with local recipient timezone send (requires UTC time) or statically sent at the given time. type: boolean enum: - false required: - is_local CollectionLinks: type: object properties: self: type: string format: uri first: type: string format: uri last: type: string format: uri prev: type: string format: uri next: type: string format: uri required: - self DynamicTrackingParam: type: object properties: type: description: The type of the tracking parameter type: string enum: - dynamic value: description: The value of the tracking parameter type: string enum: - campaign_id - campaign_name - campaign_name_id - campaign_name_send_day - email_subject - group_id - group_name - group_name_id - link_alt_text - message_type - profile_external_id - profile_id name: description: Name of the tracking param type: string example: utm_medium required: - type - value - name CampaignSendJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CampaignSendJobCreateQueryResourceObject' required: - data TemplateResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/TemplateEnum' id: description: The ID of template type: string attributes: type: object properties: name: description: The name of the template type: string editor_type: description: '`editor_type` has a fixed set of values: * SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template * SIMPLE: A rich text editor template * CODE: A custom HTML template * USER_DRAGGABLE: A hybrid template, using custom HTML in the drag-and-drop editor' type: string html: description: The rendered HTML of the template type: string text: description: The template plain_text type: string nullable: true amp: description: The AMP version of the template. Requires AMP Email to be enabled to access in-app. Refer to the AMP Email setup guide at https://developers.klaviyo.com/en/docs/send_amp_emails_in_klaviyo type: string nullable: true created: description: The date the template was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm) type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true updated: description: The date the template was updated in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm) type: string format: date-time example: '2022-11-08T00:00:00+00:00' nullable: true required: - name - editor_type - html links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links responses: ClientError: description: Client Error content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object required: - id - code - title - detail properties: id: type: string code: type: string title: type: string detail: type: string source: type: object properties: pointer: type: string parameter: type: string required: - errors ServerError: description: Server Error content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object required: - id - code - title - detail properties: id: type: string code: type: string title: type: string detail: type: string source: type: object properties: pointer: type: string parameter: type: string required: - errors securitySchemes: Klaviyo-API-Key: type: apiKey in: header name: Authorization description: Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#authentication x-default: Klaviyo-API-Key your-private-api-key x-readme: explorer-enabled: false proxy-enabled: true samples-enabled: true