From dd0e98966969cc7b035aea65cf49e9e782266539 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 31 Jan 2026 13:05:05 -0500 Subject: [PATCH] Add new/preorder/recent filters for product editor, improve data fetching --- docs/klaviyoopenapi.json | 73544 ++++++++++++++++ inventory-server/src/routes/import.js | 245 + .../product-editor/ImageManager.tsx | 88 +- .../product-editor/ProductEditForm.tsx | 144 +- .../src/components/product-editor/types.ts | 9 + inventory/src/pages/ProductEditor.tsx | 464 +- inventory/tsconfig.tsbuildinfo | 2 +- 7 files changed, 74408 insertions(+), 88 deletions(-) create mode 100644 docs/klaviyoopenapi.json diff --git a/docs/klaviyoopenapi.json b/docs/klaviyoopenapi.json new file mode 100644 index 0000000..be19a7e --- /dev/null +++ b/docs/klaviyoopenapi.json @@ -0,0 +1,73544 @@ +{ + "openapi": "3.0.2", + "info": { + "title": "Klaviyo API", + "version": "2026-01-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" + } + ], + "paths": { + "/api/accounts": { + "get": { + "operationId": "get_accounts", + "summary": "Get Accounts", + "description": "Retrieve the account(s) associated with a given private API key. This will return 1 account object within the array.\n\nYou can use this to retrieve account-specific data (contact information, timezone, currency, Public API key, etc.) or test if a Private API Key belongs to the correct account prior to performing subsequent actions with the API.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`accounts:read`", + "parameters": [ + { + "name": "fields[account]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "test_account", + "contact_information", + "contact_information.default_sender_name", + "contact_information.default_sender_email", + "contact_information.website_url", + "contact_information.organization_name", + "contact_information.street_address", + "contact_information.street_address.address1", + "contact_information.street_address.address2", + "contact_information.street_address.city", + "contact_information.street_address.region", + "contact_information.street_address.country", + "contact_information.street_address.zip", + "industry", + "timezone", + "preferred_currency", + "public_api_key", + "locale" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetAccountResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Accounts" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "accounts:read" + ] + } + }, + "/api/accounts/{id}": { + "get": { + "operationId": "get_account", + "summary": "Get Account", + "description": "Retrieve a single account object by its account ID. You can only request the account by which the private API key was generated.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`accounts:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the account", + "required": true, + "schema": { + "description": "The ID of the account", + "type": "string", + "example": "AbC123" + } + }, + { + "name": "fields[account]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "test_account", + "contact_information", + "contact_information.default_sender_name", + "contact_information.default_sender_email", + "contact_information.website_url", + "contact_information.organization_name", + "contact_information.street_address", + "contact_information.street_address.address1", + "contact_information.street_address.address2", + "contact_information.street_address.city", + "contact_information.street_address.region", + "contact_information.street_address.country", + "contact_information.street_address.zip", + "industry", + "timezone", + "preferred_currency", + "public_api_key", + "locale" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetAccountResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Accounts" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "accounts:read" + ] + } + }, + "/api/campaigns": { + "get": { + "operationId": "get_campaigns", + "summary": "Get Campaigns", + "description": "Returns some or all campaigns based on filters.\n\nA channel filter is required to list campaigns. Please provide either:\n`?filter=equals(messages.channel,'email')` to list email campaigns, or\n`?filter=equals(messages.channel,'sms')` to list SMS campaigns.\n`?filter=equals(messages.channel,'mobile_push')` to list mobile push campaigns.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`campaigns:read`", + "parameters": [ + { + "name": "fields[campaign-message]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "definition", + "definition.channel", + "definition.label", + "definition.content", + "definition.content.subject", + "definition.content.preview_text", + "definition.content.from_email", + "definition.content.from_label", + "definition.content.reply_to_email", + "definition.content.cc_email", + "definition.content.bcc_email", + "definition.content.body", + "definition.content.media_url", + "definition.render_options", + "definition.render_options.shorten_links", + "definition.render_options.add_org_prefix", + "definition.render_options.add_info_link", + "definition.render_options.add_opt_out_language", + "definition.notification_type", + "definition.content.title", + "definition.content.dynamic_image", + "definition.kv_pairs", + "definition.options", + "definition.options.on_open", + "definition.options.on_open.type", + "definition.options.on_open.ios_deep_link", + "definition.options.on_open.android_deep_link", + "definition.options.badge", + "definition.options.badge.display", + "definition.options.badge.badge_options", + "definition.options.badge.badge_options.badge_config", + "definition.options.badge.badge_options.value", + "definition.options.badge.badge_options.set_from_property", + "definition.options.play_sound", + "send_times", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[campaign]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "audiences", + "audiences.included", + "audiences.excluded", + "send_options", + "send_options.use_smart_sending", + "tracking_options", + "tracking_options.add_tracking_params", + "tracking_options.custom_tracking_params", + "tracking_options.is_tracking_clicks", + "tracking_options.is_tracking_opens", + "send_strategy", + "send_strategy.method", + "send_strategy.datetime", + "send_strategy.options", + "send_strategy.options.is_local", + "send_strategy.options.send_past_recipients_immediately", + "send_strategy.date", + "send_strategy.throttle_percentage", + "created_at", + "scheduled_at", + "updated_at", + "send_time" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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-01-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-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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`\n\n**Scopes:**\n`campaigns:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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`\n\n**Scopes:**\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "definition", + "definition.channel", + "definition.label", + "definition.content", + "definition.content.subject", + "definition.content.preview_text", + "definition.content.from_email", + "definition.content.from_label", + "definition.content.reply_to_email", + "definition.content.cc_email", + "definition.content.bcc_email", + "definition.content.body", + "definition.content.media_url", + "definition.render_options", + "definition.render_options.shorten_links", + "definition.render_options.add_org_prefix", + "definition.render_options.add_info_link", + "definition.render_options.add_opt_out_language", + "definition.notification_type", + "definition.content.title", + "definition.content.dynamic_image", + "definition.kv_pairs", + "definition.options", + "definition.options.on_open", + "definition.options.on_open.type", + "definition.options.on_open.ios_deep_link", + "definition.options.on_open.android_deep_link", + "definition.options.badge", + "definition.options.badge.display", + "definition.options.badge.badge_options", + "definition.options.badge.badge_options.badge_config", + "definition.options.badge.badge_options.value", + "definition.options.badge.badge_options.set_from_property", + "definition.options.play_sound", + "send_times", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[campaign]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "audiences", + "audiences.included", + "audiences.excluded", + "send_options", + "send_options.use_smart_sending", + "tracking_options", + "tracking_options.add_tracking_params", + "tracking_options.custom_tracking_params", + "tracking_options.is_tracking_clicks", + "tracking_options.is_tracking_opens", + "send_strategy", + "send_strategy.method", + "send_strategy.datetime", + "send_strategy.options", + "send_strategy.options.is_local", + "send_strategy.options.send_past_recipients_immediately", + "send_strategy.date", + "send_strategy.throttle_percentage", + "created_at", + "scheduled_at", + "updated_at", + "send_time" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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-01-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`\n\n**Scopes:**\n`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-01-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`\n\n**Scopes:**\n`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-01-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`\n\n**Scopes:**\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "definition", + "definition.channel", + "definition.label", + "definition.content", + "definition.content.subject", + "definition.content.preview_text", + "definition.content.from_email", + "definition.content.from_label", + "definition.content.reply_to_email", + "definition.content.cc_email", + "definition.content.bcc_email", + "definition.content.body", + "definition.content.media_url", + "definition.render_options", + "definition.render_options.shorten_links", + "definition.render_options.add_org_prefix", + "definition.render_options.add_info_link", + "definition.render_options.add_opt_out_language", + "definition.notification_type", + "definition.content.title", + "definition.content.dynamic_image", + "definition.kv_pairs", + "definition.options", + "definition.options.on_open", + "definition.options.on_open.type", + "definition.options.on_open.ios_deep_link", + "definition.options.on_open.android_deep_link", + "definition.options.badge", + "definition.options.badge.display", + "definition.options.badge.badge_options", + "definition.options.badge.badge_options.badge_config", + "definition.options.badge.badge_options.value", + "definition.options.badge.badge_options.set_from_property", + "definition.options.play_sound", + "send_times", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[campaign]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "audiences", + "audiences.included", + "audiences.excluded", + "send_options", + "send_options.use_smart_sending", + "tracking_options", + "tracking_options.add_tracking_params", + "tracking_options.custom_tracking_params", + "tracking_options.is_tracking_clicks", + "tracking_options.is_tracking_opens", + "send_strategy", + "send_strategy.method", + "send_strategy.datetime", + "send_strategy.options", + "send_strategy.options.is_local", + "send_strategy.options.send_past_recipients_immediately", + "send_strategy.date", + "send_strategy.throttle_percentage", + "created_at", + "scheduled_at", + "updated_at", + "send_time" + ] + } + }, + "explode": false + }, + { + "name": "fields[image]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "image_url", + "format", + "size", + "hidden", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[template]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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`\n\n**Scopes:**\n`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-01-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`\n\n**Scopes:**\n`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-01-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-01-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\nrevert the campaign, setting the status back to DRAFT

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`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-01-15" + } + } + ], + "requestBody": { + "description": "Permanently cancel the campaign, setting the status to CANCELED or\nrevert 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\nwith the `Create Campaign Recipient Estimation Job` endpoint.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`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-01-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-01-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.\nYou can refresh this count by using the `Create Campaign Recipient Estimation Job` endpoint.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`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-01-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-01-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`\n\n**Scopes:**\n`campaigns:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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`\n\n**Scopes:**\n`campaigns:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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`\n\n**Scopes:**\n`campaigns:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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\nfor the given campaign ID. Use the `Get Campaign Recipient Estimation\nJob` endpoint to retrieve the status of this estimation job. Use the\n`Get Campaign Recipient Estimation` endpoint to retrieve the estimated\nrecipient count for a given campaign.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`campaigns:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Trigger an asynchronous job to update the estimated number of recipients\nfor the given campaign ID. Use the `Get Campaign Recipient Estimation\nJob` endpoint to retrieve the status of this estimation job. Use the\n`Get Campaign Recipient Estimation` endpoint to retrieve the estimated\nrecipient 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`\n\n**Scopes:**\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "audiences", + "audiences.included", + "audiences.excluded", + "send_options", + "send_options.use_smart_sending", + "tracking_options", + "tracking_options.add_tracking_params", + "tracking_options.custom_tracking_params", + "tracking_options.is_tracking_clicks", + "tracking_options.is_tracking_opens", + "send_strategy", + "send_strategy.method", + "send_strategy.datetime", + "send_strategy.options", + "send_strategy.options.is_local", + "send_strategy.options.send_past_recipients_immediately", + "send_strategy.date", + "send_strategy.throttle_percentage", + "created_at", + "scheduled_at", + "updated_at", + "send_time" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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`\n\n**Scopes:**\n`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-01-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`\n\n**Scopes:**\n`campaigns:read`\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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`\n\n**Scopes:**\n`campaigns:read`\n`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-01-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`\n\n**Scopes:**\n`campaigns:read`\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "image_url", + "format", + "size", + "hidden", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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`\n\n**Scopes:**\n`campaigns:read`\n`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-01-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`\n\n**Scopes:**\n`campaigns:write`\n`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-01-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`\n\n**Scopes:**\n`campaigns:read`\n`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-01-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-01-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`\n\n**Scopes:**\n`campaigns:read`\n`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-01-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`\n\n**Scopes:**\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "definition", + "definition.channel", + "definition.label", + "definition.content", + "definition.content.subject", + "definition.content.preview_text", + "definition.content.from_email", + "definition.content.from_label", + "definition.content.reply_to_email", + "definition.content.cc_email", + "definition.content.bcc_email", + "definition.content.body", + "definition.content.media_url", + "definition.render_options", + "definition.render_options.shorten_links", + "definition.render_options.add_org_prefix", + "definition.render_options.add_info_link", + "definition.render_options.add_opt_out_language", + "definition.notification_type", + "definition.content.title", + "definition.content.dynamic_image", + "definition.kv_pairs", + "definition.options", + "definition.options.on_open", + "definition.options.on_open.type", + "definition.options.on_open.ios_deep_link", + "definition.options.on_open.android_deep_link", + "definition.options.badge", + "definition.options.badge.display", + "definition.options.badge.badge_options", + "definition.options.badge.badge_options.badge_config", + "definition.options.badge.badge_options.value", + "definition.options.badge.badge_options.set_from_property", + "definition.options.play_sound", + "send_times", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[campaign]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "audiences", + "audiences.included", + "audiences.excluded", + "send_options", + "send_options.use_smart_sending", + "tracking_options", + "tracking_options.add_tracking_params", + "tracking_options.custom_tracking_params", + "tracking_options.is_tracking_clicks", + "tracking_options.is_tracking_opens", + "send_strategy", + "send_strategy.method", + "send_strategy.datetime", + "send_strategy.options", + "send_strategy.options.is_local", + "send_strategy.options.send_past_recipients_immediately", + "send_strategy.date", + "send_strategy.throttle_percentage", + "created_at", + "scheduled_at", + "updated_at", + "send_time" + ] + } + }, + "explode": false + }, + { + "name": "fields[image]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "image_url", + "format", + "size", + "hidden", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[template]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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`\n\n**Scopes:**\n`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-01-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" + ] + } + }, + "/api/catalog-items": { + "get": { + "operationId": "get_catalog_items", + "summary": "Get Catalog Items", + "description": "Get all catalog items in an account.\n\nCatalog items can be sorted by the following fields, in ascending and descending order:\n`created`\n\nCurrently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`.\n\nReturns a maximum of 100 items per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-item]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`category.id`: `equals`
`title`: `contains`
`published`: `equals`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-ITEM-1'])" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "variants" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + }, + "post": { + "operationId": "create_catalog_item", + "summary": "Create Catalog Item", + "description": "Create a new catalog item.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogItemResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-items/{id}": { + "get": { + "operationId": "get_catalog_item", + "summary": "Get Catalog Item", + "description": "Get a specific catalog item with the given item ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + { + "name": "fields[catalog-item]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "variants" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + }, + "patch": { + "operationId": "update_catalog_item", + "summary": "Update Catalog Item", + "description": "Update a catalog item with the given item ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchCatalogItemResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + }, + "delete": { + "operationId": "delete_catalog_item", + "summary": "Delete Catalog Item", + "description": "Delete a catalog item with the given item ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-variants": { + "get": { + "operationId": "get_catalog_variants", + "summary": "Get Catalog Variants", + "description": "Get all variants in an account.\n\nVariants can be sorted by the following fields, in ascending and descending order:\n`created`\n\nCurrently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`.\n\nReturns a maximum of 100 variants per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`item.id`: `equals`
`sku`: `equals`
`title`: `contains`
`published`: `equals`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + }, + "post": { + "operationId": "create_catalog_variant", + "summary": "Create Catalog Variant", + "description": "Create a new variant for a related catalog item.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogVariantCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogVariantResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-variants/{id}": { + "get": { + "operationId": "get_catalog_variant", + "summary": "Get Catalog Variant", + "description": "Get a catalog item variant with the given variant ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + }, + "patch": { + "operationId": "update_catalog_variant", + "summary": "Update Catalog Variant", + "description": "Update a catalog item variant with the given variant ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogVariantUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchCatalogVariantResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Variants" + }, + "delete": { + "operationId": "delete_catalog_variant", + "summary": "Delete Catalog Variant", + "description": "Delete a catalog item variant with the given variant ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-categories": { + "get": { + "operationId": "get_catalog_categories", + "summary": "Get Catalog Categories", + "description": "Get all catalog categories in an account.\n\nCatalog categories can be sorted by the following fields, in ascending and descending order:\n`created`\n\nCurrently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`.\n\nReturns a maximum of 100 categories per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-category]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "name", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`item.id`: `equals`
`name`: `contains`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + }, + "post": { + "operationId": "create_catalog_category", + "summary": "Create Catalog Category", + "description": "Create a new catalog category.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogCategoryResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-categories/{id}": { + "get": { + "operationId": "get_catalog_category", + "summary": "Get Catalog Category", + "description": "Get a catalog category with the given category ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + { + "name": "fields[catalog-category]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "name", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + }, + "patch": { + "operationId": "update_catalog_category", + "summary": "Update Catalog Category", + "description": "Update a catalog category with the given category ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchCatalogCategoryResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + }, + "delete": { + "operationId": "delete_catalog_category", + "summary": "Delete Catalog Category", + "description": "Delete a catalog category using the given category ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-item-bulk-create-jobs": { + "get": { + "operationId": "get_bulk_create_catalog_items_jobs", + "summary": "Get Bulk Create Catalog Items Jobs", + "description": "Get all catalog item bulk create jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-item-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemCreateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_create_items_jobs", + "get_catalog_item_bulk_create_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + }, + "post": { + "operationId": "bulk_create_catalog_items", + "summary": "Bulk Create Catalog Items", + "description": "Create a catalog item bulk create job to create a batch of catalog items.\n\nAccepts up to 100 catalog items per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemCreateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogItemCreateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_create_items_job", + "create_catalog_item_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-item-bulk-create-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_create_catalog_items_job", + "summary": "Get Bulk Create Catalog Items Job", + "description": "Get a catalog item bulk create job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `items`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-item-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-item]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "items" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemCreateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_create_items_job", + "get_catalog_item_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-item-bulk-update-jobs": { + "get": { + "operationId": "get_bulk_update_catalog_items_jobs", + "summary": "Get Bulk Update Catalog Items Jobs", + "description": "Get all catalog item bulk update jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-item-bulk-update-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemUpdateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_update_items_jobs", + "get_catalog_item_bulk_update_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + }, + "post": { + "operationId": "bulk_update_catalog_items", + "summary": "Bulk Update Catalog Items", + "description": "Create a catalog item bulk update job to update a batch of catalog items.\n\nAccepts up to 100 catalog items per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemUpdateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogItemUpdateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_update_items_job", + "create_catalog_item_bulk_update_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-item-bulk-update-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_update_catalog_items_job", + "summary": "Get Bulk Update Catalog Items Job", + "description": "Get a catalog item bulk update job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `items`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-item-bulk-update-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-item]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "items" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemUpdateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_update_items_job", + "get_catalog_item_bulk_update_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-item-bulk-delete-jobs": { + "get": { + "operationId": "get_bulk_delete_catalog_items_jobs", + "summary": "Get Bulk Delete Catalog Items Jobs", + "description": "Get all catalog item bulk delete jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-item-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemDeleteJobResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_delete_items_jobs", + "get_catalog_item_bulk_delete_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + }, + "post": { + "operationId": "bulk_delete_catalog_items", + "summary": "Bulk Delete Catalog Items", + "description": "Create a catalog item bulk delete job to delete a batch of catalog items.\n\nAccepts up to 100 catalog items per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemDeleteJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogItemDeleteJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_delete_items_job", + "create_catalog_item_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-item-bulk-delete-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_delete_catalog_items_job", + "summary": "Get Bulk Delete Catalog Items Job", + "description": "Get a catalog item bulk delete job with the given job ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-item-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemDeleteJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_delete_items_job", + "get_catalog_item_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-variant-bulk-create-jobs": { + "get": { + "operationId": "get_bulk_create_variants_jobs", + "summary": "Get Bulk Create Variants Jobs", + "description": "Get all catalog variant bulk create jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-variant-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantCreateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_create_variants_jobs", + "get_catalog_variant_bulk_create_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + }, + "post": { + "operationId": "bulk_create_catalog_variants", + "summary": "Bulk Create Catalog Variants", + "description": "Create a catalog variant bulk create job to create a batch of catalog variants.\n\nAccepts up to 100 catalog variants per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogVariantCreateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogVariantCreateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_create_variants_job", + "create_catalog_variant_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-variant-bulk-create-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_create_variants_job", + "summary": "Get Bulk Create Variants Job", + "description": "Get a catalog variant bulk create job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `variants`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-variant-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "variants" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantCreateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_create_variants_job", + "get_catalog_variant_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-variant-bulk-update-jobs": { + "get": { + "operationId": "get_bulk_update_variants_jobs", + "summary": "Get Bulk Update Variants Jobs", + "description": "Get all catalog variant bulk update jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-variant-bulk-update-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantUpdateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_update_variants_jobs", + "get_catalog_variant_bulk_update_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + }, + "post": { + "operationId": "bulk_update_catalog_variants", + "summary": "Bulk Update Catalog Variants", + "description": "Create a catalog variant bulk update job to update a batch of catalog variants.\n\nAccepts up to 100 catalog variants per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogVariantUpdateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogVariantUpdateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_update_variants_job", + "create_catalog_variant_bulk_update_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-variant-bulk-update-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_update_variants_job", + "summary": "Get Bulk Update Variants Job", + "description": "Get a catalog variate bulk update job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `variants`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-variant-bulk-update-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "variants" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantUpdateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_update_variants_job", + "get_catalog_variant_bulk_update_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-variant-bulk-delete-jobs": { + "get": { + "operationId": "get_bulk_delete_variants_jobs", + "summary": "Get Bulk Delete Variants Jobs", + "description": "Get all catalog variant bulk delete jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-variant-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantDeleteJobResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_delete_variants_jobs", + "get_catalog_variant_bulk_delete_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + }, + "post": { + "operationId": "bulk_delete_catalog_variants", + "summary": "Bulk Delete Catalog Variants", + "description": "Create a catalog variant bulk delete job to delete a batch of catalog variants.\n\nAccepts up to 100 catalog variants per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogVariantDeleteJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogVariantDeleteJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_delete_variants_job", + "create_catalog_variant_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-variant-bulk-delete-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_delete_variants_job", + "summary": "Get Bulk Delete Variants Job", + "description": "Get a catalog variant bulk delete job with the given job ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-variant-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantDeleteJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_delete_variants_job", + "get_catalog_variant_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-category-bulk-create-jobs": { + "get": { + "operationId": "get_bulk_create_categories_jobs", + "summary": "Get Bulk Create Categories Jobs", + "description": "Get all catalog category bulk create jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-category-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryCreateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_create_categories_jobs", + "get_catalog_category_bulk_create_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + }, + "post": { + "operationId": "bulk_create_catalog_categories", + "summary": "Bulk Create Catalog Categories", + "description": "Create a catalog category bulk create job to create a batch of catalog categories.\n\nAccepts up to 100 catalog categories per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryCreateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogCategoryCreateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_create_categories_job", + "create_catalog_category_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-category-bulk-create-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_create_categories_job", + "summary": "Get Bulk Create Categories Job", + "description": "Get a catalog category bulk create job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `categories`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-category-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-category]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "name", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "categories" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryCreateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_create_categories_job", + "get_catalog_category_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-category-bulk-update-jobs": { + "get": { + "operationId": "get_bulk_update_categories_jobs", + "summary": "Get Bulk Update Categories Jobs", + "description": "Get all catalog category bulk update jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-category-bulk-update-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryUpdateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_update_categories_jobs", + "get_catalog_category_bulk_update_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + }, + "post": { + "operationId": "bulk_update_catalog_categories", + "summary": "Bulk Update Catalog Categories", + "description": "Create a catalog category bulk update job to update a batch of catalog categories.\n\nAccepts up to 100 catalog categories per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryUpdateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogCategoryUpdateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_update_categories_job", + "create_catalog_category_bulk_update_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-category-bulk-update-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_update_categories_job", + "summary": "Get Bulk Update Categories Job", + "description": "Get a catalog category bulk update job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `categories`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-category-bulk-update-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-category]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "name", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "categories" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryUpdateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_update_categories_job", + "get_catalog_category_bulk_update_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-category-bulk-delete-jobs": { + "get": { + "operationId": "get_bulk_delete_categories_jobs", + "summary": "Get Bulk Delete Categories Jobs", + "description": "Get all catalog category bulk delete jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "fields[catalog-category-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryDeleteJobResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_delete_categories_jobs", + "get_catalog_category_bulk_delete_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + }, + "post": { + "operationId": "bulk_delete_catalog_categories", + "summary": "Bulk Delete Catalog Categories", + "description": "Create a catalog category bulk delete job to delete a batch of catalog categories.\n\nAccepts up to 100 catalog categories per request. The maximum allowed payload size is 5MB.\nThe maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryDeleteJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCatalogCategoryDeleteJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "spawn_delete_categories_job", + "create_catalog_category_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-category-bulk-delete-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_delete_categories_job", + "summary": "Get Bulk Delete Categories Job", + "description": "Get a catalog category bulk delete job with the given job ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[catalog-category-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryDeleteJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_delete_categories_job", + "get_catalog_category_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/back-in-stock-subscriptions": { + "post": { + "operationId": "create_back_in_stock_subscription", + "summary": "Create Back In Stock Subscription", + "description": "Subscribe a profile to receive back in stock notifications. Check out [our Back in Stock API guide](https://developers.klaviyo.com/en/docs/how_to_set_up_custom_back_in_stock) for more details.\n\nThis endpoint is specifically designed to be called from server-side applications. To create subscriptions from client-side contexts, use [POST /client/back-in-stock-subscriptions](https://developers.klaviyo.com/en/reference/create_client_back_in_stock_subscription).

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:write`\n`profiles:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ServerBISSubscriptionCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write", + "profiles:write" + ], + "x-klaviyo-subtag": "Back In Stock" + } + }, + "/api/catalog-categories/{id}/items": { + "get": { + "operationId": "get_items_for_catalog_category", + "summary": "Get Items for Catalog Category", + "description": "Get all items in a category with the given category ID.\n\nItems can be sorted by the following fields, in ascending and descending order:\n`created`\n\nReturns a maximum of 100 items per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL", + "nullable": true + } + }, + { + "name": "fields[catalog-item]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`category.id`: `equals`
`title`: `contains`
`published`: `equals`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-ITEM-1'])" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "variants" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_catalog_category_items" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/catalog-categories/{id}/relationships/items": { + "get": { + "operationId": "get_item_ids_for_catalog_category", + "summary": "Get Item IDs for Catalog Category", + "description": "Get all items in the given category ID. Returns a maximum of 100 items per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL", + "nullable": true + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`category.id`: `equals`
`title`: `contains`
`published`: `equals`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-ITEM-1'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryItemsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_catalog_category_relationships_items" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + }, + "post": { + "operationId": "add_items_to_catalog_category", + "summary": "Add Items to Catalog Category", + "description": "Create a new item relationship for the given category ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryItemOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "create_catalog_category_relationships_item", + "create_catalog_category_relationships_items" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + }, + "patch": { + "operationId": "update_items_for_catalog_category", + "summary": "Update Items for Catalog Category", + "description": "Update item relationships for the given category ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryItemOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "update_catalog_category_relationships_items" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + }, + "delete": { + "operationId": "remove_items_from_catalog_category", + "summary": "Remove Items from Catalog Category", + "description": "Delete item relationships for the given category ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogCategoryItemOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "delete_catalog_category_relationships_items" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-items/{id}/variants": { + "get": { + "operationId": "get_variants_for_catalog_item", + "summary": "Get Variants for Catalog Item", + "description": "Get all variants related to the given item ID.\n\nVariants can be sorted by the following fields, in ascending and descending order:\n`created`\n\nReturns a maximum of 100 variants per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1", + "nullable": true + } + }, + { + "name": "fields[catalog-variant]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "title", + "description", + "sku", + "inventory_policy", + "inventory_quantity", + "price", + "url", + "image_full_url", + "image_thumbnail_url", + "images", + "custom_metadata", + "published", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`item.id`: `equals`
`sku`: `equals`
`title`: `contains`
`published`: `equals`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogVariantResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_catalog_item_variants" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-items/{id}/relationships/variants": { + "get": { + "operationId": "get_variant_ids_for_catalog_item", + "summary": "Get Variant IDs for Catalog Item", + "description": "Get all variants related to the given item ID.\n\nVariants can be sorted by the following fields, in ascending and descending order:\n`created`\n\nReturns a maximum of 100 variants per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1", + "nullable": true + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`item.id`: `equals`
`sku`: `equals`
`title`: `contains`
`published`: `equals`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemVariantsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_catalog_item_relationships_variants" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Variants" + } + }, + "/api/catalog-items/{id}/categories": { + "get": { + "operationId": "get_categories_for_catalog_item", + "summary": "Get Categories for Catalog Item", + "description": "Get all catalog categories that an item with the given item ID is in.\n\nCatalog categories can be sorted by the following fields, in ascending and descending order:\n`created`\n\nReturns a maximum of 100 categories per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1", + "nullable": true + } + }, + { + "name": "fields[catalog-category]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "name", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`item.id`: `equals`
`name`: `contains`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogCategoryResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_catalog_item_categories" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Categories" + } + }, + "/api/catalog-items/{id}/relationships/categories": { + "get": { + "operationId": "get_category_ids_for_catalog_item", + "summary": "Get Category IDs for Catalog Item", + "description": "Get all catalog categories that a particular item is in. Returns a maximum of 100 categories per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1", + "nullable": true + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`ids`: `any`
`item.id`: `equals`
`name`: `contains`", + "schema": { + "type": "string", + "example": "any(ids,['$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCatalogItemCategoriesRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "get_catalog_item_relationships_categories" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:read" + ], + "x-klaviyo-subtag": "Items" + }, + "post": { + "operationId": "add_categories_to_catalog_item", + "summary": "Add Categories to Catalog Item", + "description": "Create a new catalog category relationship for the given item ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemCategoryOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "add_category_to_catalog_item", + "create_catalog_item_relationships_category", + "create_catalog_item_relationships_categories" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + }, + "patch": { + "operationId": "update_categories_for_catalog_item", + "summary": "Update Categories for Catalog Item", + "description": "Update catalog category relationships for the given item ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemCategoryOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "update_catalog_item_relationships_categories" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + }, + "delete": { + "operationId": "remove_categories_from_catalog_item", + "summary": "Remove Categories from Catalog Item", + "description": "Delete catalog category relationships for the given item ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`catalogs:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "required": true, + "schema": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CatalogItemCategoryOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Catalogs" + ], + "x-klaviyo-operation-aliases": [ + "delete_catalog_item_relationships_categories" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write" + ], + "x-klaviyo-subtag": "Items" + } + }, + "/api/coupons": { + "get": { + "operationId": "get_coupons", + "summary": "Get Coupons", + "description": "Get all coupons in an account.\n\nTo learn more, see our [Coupons API guide](https://developers.klaviyo.com/en/docs/use_klaviyos_coupons_api).

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupons:read`", + "parameters": [ + { + "name": "fields[coupon]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "description", + "monitor_configuration" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupons:read" + ] + }, + "post": { + "operationId": "create_coupon", + "summary": "Create Coupon", + "description": "Creates a new coupon.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`coupons:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CouponCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCouponResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "coupons:write" + ] + } + }, + "/api/coupons/{id}": { + "get": { + "operationId": "get_coupon", + "summary": "Get Coupon", + "description": "Get a specific coupon with the given coupon ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupons:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "required": true, + "schema": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "fields[coupon]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "description", + "monitor_configuration" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupons:read" + ] + }, + "patch": { + "operationId": "update_coupon", + "summary": "Update Coupon", + "description": "*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`coupons:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "required": true, + "schema": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CouponUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchCouponResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "coupons:write" + ] + }, + "delete": { + "operationId": "delete_coupon", + "summary": "Delete Coupon", + "description": "Delete the coupon with the given coupon ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`coupons:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "required": true, + "schema": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "coupons:write" + ] + } + }, + "/api/coupon-codes": { + "get": { + "operationId": "get_coupon_codes", + "summary": "Get Coupon Codes", + "description": "Gets a list of coupon codes associated with a coupon/coupons or a profile/profiles.\n\nA coupon/coupons or a profile/profiles must be provided as required filter params.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`coupon-codes:read`", + "parameters": [ + { + "name": "fields[coupon-code]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "unique_code", + "expires_at", + "status" + ] + } + }, + "explode": false + }, + { + "name": "fields[coupon]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "description", + "monitor_configuration" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`expires_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`status`: `equals`
`coupon.id`: `any`, `equals`
`profile.id`: `any`, `equals`", + "required": true, + "schema": { + "type": "string", + "example": "equals(coupon.id,'10OFF')" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "coupon" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodeResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:read" + ] + }, + "post": { + "operationId": "create_coupon_code", + "summary": "Create Coupon Code", + "description": "Synchronously creates a coupon code for the given coupon.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`coupon-codes:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CouponCodeCreateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCouponCodeResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:write" + ] + } + }, + "/api/coupon-codes/{id}": { + "get": { + "operationId": "get_coupon_code", + "summary": "Get Coupon Code", + "description": "Returns a Coupon Code specified by the given identifier.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`coupon-codes:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "required": true, + "schema": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + }, + { + "name": "fields[coupon-code]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "unique_code", + "expires_at", + "status" + ] + } + }, + "explode": false + }, + { + "name": "fields[coupon]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "description", + "monitor_configuration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "coupon" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodeResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:read" + ] + }, + "patch": { + "operationId": "update_coupon_code", + "summary": "Update Coupon Code", + "description": "Updates a coupon code specified by the given identifier synchronously. We allow updating the 'status' and\n'expires_at' of coupon codes.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`coupon-codes:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "required": true, + "schema": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CouponCodeUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchCouponCodeResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:write" + ] + }, + "delete": { + "operationId": "delete_coupon_code", + "summary": "Delete Coupon Code", + "description": "Deletes a coupon code specified by the given identifier synchronously. If a profile has been assigned to the\ncoupon code, an exception will be raised

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`coupon-codes:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "required": true, + "schema": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:write" + ] + } + }, + "/api/coupon-code-bulk-create-jobs": { + "get": { + "operationId": "get_bulk_create_coupon_code_jobs", + "summary": "Get Bulk Create Coupon Code Jobs", + "description": "Get all coupon code bulk create jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupon-codes:read`", + "parameters": [ + { + "name": "fields[coupon-code-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodeCreateJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "get_coupon_code_bulk_create_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:read" + ] + }, + "post": { + "operationId": "bulk_create_coupon_codes", + "summary": "Bulk Create Coupon Codes", + "description": "Create a coupon-code-bulk-create-job to bulk create a list of coupon codes.\n\nMax number of coupon codes per job we allow for is 1000.\nMax number of jobs queued at once we allow for is 100.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupon-codes:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CouponCodeCreateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCouponCodeCreateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "spawn_coupon_code_bulk_create_job", + "create_coupon_code_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:write" + ] + } + }, + "/api/coupon-code-bulk-create-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_create_coupon_codes_job", + "summary": "Get Bulk Create Coupon Codes Job", + "description": "Get a coupon code bulk create job with the given job ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupon-codes:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[coupon-code-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "errors", + "expires_at" + ] + } + }, + "explode": false + }, + { + "name": "fields[coupon-code]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "unique_code", + "expires_at", + "status" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "coupon-codes" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodeCreateJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "get_coupon_code_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:read" + ] + } + }, + "/api/coupon-codes/{id}/coupon": { + "get": { + "operationId": "get_coupon_for_coupon_code", + "summary": "Get Coupon For Coupon Code", + "description": "Get the coupon associated with a given coupon code ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupons:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the coupon to look up the relationship of.", + "required": true, + "schema": { + "description": "The ID of the coupon to look up the relationship of.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "fields[coupon]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "external_id", + "description", + "monitor_configuration" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "get_coupon_code_coupon" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupons:read" + ] + } + }, + "/api/coupon-codes/{id}/relationships/coupon": { + "get": { + "operationId": "get_coupon_id_for_coupon_code", + "summary": "Get Coupon ID for Coupon Code", + "description": "Gets the coupon relationship associated with the given coupon code id

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupons:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the coupon to look up the relationship of.", + "required": true, + "schema": { + "description": "The ID of the coupon to look up the relationship of.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodeCouponRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "get_coupon_relationships_coupon_codes" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupons:read" + ] + } + }, + "/api/coupons/{id}/coupon-codes": { + "get": { + "operationId": "get_coupon_codes_for_coupon", + "summary": "Get Coupon Codes for Coupon", + "description": "Gets a list of coupon codes associated with the given coupon id

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupon-codes:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the coupon to look up the relationship of.", + "required": true, + "schema": { + "description": "The ID of the coupon to look up the relationship of.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "fields[coupon-code]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "unique_code", + "expires_at", + "status" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`expires_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`status`: `equals`
`coupon.id`: `any`, `equals`
`profile.id`: `any`, `equals`", + "schema": { + "type": "string", + "example": "less-than(expires_at,2022-11-08T00:00:00+00:00)" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodeResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "get_coupon_coupon_codes", + "get_codes_for_coupon" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:read" + ] + } + }, + "/api/coupons/{id}/relationships/coupon-codes": { + "get": { + "operationId": "get_coupon_code_ids_for_coupon", + "summary": "Get Coupon Code IDs for Coupon", + "description": "Gets a list of coupon code relationships associated with the given coupon id

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`coupon-codes:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the coupon to look up the relationship of.", + "required": true, + "schema": { + "description": "The ID of the coupon to look up the relationship of.", + "type": "string", + "example": "10OFF" + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`expires_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`status`: `equals`
`coupon.id`: `any`, `equals`
`profile.id`: `any`, `equals`", + "schema": { + "type": "string", + "example": "less-than(expires_at,2022-11-08T00:00:00+00:00)" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCouponCodesRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Coupons" + ], + "x-klaviyo-operation-aliases": [ + "get_coupon_code_relationships_coupon", + "get_code_ids_for_coupon", + "get_coupon_relationships_codes" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "coupon-codes:read" + ] + } + }, + "/api/data-sources": { + "get": { + "operationId": "get_data_sources", + "summary": "Get Data Sources", + "description": "Get all data sources in an account.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`custom-objects:read`", + "parameters": [ + { + "name": "fields[data-source]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "title", + "visibility", + "description" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetDataSourceResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Custom Objects" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "custom-objects:read" + ] + }, + "post": { + "operationId": "create_data_source", + "summary": "Create Data Source", + "description": "Create a new data source in an account

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`custom-objects:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Create data source", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/DataSourceCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostDataSourceResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Custom Objects" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "custom-objects:write" + ] + } + }, + "/api/data-sources/{id}": { + "get": { + "operationId": "get_data_source", + "summary": "Get Data Source", + "description": "Retrieve a data source in an account.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`custom-objects:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the data source", + "required": true, + "schema": { + "description": "The ID of the data source", + "type": "string" + } + }, + { + "name": "fields[data-source]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "title", + "visibility", + "description" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetDataSourceResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Custom Objects" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "custom-objects:read" + ] + }, + "delete": { + "operationId": "delete_data_source", + "summary": "Delete Data Source", + "description": "Delete a data source in an account.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`custom-objects:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the data source to delete", + "required": true, + "schema": { + "description": "The ID of the data source to delete", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Custom Objects" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "custom-objects:write" + ] + } + }, + "/api/data-source-record-bulk-create-jobs": { + "post": { + "operationId": "bulk_create_data_source_records", + "summary": "Bulk Create Data Source Records", + "description": "Create a bulk data source record import job to create a batch of records.\n\nAccepts up to 500 records per request. The maximum allowed payload size is 4MB. The maximum allowed payload size per-record is 512KB.\n\nTo learn more, see our [Custom Objects API overview](https://developers.klaviyo.com/en/reference/custom_objects_api_overview).

*Rate limits*:
Burst: `3/s`
Steady: `15/m`\n\n**Scopes:**\n`custom-objects:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Create a data source record job", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/DataSourceRecordBulkCreateJobCreateQuery" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Custom Objects" + ], + "x-klaviyo-operation-aliases": [ + "create_data_source_record_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "custom-objects:write" + ] + } + }, + "/api/data-source-record-create-jobs": { + "post": { + "operationId": "create_data_source_record", + "summary": "Create Data Source Record", + "description": "Create a data source record import job to create a single record.\n\nThe maximum allowed payload size per-record is 512KB.\n\nTo learn more, see our [Custom Objects API overview](https://developers.klaviyo.com/en/reference/custom_objects_api_overview).

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`custom-objects:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Create a data source record job", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/DataSourceRecordCreateJobCreateQuery" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Custom Objects" + ], + "x-klaviyo-operation-aliases": [ + "create_data_source_record_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "custom-objects:write" + ] + } + }, + "/api/data-privacy-deletion-jobs": { + "post": { + "operationId": "request_profile_deletion", + "summary": "Request Profile Deletion", + "description": "Request a deletion for the profiles corresponding to one of the following identifiers: `email`, `phone_number`, or `id`. If multiple identifiers are provided, we will return an error.\n\nAll profiles that match the provided identifier will be deleted.\n\nThe deletion occurs asynchronously; however, once it has completed, the deleted profile will appear on the [Deleted Profiles page](https://www.klaviyo.com/account/deleted).\n\nFor more information on the deletion process, please refer to our [Help Center docs on how to handle GDPR and CCPA deletion requests](https://help.klaviyo.com/hc/en-us/articles/360004217631-How-to-Handle-GDPR-Requests#record-gdpr-and-ccpa%20%20-deletion-requests2).

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`data-privacy:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/DataPrivacyCreateDeletionJobQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Data Privacy" + ], + "x-klaviyo-operation-aliases": [ + "create_data_privacy_deletion_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "data-privacy:write" + ] + } + }, + "/api/events": { + "get": { + "operationId": "get_events", + "summary": "Get Events", + "description": "Get all events in an account\n\nRequests can be sorted by the following fields:\n`datetime`, `timestamp`\n\n[Custom metrics](https://developers.klaviyo.com/en/reference/custom_metrics_api_overview) are not supported in the `metric_id` filter.\n\nReturns a maximum of 200 events per page.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:read`", + "parameters": [ + { + "name": "fields[event]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "timestamp", + "event_properties", + "datetime", + "uuid" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`metric_id`: `equals`
`profile_id`: `equals`
`profile`: `has`
`datetime`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(metric_id,'example')" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "attributions", + "metric", + "profile" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "datetime", + "-datetime", + "timestamp", + "-timestamp" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetEventResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:read" + ] + }, + "post": { + "operationId": "create_event", + "summary": "Create Event", + "description": "Create a new event to track a profile's activity.\n\nNote that this endpoint allows you to create a new profile or update an existing profile's properties.\n\nAt a minimum, profile and metric objects should include at least one profile identifier (e.g., `id`, `email`, or `phone_number`) and the metric `name`, respectively.\n\nSuccessful response indicates that the event was validated and submitted for processing, but does not guarantee that processing is complete.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/EventCreateQueryV2" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:write" + ] + } + }, + "/api/events/{id}": { + "get": { + "operationId": "get_event", + "summary": "Get Event", + "description": "Get an event with the given event ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`events:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the event", + "required": true, + "schema": { + "description": "ID of the event", + "type": "string" + } + }, + { + "name": "fields[event]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "timestamp", + "event_properties", + "datetime", + "uuid" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "attributions", + "metric", + "profile" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetEventResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "events:read" + ] + } + }, + "/api/event-bulk-create-jobs": { + "post": { + "operationId": "bulk_create_events", + "summary": "Bulk Create Events", + "description": "Create a batch of events for one or more profiles.\n\nNote that this endpoint allows you to create new profiles or update existing profile properties.\n\nAt a minimum, profile and metric objects should include at least one profile identifier (e.g., `id`, `email`, or `phone_number`) and the metric `name`, respectively.\n\nAccepts up to 1,000 events per request. The maximum allowed payload size is 5MB. A single string cannot exceed 100KB.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`events:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/EventsBulkCreateJob" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-operation-aliases": [ + "create_event_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "events:write" + ] + } + }, + "/api/events/{id}/metric": { + "get": { + "operationId": "get_metric_for_event", + "summary": "Get Metric for Event", + "description": "Get the metric for an event with the given event ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:read`\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the event", + "required": true, + "schema": { + "description": "ID of the event", + "type": "string" + } + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-operation-aliases": [ + "get_event_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:read", + "metrics:read" + ] + } + }, + "/api/events/{id}/relationships/metric": { + "get": { + "operationId": "get_metric_id_for_event", + "summary": "Get Metric ID for Event", + "description": "Get a list of related Metrics for an Event

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:read`\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the event", + "required": true, + "schema": { + "description": "ID of the event", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetEventMetricRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-operation-aliases": [ + "get_event_relationships_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:read", + "metrics:read" + ] + } + }, + "/api/events/{id}/profile": { + "get": { + "operationId": "get_profile_for_event", + "summary": "Get Profile for Event", + "description": "Get the profile associated with an event with the given event ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:read`\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the event", + "required": true, + "schema": { + "description": "ID of the event", + "type": "string" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-operation-aliases": [ + "get_event_profile" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:read", + "profiles:read" + ] + } + }, + "/api/events/{id}/relationships/profile": { + "get": { + "operationId": "get_profile_id_for_event", + "summary": "Get Profile ID for Event", + "description": "Get profile [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for an event with the given event ID.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:read`\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the event", + "required": true, + "schema": { + "description": "ID of the event", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetEventProfileRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Events" + ], + "x-klaviyo-operation-aliases": [ + "get_event_relationships_profile" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:read", + "profiles:read" + ] + } + }, + "/api/flows": { + "get": { + "operationId": "get_flows", + "summary": "Get Flows", + "description": "Get all flows in an account.\n\nReturns a maximum of 50 flows per request, which can be paginated with cursor-based pagination.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "fields[flow-action]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "definition", + "definition.id", + "definition.temporary_id", + "definition.type", + "definition.links", + "definition.links.next_if_true", + "definition.links.next_if_false", + "definition.data", + "definition.data.action_output_filter", + "definition.data.action_output_filter.condition_groups", + "definition.links.next", + "definition.data.profile_filter", + "definition.data.profile_filter.condition_groups", + "definition.data.message", + "definition.data.message.from_email", + "definition.data.message.from_label", + "definition.data.message.reply_to_email", + "definition.data.message.cc_email", + "definition.data.message.bcc_email", + "definition.data.message.subject_line", + "definition.data.message.preview_text", + "definition.data.message.template_id", + "definition.data.message.smart_sending_enabled", + "definition.data.message.transactional", + "definition.data.message.add_tracking_params", + "definition.data.message.custom_tracking_params", + "definition.data.message.additional_filters", + "definition.data.message.additional_filters.condition_groups", + "definition.data.message.name", + "definition.data.message.id", + "definition.data.status", + "definition.data.message.title", + "definition.data.message.body", + "definition.data.message.sound", + "definition.data.message.badge", + "definition.data.message.badge_options", + "definition.data.message.badge_options.badge_config", + "definition.data.message.badge_options.value", + "definition.data.message.badge_options.set_from_property", + "definition.data.message.image_id", + "definition.data.message.dynamic_image", + "definition.data.message.video_asset_id", + "definition.data.message.on_open", + "definition.data.message.ios_link", + "definition.data.message.android_link", + "definition.data.message.conversion_metric_id", + "definition.data.message.shorten_links", + "definition.data.message.include_contact_card", + "definition.data.message.add_org_prefix", + "definition.data.message.add_info_link", + "definition.data.message.add_opt_out_language", + "definition.data.message.sms_quiet_hours_enabled", + "definition.data.message.url", + "definition.data.message.headers", + "definition.data.message.to_emails", + "definition.data.message.vendor_id", + "definition.data.unit", + "definition.data.value", + "definition.data.secondary_value", + "definition.data.timezone", + "definition.data.delay_until_time", + "definition.data.delay_until_weekdays", + "definition.data.trigger_filter", + "definition.data.trigger_filter.condition_groups", + "definition.data.trigger_id", + "definition.data.trigger_type", + "definition.data.trigger_subtype", + "definition.data.profile_operations", + "definition.data.target_time", + "definition.data.target_days", + "definition.data.experiment_status", + "definition.data.main_action", + "definition.data.main_action.id", + "definition.data.main_action.temporary_id", + "definition.data.main_action.type", + "definition.data.main_action.links", + "definition.data.main_action.links.next", + "definition.data.main_action.data", + "definition.data.main_action.data.message", + "definition.data.main_action.data.message.from_email", + "definition.data.main_action.data.message.from_label", + "definition.data.main_action.data.message.reply_to_email", + "definition.data.main_action.data.message.cc_email", + "definition.data.main_action.data.message.bcc_email", + "definition.data.main_action.data.message.subject_line", + "definition.data.main_action.data.message.preview_text", + "definition.data.main_action.data.message.template_id", + "definition.data.main_action.data.message.smart_sending_enabled", + "definition.data.main_action.data.message.transactional", + "definition.data.main_action.data.message.add_tracking_params", + "definition.data.main_action.data.message.custom_tracking_params", + "definition.data.main_action.data.message.additional_filters", + "definition.data.main_action.data.message.additional_filters.condition_groups", + "definition.data.main_action.data.message.name", + "definition.data.main_action.data.message.id", + "definition.data.main_action.data.status", + "definition.data.main_action.data.message.body", + "definition.data.main_action.data.message.image_id", + "definition.data.main_action.data.message.dynamic_image", + "definition.data.main_action.data.message.shorten_links", + "definition.data.main_action.data.message.include_contact_card", + "definition.data.main_action.data.message.add_org_prefix", + "definition.data.main_action.data.message.add_info_link", + "definition.data.main_action.data.message.add_opt_out_language", + "definition.data.main_action.data.message.sms_quiet_hours_enabled", + "definition.data.current_experiment", + "definition.data.current_experiment.id", + "definition.data.current_experiment.name", + "definition.data.current_experiment.variations", + "definition.data.current_experiment.allocations", + "definition.data.current_experiment.started", + "definition.data.current_experiment.winner_metric", + "definition.data.current_experiment.automatic_winner_selection_settings", + "definition.data.current_experiment.automatic_winner_selection_settings.enabled", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_date", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_statistical_certainty", + "definition.data.name", + "definition.data.on_execution", + "definition.data.list_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`
`name`: `contains`, `ends-with`, `equals`, `starts-with`
`status`: `equals`
`archived`: `equals`
`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`trigger_type`: `equals`", + "schema": { + "type": "string", + "example": "any(id,['example'])" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-actions", + "tags" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 50. Min: 1. Max: 50.", + "required": false, + "schema": { + "type": "integer", + "default": 50, + "maximum": 50, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "status", + "-status", + "trigger_type", + "-trigger_type", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + }, + "post": { + "operationId": "create_flow", + "summary": "Create Flow", + "description": "Create a new flow using an encoded flow definition.\n\nNew objects within the flow definition, such as actions, will need to use a\n`temporary_id` field for identification. These will be replaced with traditional `id` fields\nafter successful creation.\n\nA successful request will return the new definition to you.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`
Daily: `100/d`\n\n**Scopes:**\n`flows:write`", + "parameters": [ + { + "name": "additional-fields[flow]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'definition'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "definition" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Creates a Flow from parameters", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FlowCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostFlowV2Response" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m", + "daily": "100/d" + }, + "x-klaviyo-scopes": [ + "flows:write" + ] + } + }, + "/api/flows/{id}": { + "get": { + "operationId": "get_flow", + "summary": "Get Flow", + "description": "Get a flow with the given flow ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional-fields[flow]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'definition'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "definition" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow-action]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "definition", + "definition.id", + "definition.temporary_id", + "definition.type", + "definition.links", + "definition.links.next_if_true", + "definition.links.next_if_false", + "definition.data", + "definition.data.action_output_filter", + "definition.data.action_output_filter.condition_groups", + "definition.links.next", + "definition.data.profile_filter", + "definition.data.profile_filter.condition_groups", + "definition.data.message", + "definition.data.message.from_email", + "definition.data.message.from_label", + "definition.data.message.reply_to_email", + "definition.data.message.cc_email", + "definition.data.message.bcc_email", + "definition.data.message.subject_line", + "definition.data.message.preview_text", + "definition.data.message.template_id", + "definition.data.message.smart_sending_enabled", + "definition.data.message.transactional", + "definition.data.message.add_tracking_params", + "definition.data.message.custom_tracking_params", + "definition.data.message.additional_filters", + "definition.data.message.additional_filters.condition_groups", + "definition.data.message.name", + "definition.data.message.id", + "definition.data.status", + "definition.data.message.title", + "definition.data.message.body", + "definition.data.message.sound", + "definition.data.message.badge", + "definition.data.message.badge_options", + "definition.data.message.badge_options.badge_config", + "definition.data.message.badge_options.value", + "definition.data.message.badge_options.set_from_property", + "definition.data.message.image_id", + "definition.data.message.dynamic_image", + "definition.data.message.video_asset_id", + "definition.data.message.on_open", + "definition.data.message.ios_link", + "definition.data.message.android_link", + "definition.data.message.conversion_metric_id", + "definition.data.message.shorten_links", + "definition.data.message.include_contact_card", + "definition.data.message.add_org_prefix", + "definition.data.message.add_info_link", + "definition.data.message.add_opt_out_language", + "definition.data.message.sms_quiet_hours_enabled", + "definition.data.message.url", + "definition.data.message.headers", + "definition.data.message.to_emails", + "definition.data.message.vendor_id", + "definition.data.unit", + "definition.data.value", + "definition.data.secondary_value", + "definition.data.timezone", + "definition.data.delay_until_time", + "definition.data.delay_until_weekdays", + "definition.data.trigger_filter", + "definition.data.trigger_filter.condition_groups", + "definition.data.trigger_id", + "definition.data.trigger_type", + "definition.data.trigger_subtype", + "definition.data.profile_operations", + "definition.data.target_time", + "definition.data.target_days", + "definition.data.experiment_status", + "definition.data.main_action", + "definition.data.main_action.id", + "definition.data.main_action.temporary_id", + "definition.data.main_action.type", + "definition.data.main_action.links", + "definition.data.main_action.links.next", + "definition.data.main_action.data", + "definition.data.main_action.data.message", + "definition.data.main_action.data.message.from_email", + "definition.data.main_action.data.message.from_label", + "definition.data.main_action.data.message.reply_to_email", + "definition.data.main_action.data.message.cc_email", + "definition.data.main_action.data.message.bcc_email", + "definition.data.main_action.data.message.subject_line", + "definition.data.main_action.data.message.preview_text", + "definition.data.main_action.data.message.template_id", + "definition.data.main_action.data.message.smart_sending_enabled", + "definition.data.main_action.data.message.transactional", + "definition.data.main_action.data.message.add_tracking_params", + "definition.data.main_action.data.message.custom_tracking_params", + "definition.data.main_action.data.message.additional_filters", + "definition.data.main_action.data.message.additional_filters.condition_groups", + "definition.data.main_action.data.message.name", + "definition.data.main_action.data.message.id", + "definition.data.main_action.data.status", + "definition.data.main_action.data.message.body", + "definition.data.main_action.data.message.image_id", + "definition.data.main_action.data.message.dynamic_image", + "definition.data.main_action.data.message.shorten_links", + "definition.data.main_action.data.message.include_contact_card", + "definition.data.main_action.data.message.add_org_prefix", + "definition.data.main_action.data.message.add_info_link", + "definition.data.main_action.data.message.add_opt_out_language", + "definition.data.main_action.data.message.sms_quiet_hours_enabled", + "definition.data.current_experiment", + "definition.data.current_experiment.id", + "definition.data.current_experiment.name", + "definition.data.current_experiment.variations", + "definition.data.current_experiment.allocations", + "definition.data.current_experiment.started", + "definition.data.current_experiment.winner_metric", + "definition.data.current_experiment.automatic_winner_selection_settings", + "definition.data.current_experiment.automatic_winner_selection_settings.enabled", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_date", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_statistical_certainty", + "definition.data.name", + "definition.data.on_execution", + "definition.data.list_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type", + "definition", + "definition.triggers", + "definition.profile_filter", + "definition.profile_filter.condition_groups", + "definition.actions", + "definition.entry_action_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-actions", + "tags" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowV2ResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + }, + "patch": { + "operationId": "update_flow", + "summary": "Update Flow Status", + "description": "Update the status of a flow with the given flow ID, and all actions in that flow.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the Flow to update. Ex: XVTP5Q", + "required": true, + "schema": { + "description": "ID of the Flow to update. Ex: XVTP5Q", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FlowUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchFlowResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:write" + ] + }, + "delete": { + "operationId": "delete_flow", + "summary": "Delete Flow", + "description": "Delete a flow with the given flow ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the Flow to delete. Ex: XVTP5Q", + "required": true, + "schema": { + "description": "ID of the Flow to delete. Ex: XVTP5Q", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:write" + ] + } + }, + "/api/flow-actions/{id}": { + "get": { + "operationId": "get_flow_action", + "summary": "Get Flow Action", + "description": "Get a flow action from a flow with the given flow action ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow-action]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "definition", + "definition.id", + "definition.temporary_id", + "definition.type", + "definition.links", + "definition.links.next_if_true", + "definition.links.next_if_false", + "definition.data", + "definition.data.action_output_filter", + "definition.data.action_output_filter.condition_groups", + "definition.links.next", + "definition.data.profile_filter", + "definition.data.profile_filter.condition_groups", + "definition.data.message", + "definition.data.message.from_email", + "definition.data.message.from_label", + "definition.data.message.reply_to_email", + "definition.data.message.cc_email", + "definition.data.message.bcc_email", + "definition.data.message.subject_line", + "definition.data.message.preview_text", + "definition.data.message.template_id", + "definition.data.message.smart_sending_enabled", + "definition.data.message.transactional", + "definition.data.message.add_tracking_params", + "definition.data.message.custom_tracking_params", + "definition.data.message.additional_filters", + "definition.data.message.additional_filters.condition_groups", + "definition.data.message.name", + "definition.data.message.id", + "definition.data.status", + "definition.data.message.title", + "definition.data.message.body", + "definition.data.message.sound", + "definition.data.message.badge", + "definition.data.message.badge_options", + "definition.data.message.badge_options.badge_config", + "definition.data.message.badge_options.value", + "definition.data.message.badge_options.set_from_property", + "definition.data.message.image_id", + "definition.data.message.dynamic_image", + "definition.data.message.video_asset_id", + "definition.data.message.on_open", + "definition.data.message.ios_link", + "definition.data.message.android_link", + "definition.data.message.conversion_metric_id", + "definition.data.message.shorten_links", + "definition.data.message.include_contact_card", + "definition.data.message.add_org_prefix", + "definition.data.message.add_info_link", + "definition.data.message.add_opt_out_language", + "definition.data.message.sms_quiet_hours_enabled", + "definition.data.message.url", + "definition.data.message.headers", + "definition.data.message.to_emails", + "definition.data.message.vendor_id", + "definition.data.unit", + "definition.data.value", + "definition.data.secondary_value", + "definition.data.timezone", + "definition.data.delay_until_time", + "definition.data.delay_until_weekdays", + "definition.data.trigger_filter", + "definition.data.trigger_filter.condition_groups", + "definition.data.trigger_id", + "definition.data.trigger_type", + "definition.data.trigger_subtype", + "definition.data.profile_operations", + "definition.data.target_time", + "definition.data.target_days", + "definition.data.experiment_status", + "definition.data.main_action", + "definition.data.main_action.id", + "definition.data.main_action.temporary_id", + "definition.data.main_action.type", + "definition.data.main_action.links", + "definition.data.main_action.links.next", + "definition.data.main_action.data", + "definition.data.main_action.data.message", + "definition.data.main_action.data.message.from_email", + "definition.data.main_action.data.message.from_label", + "definition.data.main_action.data.message.reply_to_email", + "definition.data.main_action.data.message.cc_email", + "definition.data.main_action.data.message.bcc_email", + "definition.data.main_action.data.message.subject_line", + "definition.data.main_action.data.message.preview_text", + "definition.data.main_action.data.message.template_id", + "definition.data.main_action.data.message.smart_sending_enabled", + "definition.data.main_action.data.message.transactional", + "definition.data.main_action.data.message.add_tracking_params", + "definition.data.main_action.data.message.custom_tracking_params", + "definition.data.main_action.data.message.additional_filters", + "definition.data.main_action.data.message.additional_filters.condition_groups", + "definition.data.main_action.data.message.name", + "definition.data.main_action.data.message.id", + "definition.data.main_action.data.status", + "definition.data.main_action.data.message.body", + "definition.data.main_action.data.message.image_id", + "definition.data.main_action.data.message.dynamic_image", + "definition.data.main_action.data.message.shorten_links", + "definition.data.main_action.data.message.include_contact_card", + "definition.data.main_action.data.message.add_org_prefix", + "definition.data.main_action.data.message.add_info_link", + "definition.data.main_action.data.message.add_opt_out_language", + "definition.data.main_action.data.message.sms_quiet_hours_enabled", + "definition.data.current_experiment", + "definition.data.current_experiment.id", + "definition.data.current_experiment.name", + "definition.data.current_experiment.variations", + "definition.data.current_experiment.allocations", + "definition.data.current_experiment.started", + "definition.data.current_experiment.winner_metric", + "definition.data.current_experiment.automatic_winner_selection_settings", + "definition.data.current_experiment.automatic_winner_selection_settings.enabled", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_date", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_statistical_certainty", + "definition.data.name", + "definition.data.on_execution", + "definition.data.list_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow-message]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "channel", + "created", + "updated", + "definition", + "definition.from_email", + "definition.from_label", + "definition.reply_to_email", + "definition.cc_email", + "definition.bcc_email", + "definition.subject_line", + "definition.preview_text", + "definition.template_id", + "definition.smart_sending_enabled", + "definition.transactional", + "definition.add_tracking_params", + "definition.custom_tracking_params", + "definition.additional_filters", + "definition.additional_filters.condition_groups", + "definition.name", + "definition.id", + "definition.to_emails", + "definition.title", + "definition.body", + "definition.sound", + "definition.badge", + "definition.badge_options", + "definition.badge_options.badge_config", + "definition.badge_options.value", + "definition.badge_options.set_from_property", + "definition.image_id", + "definition.dynamic_image", + "definition.video_asset_id", + "definition.on_open", + "definition.ios_link", + "definition.android_link", + "definition.conversion_metric_id", + "definition.shorten_links", + "definition.include_contact_card", + "definition.add_org_prefix", + "definition.add_info_link", + "definition.add_opt_out_language", + "definition.sms_quiet_hours_enabled", + "definition.url", + "definition.headers", + "definition.vendor_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow", + "flow-messages" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowActionEncodedResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + }, + "patch": { + "operationId": "update_flow_action", + "summary": "Update Flow Action", + "description": "Update a flow action.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:write`", + "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-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FlowActionUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchFlowActionEncodedResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:write" + ] + } + }, + "/api/flow-messages/{id}": { + "get": { + "operationId": "get_flow_message", + "summary": "Get Flow Message", + "description": "Get a flow message from a flow with the given flow message ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow-action]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "definition", + "definition.id", + "definition.temporary_id", + "definition.type", + "definition.links", + "definition.links.next_if_true", + "definition.links.next_if_false", + "definition.data", + "definition.data.action_output_filter", + "definition.data.action_output_filter.condition_groups", + "definition.links.next", + "definition.data.profile_filter", + "definition.data.profile_filter.condition_groups", + "definition.data.message", + "definition.data.message.from_email", + "definition.data.message.from_label", + "definition.data.message.reply_to_email", + "definition.data.message.cc_email", + "definition.data.message.bcc_email", + "definition.data.message.subject_line", + "definition.data.message.preview_text", + "definition.data.message.template_id", + "definition.data.message.smart_sending_enabled", + "definition.data.message.transactional", + "definition.data.message.add_tracking_params", + "definition.data.message.custom_tracking_params", + "definition.data.message.additional_filters", + "definition.data.message.additional_filters.condition_groups", + "definition.data.message.name", + "definition.data.message.id", + "definition.data.status", + "definition.data.message.title", + "definition.data.message.body", + "definition.data.message.sound", + "definition.data.message.badge", + "definition.data.message.badge_options", + "definition.data.message.badge_options.badge_config", + "definition.data.message.badge_options.value", + "definition.data.message.badge_options.set_from_property", + "definition.data.message.image_id", + "definition.data.message.dynamic_image", + "definition.data.message.video_asset_id", + "definition.data.message.on_open", + "definition.data.message.ios_link", + "definition.data.message.android_link", + "definition.data.message.conversion_metric_id", + "definition.data.message.shorten_links", + "definition.data.message.include_contact_card", + "definition.data.message.add_org_prefix", + "definition.data.message.add_info_link", + "definition.data.message.add_opt_out_language", + "definition.data.message.sms_quiet_hours_enabled", + "definition.data.message.url", + "definition.data.message.headers", + "definition.data.message.to_emails", + "definition.data.message.vendor_id", + "definition.data.unit", + "definition.data.value", + "definition.data.secondary_value", + "definition.data.timezone", + "definition.data.delay_until_time", + "definition.data.delay_until_weekdays", + "definition.data.trigger_filter", + "definition.data.trigger_filter.condition_groups", + "definition.data.trigger_id", + "definition.data.trigger_type", + "definition.data.trigger_subtype", + "definition.data.profile_operations", + "definition.data.target_time", + "definition.data.target_days", + "definition.data.experiment_status", + "definition.data.main_action", + "definition.data.main_action.id", + "definition.data.main_action.temporary_id", + "definition.data.main_action.type", + "definition.data.main_action.links", + "definition.data.main_action.links.next", + "definition.data.main_action.data", + "definition.data.main_action.data.message", + "definition.data.main_action.data.message.from_email", + "definition.data.main_action.data.message.from_label", + "definition.data.main_action.data.message.reply_to_email", + "definition.data.main_action.data.message.cc_email", + "definition.data.main_action.data.message.bcc_email", + "definition.data.main_action.data.message.subject_line", + "definition.data.main_action.data.message.preview_text", + "definition.data.main_action.data.message.template_id", + "definition.data.main_action.data.message.smart_sending_enabled", + "definition.data.main_action.data.message.transactional", + "definition.data.main_action.data.message.add_tracking_params", + "definition.data.main_action.data.message.custom_tracking_params", + "definition.data.main_action.data.message.additional_filters", + "definition.data.main_action.data.message.additional_filters.condition_groups", + "definition.data.main_action.data.message.name", + "definition.data.main_action.data.message.id", + "definition.data.main_action.data.status", + "definition.data.main_action.data.message.body", + "definition.data.main_action.data.message.image_id", + "definition.data.main_action.data.message.dynamic_image", + "definition.data.main_action.data.message.shorten_links", + "definition.data.main_action.data.message.include_contact_card", + "definition.data.main_action.data.message.add_org_prefix", + "definition.data.main_action.data.message.add_info_link", + "definition.data.main_action.data.message.add_opt_out_language", + "definition.data.main_action.data.message.sms_quiet_hours_enabled", + "definition.data.current_experiment", + "definition.data.current_experiment.id", + "definition.data.current_experiment.name", + "definition.data.current_experiment.variations", + "definition.data.current_experiment.allocations", + "definition.data.current_experiment.started", + "definition.data.current_experiment.winner_metric", + "definition.data.current_experiment.automatic_winner_selection_settings", + "definition.data.current_experiment.automatic_winner_selection_settings.enabled", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_date", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_statistical_certainty", + "definition.data.name", + "definition.data.on_execution", + "definition.data.list_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow-message]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "channel", + "created", + "updated", + "definition", + "definition.from_email", + "definition.from_label", + "definition.reply_to_email", + "definition.cc_email", + "definition.bcc_email", + "definition.subject_line", + "definition.preview_text", + "definition.template_id", + "definition.smart_sending_enabled", + "definition.transactional", + "definition.add_tracking_params", + "definition.custom_tracking_params", + "definition.additional_filters", + "definition.additional_filters.condition_groups", + "definition.name", + "definition.id", + "definition.to_emails", + "definition.title", + "definition.body", + "definition.sound", + "definition.badge", + "definition.badge_options", + "definition.badge_options.badge_config", + "definition.badge_options.value", + "definition.badge_options.set_from_property", + "definition.image_id", + "definition.dynamic_image", + "definition.video_asset_id", + "definition.on_open", + "definition.ios_link", + "definition.android_link", + "definition.conversion_metric_id", + "definition.shorten_links", + "definition.include_contact_card", + "definition.add_org_prefix", + "definition.add_info_link", + "definition.add_opt_out_language", + "definition.sms_quiet_hours_enabled", + "definition.url", + "definition.headers", + "definition.vendor_id" + ] + } + }, + "explode": false + }, + { + "name": "fields[template]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-action", + "template" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowMessageEncodedResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flows/{id}/flow-actions": { + "get": { + "operationId": "get_actions_for_flow", + "summary": "Get Actions for Flow", + "description": "Get all flow actions associated with the given flow ID.\n\nReturns a maximum of 50 flows per request, which can be paginated with cursor-based pagination.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow-action]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "definition", + "definition.id", + "definition.temporary_id", + "definition.type", + "definition.links", + "definition.links.next_if_true", + "definition.links.next_if_false", + "definition.data", + "definition.data.action_output_filter", + "definition.data.action_output_filter.condition_groups", + "definition.links.next", + "definition.data.profile_filter", + "definition.data.profile_filter.condition_groups", + "definition.data.message", + "definition.data.message.from_email", + "definition.data.message.from_label", + "definition.data.message.reply_to_email", + "definition.data.message.cc_email", + "definition.data.message.bcc_email", + "definition.data.message.subject_line", + "definition.data.message.preview_text", + "definition.data.message.template_id", + "definition.data.message.smart_sending_enabled", + "definition.data.message.transactional", + "definition.data.message.add_tracking_params", + "definition.data.message.custom_tracking_params", + "definition.data.message.additional_filters", + "definition.data.message.additional_filters.condition_groups", + "definition.data.message.name", + "definition.data.message.id", + "definition.data.status", + "definition.data.message.title", + "definition.data.message.body", + "definition.data.message.sound", + "definition.data.message.badge", + "definition.data.message.badge_options", + "definition.data.message.badge_options.badge_config", + "definition.data.message.badge_options.value", + "definition.data.message.badge_options.set_from_property", + "definition.data.message.image_id", + "definition.data.message.dynamic_image", + "definition.data.message.video_asset_id", + "definition.data.message.on_open", + "definition.data.message.ios_link", + "definition.data.message.android_link", + "definition.data.message.conversion_metric_id", + "definition.data.message.shorten_links", + "definition.data.message.include_contact_card", + "definition.data.message.add_org_prefix", + "definition.data.message.add_info_link", + "definition.data.message.add_opt_out_language", + "definition.data.message.sms_quiet_hours_enabled", + "definition.data.message.url", + "definition.data.message.headers", + "definition.data.message.to_emails", + "definition.data.message.vendor_id", + "definition.data.unit", + "definition.data.value", + "definition.data.secondary_value", + "definition.data.timezone", + "definition.data.delay_until_time", + "definition.data.delay_until_weekdays", + "definition.data.trigger_filter", + "definition.data.trigger_filter.condition_groups", + "definition.data.trigger_id", + "definition.data.trigger_type", + "definition.data.trigger_subtype", + "definition.data.profile_operations", + "definition.data.target_time", + "definition.data.target_days", + "definition.data.experiment_status", + "definition.data.main_action", + "definition.data.main_action.id", + "definition.data.main_action.temporary_id", + "definition.data.main_action.type", + "definition.data.main_action.links", + "definition.data.main_action.links.next", + "definition.data.main_action.data", + "definition.data.main_action.data.message", + "definition.data.main_action.data.message.from_email", + "definition.data.main_action.data.message.from_label", + "definition.data.main_action.data.message.reply_to_email", + "definition.data.main_action.data.message.cc_email", + "definition.data.main_action.data.message.bcc_email", + "definition.data.main_action.data.message.subject_line", + "definition.data.main_action.data.message.preview_text", + "definition.data.main_action.data.message.template_id", + "definition.data.main_action.data.message.smart_sending_enabled", + "definition.data.main_action.data.message.transactional", + "definition.data.main_action.data.message.add_tracking_params", + "definition.data.main_action.data.message.custom_tracking_params", + "definition.data.main_action.data.message.additional_filters", + "definition.data.main_action.data.message.additional_filters.condition_groups", + "definition.data.main_action.data.message.name", + "definition.data.main_action.data.message.id", + "definition.data.main_action.data.status", + "definition.data.main_action.data.message.body", + "definition.data.main_action.data.message.image_id", + "definition.data.main_action.data.message.dynamic_image", + "definition.data.main_action.data.message.shorten_links", + "definition.data.main_action.data.message.include_contact_card", + "definition.data.main_action.data.message.add_org_prefix", + "definition.data.main_action.data.message.add_info_link", + "definition.data.main_action.data.message.add_opt_out_language", + "definition.data.main_action.data.message.sms_quiet_hours_enabled", + "definition.data.current_experiment", + "definition.data.current_experiment.id", + "definition.data.current_experiment.name", + "definition.data.current_experiment.variations", + "definition.data.current_experiment.allocations", + "definition.data.current_experiment.started", + "definition.data.current_experiment.winner_metric", + "definition.data.current_experiment.automatic_winner_selection_settings", + "definition.data.current_experiment.automatic_winner_selection_settings.enabled", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_date", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_statistical_certainty", + "definition.data.name", + "definition.data.on_execution", + "definition.data.list_id" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`
`action_type`: `any`, `equals`
`status`: `equals`
`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "any(id,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 50. Min: 1. Max: 50.", + "required": false, + "schema": { + "type": "integer", + "default": 50, + "maximum": 50, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "action_type", + "-action_type", + "created", + "-created", + "id", + "-id", + "status", + "-status", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowActionEncodedResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_flow_actions", + "get_flow_actions" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flows/{id}/relationships/flow-actions": { + "get": { + "operationId": "get_action_ids_for_flow", + "summary": "Get Action IDs for Flow", + "description": "Get all [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for flow actions associated with the given flow ID.\n\nReturns a maximum of 100 flows per request, which can be paginated with cursor-based pagination.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`
`action_type`: `any`, `equals`
`status`: `equals`
`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "any(id,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 50. Min: 1. Max: 50.", + "required": false, + "schema": { + "type": "integer", + "default": 50, + "maximum": 50, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "action_type", + "-action_type", + "created", + "-created", + "id", + "-id", + "status", + "-status", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowFlowActionRelationshipListResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_relationships_flow_actions", + "get_flow_relationships_actions" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flows/{id}/tags": { + "get": { + "operationId": "get_tags_for_flow", + "summary": "Get Tags for Flow", + "description": "Return all tags associated with the given flow ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`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-01-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-01-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": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "tags:read" + ] + } + }, + "/api/flows/{id}/relationships/tags": { + "get": { + "operationId": "get_tag_ids_for_flow", + "summary": "Get Tag IDs for Flow", + "description": "Return the tag IDs of all tags associated with the given flow.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowTagsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_relationships_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "tags:read" + ] + } + }, + "/api/flow-actions/{id}/flow": { + "get": { + "operationId": "get_flow_for_flow_action", + "summary": "Get Flow for Flow Action", + "description": "Get the flow associated with the given action ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_action_flow" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-actions/{id}/relationships/flow": { + "get": { + "operationId": "get_flow_id_for_flow_action", + "summary": "Get Flow ID for Flow Action", + "description": "Get the flow associated with the given action ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowActionFlowRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_action_relationships_flow" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-actions/{id}/flow-messages": { + "get": { + "operationId": "get_flow_action_messages", + "summary": "Get Messages For Flow Action", + "description": "Get all flow messages associated with the given flow action ID.\n\nReturns a maximum of 50 flow message relationships per request, which can be paginated with cursor-based pagination.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow-message]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "channel", + "created", + "updated", + "definition", + "definition.from_email", + "definition.from_label", + "definition.reply_to_email", + "definition.cc_email", + "definition.bcc_email", + "definition.subject_line", + "definition.preview_text", + "definition.template_id", + "definition.smart_sending_enabled", + "definition.transactional", + "definition.add_tracking_params", + "definition.custom_tracking_params", + "definition.additional_filters", + "definition.additional_filters.condition_groups", + "definition.name", + "definition.id", + "definition.to_emails", + "definition.title", + "definition.body", + "definition.sound", + "definition.badge", + "definition.badge_options", + "definition.badge_options.badge_config", + "definition.badge_options.value", + "definition.badge_options.set_from_property", + "definition.image_id", + "definition.dynamic_image", + "definition.video_asset_id", + "definition.on_open", + "definition.ios_link", + "definition.android_link", + "definition.conversion_metric_id", + "definition.shorten_links", + "definition.include_contact_card", + "definition.add_org_prefix", + "definition.add_info_link", + "definition.add_opt_out_language", + "definition.sms_quiet_hours_enabled", + "definition.url", + "definition.headers", + "definition.vendor_id" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`
`name`: `contains`, `ends-with`, `equals`, `starts-with`
`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "any(id,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 50. Min: 1. Max: 50.", + "required": false, + "schema": { + "type": "integer", + "default": 50, + "maximum": 50, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowMessageEncodedResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_messages_for_flow_action" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-actions/{id}/relationships/flow-messages": { + "get": { + "operationId": "get_message_ids_for_flow_action", + "summary": "Get Message IDs for Flow Action", + "description": "Get all relationships for flow messages associated with the given flow action ID.\n\nReturns a maximum of 50 flow message relationships per request, which can be paginated with cursor-based pagination.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`name`: `contains`, `ends-with`, `equals`, `starts-with`
`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(name,'example')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 50. Min: 1. Max: 50.", + "required": false, + "schema": { + "type": "integer", + "default": 50, + "maximum": 50, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowActionFlowMessageRelationshipResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_action_relationships_messages" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-messages/{id}/flow-action": { + "get": { + "operationId": "get_action_for_flow_message", + "summary": "Get Action for Flow Message", + "description": "Get the flow action for a flow message with the given message ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow-action]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "definition", + "definition.id", + "definition.temporary_id", + "definition.type", + "definition.links", + "definition.links.next_if_true", + "definition.links.next_if_false", + "definition.data", + "definition.data.action_output_filter", + "definition.data.action_output_filter.condition_groups", + "definition.links.next", + "definition.data.profile_filter", + "definition.data.profile_filter.condition_groups", + "definition.data.message", + "definition.data.message.from_email", + "definition.data.message.from_label", + "definition.data.message.reply_to_email", + "definition.data.message.cc_email", + "definition.data.message.bcc_email", + "definition.data.message.subject_line", + "definition.data.message.preview_text", + "definition.data.message.template_id", + "definition.data.message.smart_sending_enabled", + "definition.data.message.transactional", + "definition.data.message.add_tracking_params", + "definition.data.message.custom_tracking_params", + "definition.data.message.additional_filters", + "definition.data.message.additional_filters.condition_groups", + "definition.data.message.name", + "definition.data.message.id", + "definition.data.status", + "definition.data.message.title", + "definition.data.message.body", + "definition.data.message.sound", + "definition.data.message.badge", + "definition.data.message.badge_options", + "definition.data.message.badge_options.badge_config", + "definition.data.message.badge_options.value", + "definition.data.message.badge_options.set_from_property", + "definition.data.message.image_id", + "definition.data.message.dynamic_image", + "definition.data.message.video_asset_id", + "definition.data.message.on_open", + "definition.data.message.ios_link", + "definition.data.message.android_link", + "definition.data.message.conversion_metric_id", + "definition.data.message.shorten_links", + "definition.data.message.include_contact_card", + "definition.data.message.add_org_prefix", + "definition.data.message.add_info_link", + "definition.data.message.add_opt_out_language", + "definition.data.message.sms_quiet_hours_enabled", + "definition.data.message.url", + "definition.data.message.headers", + "definition.data.message.to_emails", + "definition.data.message.vendor_id", + "definition.data.unit", + "definition.data.value", + "definition.data.secondary_value", + "definition.data.timezone", + "definition.data.delay_until_time", + "definition.data.delay_until_weekdays", + "definition.data.trigger_filter", + "definition.data.trigger_filter.condition_groups", + "definition.data.trigger_id", + "definition.data.trigger_type", + "definition.data.trigger_subtype", + "definition.data.profile_operations", + "definition.data.target_time", + "definition.data.target_days", + "definition.data.experiment_status", + "definition.data.main_action", + "definition.data.main_action.id", + "definition.data.main_action.temporary_id", + "definition.data.main_action.type", + "definition.data.main_action.links", + "definition.data.main_action.links.next", + "definition.data.main_action.data", + "definition.data.main_action.data.message", + "definition.data.main_action.data.message.from_email", + "definition.data.main_action.data.message.from_label", + "definition.data.main_action.data.message.reply_to_email", + "definition.data.main_action.data.message.cc_email", + "definition.data.main_action.data.message.bcc_email", + "definition.data.main_action.data.message.subject_line", + "definition.data.main_action.data.message.preview_text", + "definition.data.main_action.data.message.template_id", + "definition.data.main_action.data.message.smart_sending_enabled", + "definition.data.main_action.data.message.transactional", + "definition.data.main_action.data.message.add_tracking_params", + "definition.data.main_action.data.message.custom_tracking_params", + "definition.data.main_action.data.message.additional_filters", + "definition.data.main_action.data.message.additional_filters.condition_groups", + "definition.data.main_action.data.message.name", + "definition.data.main_action.data.message.id", + "definition.data.main_action.data.status", + "definition.data.main_action.data.message.body", + "definition.data.main_action.data.message.image_id", + "definition.data.main_action.data.message.dynamic_image", + "definition.data.main_action.data.message.shorten_links", + "definition.data.main_action.data.message.include_contact_card", + "definition.data.main_action.data.message.add_org_prefix", + "definition.data.main_action.data.message.add_info_link", + "definition.data.main_action.data.message.add_opt_out_language", + "definition.data.main_action.data.message.sms_quiet_hours_enabled", + "definition.data.current_experiment", + "definition.data.current_experiment.id", + "definition.data.current_experiment.name", + "definition.data.current_experiment.variations", + "definition.data.current_experiment.allocations", + "definition.data.current_experiment.started", + "definition.data.current_experiment.winner_metric", + "definition.data.current_experiment.automatic_winner_selection_settings", + "definition.data.current_experiment.automatic_winner_selection_settings.enabled", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_date", + "definition.data.current_experiment.automatic_winner_selection_settings.automatic_end_statistical_certainty", + "definition.data.name", + "definition.data.on_execution", + "definition.data.list_id" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowActionEncodedResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_message_action" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-messages/{id}/relationships/flow-action": { + "get": { + "operationId": "get_action_id_for_flow_message", + "summary": "Get Action ID for Flow Message", + "description": "Get the [relationship](https://developers.klaviyo.com/en/reference/api_overview#relationships) for a flow message's flow action, given the flow ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowMessageActionRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_message_relationships_action" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-messages/{id}/template": { + "get": { + "operationId": "get_template_for_flow_message", + "summary": "Get Template for Flow Message", + "description": "Return the related template

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`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-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_message_template" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ] + } + }, + "/api/flow-messages/{id}/relationships/template": { + "get": { + "operationId": "get_template_id_for_flow_message", + "summary": "Get Template ID for Flow Message", + "description": "Returns the ID of the related template

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowMessageTemplateRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Flows" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_message_relationships_template" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ] + } + }, + "/api/forms": { + "get": { + "operationId": "get_forms", + "summary": "Get Forms", + "description": "Get all forms in an account.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "fields[form]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "ab_test", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`, `equals`
`name`: `any`, `contains`, `equals`
`ab_test`: `equals`
`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`status`: `equals`", + "schema": { + "type": "string", + "example": "equals(id,'Y6nRLr')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created_at", + "-created_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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFormResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + }, + "post": { + "operationId": "create_form", + "summary": "Create Form", + "description": "Create a new form.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Creates a Form from parameters", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FormCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostEncodedFormResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:write" + ] + } + }, + "/api/forms/{id}": { + "get": { + "operationId": "get_form", + "summary": "Get Form", + "description": "Get the form with the given ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form", + "required": true, + "schema": { + "description": "The ID of the form", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "fields[form]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "ab_test", + "name", + "definition", + "definition.versions", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetEncodedFormResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + }, + "delete": { + "operationId": "delete_form", + "summary": "Delete Form", + "description": "Delete a given form.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form", + "required": true, + "schema": { + "description": "The ID of the form", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:write" + ] + } + }, + "/api/form-versions/{id}": { + "get": { + "operationId": "get_form_version", + "summary": "Get Form Version", + "description": "Get the form version with the given ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form version", + "required": true, + "schema": { + "description": "The ID of the form version", + "type": "string", + "example": "1234567" + } + }, + { + "name": "fields[form-version]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "form_type", + "variation_name", + "ab_test", + "ab_test.variation_name", + "status", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFormVersionResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/forms/{id}/form-versions": { + "get": { + "operationId": "get_versions_for_form", + "summary": "Get Versions for Form", + "description": "Get the form versions for the given form.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form", + "required": true, + "schema": { + "description": "The ID of the form", + "type": "string", + "example": "Y6nRLr", + "nullable": true + } + }, + { + "name": "fields[form-version]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "form_type", + "variation_name", + "ab_test", + "ab_test.variation_name", + "status", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`form_type`: `any`, `equals`
`status`: `equals`
`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(form_type,'popup')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created_at", + "-created_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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFormVersionResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-operation-aliases": [ + "get_form_form_versions", + "get_form_versions" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/forms/{id}/relationships/form-versions": { + "get": { + "operationId": "get_version_ids_for_form", + "summary": "Get Version IDs for Form", + "description": "Get the IDs of the form versions for the given form.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form", + "required": true, + "schema": { + "description": "The ID of the form", + "type": "string", + "example": "Y6nRLr", + "nullable": true + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`form_type`: `any`, `equals`
`status`: `equals`
`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(form_type,'popup')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created_at", + "-created_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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFormVersionsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-operation-aliases": [ + "get_form_relationships_form_versions", + "get_form_relationships_versions" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/form-versions/{id}/form": { + "get": { + "operationId": "get_form_for_form_version", + "summary": "Get Form for Form Version", + "description": "Get the form associated with the given form version.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form version", + "required": true, + "schema": { + "description": "The ID of the form version", + "type": "string", + "example": "1234567" + } + }, + { + "name": "fields[form]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "ab_test", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFormResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-operation-aliases": [ + "get_form_version_form" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/form-versions/{id}/relationships/form": { + "get": { + "operationId": "get_form_id_for_form_version", + "summary": "Get Form ID for Form Version", + "description": "Get the ID of the form associated with the given form version.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the form version", + "required": true, + "schema": { + "description": "The ID of the form version", + "type": "string", + "example": "1234567" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFormVersionFormRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Forms" + ], + "x-klaviyo-operation-aliases": [ + "get_form_version_relationships_form" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/images": { + "get": { + "operationId": "get_images", + "summary": "Get Images", + "description": "Get all images in an account.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`images:read`", + "parameters": [ + { + "name": "fields[image]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "image_url", + "format", + "size", + "hidden", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`, `equals`
`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`format`: `any`, `equals`
`name`: `any`, `contains`, `ends-with`, `equals`, `starts-with`
`size`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`hidden`: `any`, `equals`", + "schema": { + "type": "string", + "example": "equals(id,'7')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "format", + "-format", + "id", + "-id", + "name", + "-name", + "size", + "-size", + "updated_at", + "-updated_at" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetImageResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Images" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "images:read" + ] + }, + "post": { + "operationId": "upload_image_from_url", + "summary": "Upload Image From URL", + "description": "Import an image from a url or data uri.\n\nIf you want to upload an image from a file, use the Upload Image From File endpoint instead.

*Rate limits*:
Burst: `3/s`
Steady: `100/m`
Daily: `100/d`\n\n**Scopes:**\n`images:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ImageCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostImageResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Images" + ], + "x-klaviyo-operation-aliases": [ + "create_image" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "100/m", + "daily": "100/d" + }, + "x-klaviyo-scopes": [ + "images:write" + ] + } + }, + "/api/images/{id}": { + "get": { + "operationId": "get_image", + "summary": "Get Image", + "description": "Get the image with the given image ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`images:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the image", + "required": true, + "schema": { + "description": "The ID of the image", + "type": "string", + "example": "7" + } + }, + { + "name": "fields[image]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "image_url", + "format", + "size", + "hidden", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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": [ + "Images" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "images:read" + ] + }, + "patch": { + "operationId": "update_image", + "summary": "Update Image", + "description": "Update the image with the given image ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`images:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the image", + "required": true, + "schema": { + "description": "The ID of the image", + "type": "string", + "example": "7" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ImagePartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchImageResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Images" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "images:write" + ] + } + }, + "/api/image-upload": { + "post": { + "operationId": "upload_image_from_file", + "summary": "Upload Image From File", + "description": "Upload an image from a file.\n\nIf you want to import an image from an existing url or a data uri, use the Upload Image From URL endpoint instead.

*Rate limits*:
Burst: `3/s`
Steady: `100/m`
Daily: `100/d`\n\n**Scopes:**\n`images:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ImageUploadQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostImageResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Images" + ], + "x-klaviyo-operation-aliases": [ + "create_image_upload" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "100/m", + "daily": "100/d" + }, + "x-klaviyo-scopes": [ + "images:write" + ] + } + }, + "/api/lists": { + "get": { + "operationId": "get_lists", + "summary": "Get Lists", + "description": "Get all lists in an account.\n\nFilter to request a subset of all lists. Lists can be filtered by `id`, `name`, `created`, and `updated` fields.\n\nReturns a maximum of 10 results per page.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`lists:read`", + "parameters": [ + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[list]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "opt_in_process" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`name`: `any`, `equals`
`id`: `any`, `equals`
`created`: `greater-than`
`updated`: `greater-than`", + "schema": { + "type": "string", + "example": "equals(name,['example'])" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-triggers", + "tags" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListListResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "lists:read" + ] + }, + "post": { + "operationId": "create_list", + "summary": "Create List", + "description": "Create a new list.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`
Daily: `150/d`\n\n**Scopes:**\n`lists:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ListCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostListCreateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m", + "daily": "150/d" + }, + "x-klaviyo-scopes": [ + "lists:write" + ] + } + }, + "/api/lists/{id}": { + "get": { + "operationId": "get_list", + "summary": "Get List", + "description": "Get a list with the given list ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`

Rate limits when using the `additional-fields[list]=profile_count` parameter in your API request:
Burst: `1/s`
Steady: `15/m`

To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-01-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`lists:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "additional-fields[list]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'profile_count'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "profile_count" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[list]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "opt_in_process", + "profile_count" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-triggers", + "tags" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListRetrieveResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "lists:read" + ] + }, + "patch": { + "operationId": "update_list", + "summary": "Update List", + "description": "Update the name of a list with the given list ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ListPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchListPartialUpdateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:write" + ] + }, + "delete": { + "operationId": "delete_list", + "summary": "Delete List", + "description": "Delete a list with the given list ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:write" + ] + } + }, + "/api/lists/{id}/tags": { + "get": { + "operationId": "get_tags_for_list", + "summary": "Get Tags for List", + "description": "Return all tags associated with the given list ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:read`\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "get_list_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "tags:read" + ] + } + }, + "/api/lists/{id}/relationships/tags": { + "get": { + "operationId": "get_tag_ids_for_list", + "summary": "Get Tag IDs for List", + "description": "Return all tags associated with the given list ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:read`\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListTagsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "get_list_relationships_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "tags:read" + ] + } + }, + "/api/lists/{id}/profiles": { + "get": { + "operationId": "get_profiles_for_list", + "summary": "Get Profiles for List", + "description": "Get all profiles within a list with the given list ID.\n\nFilter to request a subset of all profiles. Profiles can be filtered by `email`, `phone_number`, `push_token`, and `joined_group_at` fields. Profiles can be sorted by the following fields, in ascending and descending order: `joined_group_at`

*Rate limits*:
Burst: `75/s`
Steady: `700/m`

Rate limits when using the `additional-fields[profile]=predictive_analytics` parameter in your API request:
Burst: `10/s`
Steady: `150/m`

To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-01-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`lists:read`\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "joined_group_at", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`push_token`: `any`, `equals`
`_kx`: `equals`
`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(email,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "joined_group_at", + "-joined_group_at" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListMemberResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "get_list_profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "profiles:read" + ] + } + }, + "/api/lists/{id}/relationships/profiles": { + "get": { + "operationId": "get_profile_ids_for_list", + "summary": "Get Profile IDs for List", + "description": "Get profile membership [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for a list with the given list ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`

Rate limits when using the `additional-fields[profile]=predictive_analytics` parameter in your API request:
Burst: `10/s`
Steady: `150/m`

To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-01-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`lists:read`\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`push_token`: `any`, `equals`
`_kx`: `equals`
`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(email,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "joined_group_at", + "-joined_group_at" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListProfilesRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "get_list_relationships_profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "profiles:read" + ] + }, + "post": { + "operationId": "add_profiles_to_list", + "summary": "Add Profiles to List", + "description": "Add a profile to a list with the given list ID.\n\nIt is recommended that you use the [Subscribe Profiles endpoint](https://developers.klaviyo.com/en/reference/subscribe_profiles) if you're trying to give a profile [consent](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api) to receive email marketing, SMS marketing, or both.\n\nThis endpoint accepts a maximum of 1000 profiles per call.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:write`\n`profiles:write`", + "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-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ListMembersAddQuery" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "create_list_relationships", + "create_list_relationships_profile", + "create_list_relationships_profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "profiles:write" + ] + }, + "delete": { + "operationId": "remove_profiles_from_list", + "summary": "Remove Profiles from List", + "description": "Remove a profile from a list with the given list ID.\n\nThe provided profile will no longer receive marketing from this particular list once removed.\n\nRemoving a profile from a list will not impact the profile's [consent](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api) status or subscription status in general.\nTo update a profile's subscription status, please use the [Unsubscribe Profiles endpoint](https://developers.klaviyo.com/en/reference/unsubscribe_profiles).\n\nThis endpoint accepts a maximum of 1000 profiles per call.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:write`\n`profiles:write`", + "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-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ListMembersDeleteQuery" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "delete_list_relationships", + "delete_list_relationships_profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "profiles:write" + ] + } + }, + "/api/lists/{id}/flow-triggers": { + "get": { + "operationId": "get_flows_triggered_by_list", + "summary": "Get Flows Triggered by List", + "description": "Get all flows where the given list ID is being used as the trigger.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`lists:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_triggers_for_list", + "get_list_flow_triggers" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "lists:read" + ] + } + }, + "/api/lists/{id}/relationships/flow-triggers": { + "get": { + "operationId": "get_ids_for_flows_triggered_by_list", + "summary": "Get IDs for Flows Triggered by List", + "description": "Get the IDs of all flows where the given list is being used as the trigger.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`lists:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListFlowTriggersRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Lists" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_trigger_ids_for_list", + "get_list_relationships_flow_triggers" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "lists:read" + ] + } + }, + "/api/metrics": { + "get": { + "operationId": "get_metrics", + "summary": "Get Metrics", + "description": "Get all metrics in an account.\n\nRequests can be filtered by the following fields:\nintegration `name`, integration `category`\n\nReturns a maximum of 200 results per page.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`integration.name`: `equals`
`integration.category`: `equals`", + "schema": { + "type": "string", + "example": "equals(integration.name,'example')" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-triggers" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/metrics/{id}": { + "get": { + "operationId": "get_metric", + "summary": "Get Metric", + "description": "Get a metric with the given metric ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Metric ID", + "required": true, + "schema": { + "description": "Metric ID", + "type": "string" + } + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-triggers" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/metric-properties/{id}": { + "get": { + "operationId": "get_metric_property", + "summary": "Get Metric Property", + "description": "Get a metric property with the given metric property ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the metric property", + "required": true, + "schema": { + "description": "The ID of the metric property", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "additional-fields[metric-property]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'sample_values'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "sample_values" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric-property]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "label", + "property", + "inferred_type", + "sample_values" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "metric" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricPropertyResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/custom-metrics": { + "get": { + "operationId": "get_custom_metrics", + "summary": "Get Custom Metrics", + "description": "Get all custom metrics in an account.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "fields[custom-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "definition", + "definition.aggregation_method", + "definition.metric_groups" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "metrics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCustomMetricResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Custom Metrics" + }, + "post": { + "operationId": "create_custom_metric", + "summary": "Create Custom Metric", + "description": "Create a new custom metric.\n\nCustom metric objects must include a `name` and `definition`.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`
Daily: `15/d`\n\n**Scopes:**\n`metrics:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Create a custom metric.", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CustomMetricCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCustomMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m", + "daily": "15/d" + }, + "x-klaviyo-scopes": [ + "metrics:write" + ], + "x-klaviyo-subtag": "Custom Metrics" + } + }, + "/api/custom-metrics/{id}": { + "get": { + "operationId": "get_custom_metric", + "summary": "Get Custom Metric", + "description": "Get a custom metric with the given custom metric ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the custom metric", + "required": true, + "schema": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "fields[custom-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "definition", + "definition.aggregation_method", + "definition.metric_groups" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "metrics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCustomMetricResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Custom Metrics" + }, + "patch": { + "operationId": "update_custom_metric", + "summary": "Update Custom Metric", + "description": "Update a custom metric with the given custom metric ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`
Daily: `15/d`\n\n**Scopes:**\n`metrics:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the custom metric", + "required": true, + "schema": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Update a custom metric by ID.", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CustomMetricPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchCustomMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m", + "daily": "15/d" + }, + "x-klaviyo-scopes": [ + "metrics:write" + ], + "x-klaviyo-subtag": "Custom Metrics" + }, + "delete": { + "operationId": "delete_custom_metric", + "summary": "Delete Custom Metric", + "description": "Delete a custom metric with the given custom metric ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the custom metric", + "required": true, + "schema": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:write" + ], + "x-klaviyo-subtag": "Custom Metrics" + } + }, + "/api/mapped-metrics": { + "get": { + "operationId": "get_mapped_metrics", + "summary": "Get Mapped Metrics", + "description": "Get all mapped metrics in an account.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "fields[custom-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "definition", + "definition.aggregation_method", + "definition.metric_groups" + ] + } + }, + "explode": false + }, + { + "name": "fields[mapped-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "updated" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "custom-metric", + "metric" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMappedMetricResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Mapped Metrics" + } + }, + "/api/mapped-metrics/{id}": { + "get": { + "operationId": "get_mapped_metric", + "summary": "Get Mapped Metric", + "description": "Get the mapped metric with the given ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The type of mapping.", + "required": true, + "schema": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + } + }, + { + "name": "fields[custom-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "definition", + "definition.aggregation_method", + "definition.metric_groups" + ] + } + }, + "explode": false + }, + { + "name": "fields[mapped-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "updated" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "custom-metric", + "metric" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMappedMetricResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Mapped Metrics" + }, + "patch": { + "operationId": "update_mapped_metric", + "summary": "Update Mapped Metric", + "description": "Update the mapped metric with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`
Daily: `30/d`\n\n**Scopes:**\n`metrics:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The type of mapping.", + "required": true, + "schema": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Update a mapped metric by ID", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/MappedMetricPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchMappedMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m", + "daily": "30/d" + }, + "x-klaviyo-scopes": [ + "metrics:write" + ], + "x-klaviyo-subtag": "Mapped Metrics" + } + }, + "/api/metric-aggregates": { + "post": { + "operationId": "query_metric_aggregates", + "summary": "Query Metric Aggregates", + "description": "Query and aggregate event data associated with a metric, including native Klaviyo metrics, integration-specific metrics, and custom events (not to be confused with [custom metrics](https://developers.klaviyo.com/en/reference/custom_metrics_api_overview), which are not supported at this time). Queries must be passed in the JSON body of your `POST` request.\n\nTo request campaign and flow performance data that matches the data shown in Klaviyo's UI, we recommend the [Reporting API](https://developers.klaviyo.com/en/reference/reporting_api_overview).\n\nResults can be filtered and grouped by time, event, or profile dimensions.\n\nTo learn more about how to use this endpoint, check out our new [Using the Query Metric Aggregates Endpoint guide](https://developers.klaviyo.com/en/docs/using-the-query-metric-aggregates-endpoint).\n\nFor a comprehensive list of request body parameters, native Klaviyo metrics, and their associated attributes for grouping and filtering, please refer to the [metrics attributes guide](https://developers.klaviyo.com/en/docs/supported_metrics_and_attributes).

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Retrieve Metric Aggregations", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/MetricAggregateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostMetricAggregateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "create_metric_aggregate" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/metrics/{id}/flow-triggers": { + "get": { + "operationId": "get_flows_triggered_by_metric", + "summary": "Get Flows Triggered by Metric", + "description": "Get all flows where the given metric is being used as the trigger.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`flows:read`\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_triggers_for_metric", + "get_metric_flow_triggers" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "metrics:read" + ] + } + }, + "/api/metrics/{id}/relationships/flow-triggers": { + "get": { + "operationId": "get_ids_for_flows_triggered_by_metric", + "summary": "Get IDs for Flows Triggered by Metric", + "description": "Get the IDs of all flows where the given metric is being used as the trigger.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`flows:read`\n`metrics: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricFlowTriggersRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_trigger_ids_for_metric", + "get_metric_relationships_flow_triggers" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "metrics:read" + ] + } + }, + "/api/metrics/{id}/metric-properties": { + "get": { + "operationId": "get_properties_for_metric", + "summary": "Get Properties for Metric", + "description": "Get the metric properties for the given metric ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the metric", + "required": true, + "schema": { + "description": "The ID of the metric", + "type": "string", + "example": "925e38" + } + }, + { + "name": "additional-fields[metric-property]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'sample_values'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "sample_values" + ] + } + }, + "explode": false + }, + { + "name": "fields[metric-property]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "label", + "property", + "inferred_type", + "sample_values" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricPropertyResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_metric_metric_properties", + "get_metric_properties" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/metrics/{id}/relationships/metric-properties": { + "get": { + "operationId": "get_property_ids_for_metric", + "summary": "Get Property IDs for Metric", + "description": "Get the IDs of metric properties for the given metric.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the metric", + "required": true, + "schema": { + "description": "The ID of the metric", + "type": "string", + "example": "925e38" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricPropertiesRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_metric_relationships_metric_properties", + "get_metric_relationships_properties" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/metric-properties/{id}/metric": { + "get": { + "operationId": "get_metric_for_metric_property", + "summary": "Get Metric for Metric Property", + "description": "Get the metric for the given metric property ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the metric property", + "required": true, + "schema": { + "description": "The ID of the metric property", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_metric_property_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/metric-properties/{id}/relationships/metric": { + "get": { + "operationId": "get_metric_id_for_metric_property", + "summary": "Get Metric ID for Metric Property", + "description": "Get the ID of the metric for the given metric property.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the metric property", + "required": true, + "schema": { + "description": "The ID of the metric property", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricPropertyMetricRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_metric_property_relationships_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ] + } + }, + "/api/custom-metrics/{id}/metrics": { + "get": { + "operationId": "get_metrics_for_custom_metric", + "summary": "Get Metrics for Custom Metric", + "description": "Get all metrics for the given custom metric ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the custom metric", + "required": true, + "schema": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_custom_metric_metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Custom Metrics" + } + }, + "/api/custom-metrics/{id}/relationships/metrics": { + "get": { + "operationId": "get_metric_ids_for_custom_metric", + "summary": "Get Metric IDs for Custom Metric", + "description": "Get all metrics for the given custom metric ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the custom metric", + "required": true, + "schema": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCustomMetricMetricsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_custom_metric_relationships_metrics" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Custom Metrics" + } + }, + "/api/mapped-metrics/{id}/metric": { + "get": { + "operationId": "get_metric_for_mapped_metric", + "summary": "Get Metric for Mapped Metric", + "description": "Get the metric for the given mapped metric ID (if applicable).

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The type of mapping.", + "required": true, + "schema": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + } + }, + { + "name": "fields[metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "integration" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_mapped_metric_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Mapped Metrics" + } + }, + "/api/mapped-metrics/{id}/relationships/metric": { + "get": { + "operationId": "get_metric_id_for_mapped_metric", + "summary": "Get Metric ID for Mapped Metric", + "description": "Get the ID of the metric for the given mapped metric.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The type of mapping.", + "required": true, + "schema": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMappedMetricMetricRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_mapped_metric_relationships_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Mapped Metrics" + } + }, + "/api/mapped-metrics/{id}/custom-metric": { + "get": { + "operationId": "get_custom_metric_for_mapped_metric", + "summary": "Get Custom Metric for Mapped Metric", + "description": "Get the custom metric for the given mapped metric ID (if applicable).

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The type of mapping.", + "required": true, + "schema": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + } + }, + { + "name": "fields[custom-metric]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "definition", + "definition.aggregation_method", + "definition.metric_groups" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetCustomMetricResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_mapped_metric_custom_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Mapped Metrics" + } + }, + "/api/mapped-metrics/{id}/relationships/custom-metric": { + "get": { + "operationId": "get_custom_metric_id_for_mapped_metric", + "summary": "Get Custom Metric ID for Mapped Metric", + "description": "Get the ID of the custom metric for the given mapped metric.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`metrics:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The type of mapping.", + "required": true, + "schema": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetMappedMetricCustomMetricRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Metrics" + ], + "x-klaviyo-operation-aliases": [ + "get_mapped_metric_relationships_custom_metric" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "metrics:read" + ], + "x-klaviyo-subtag": "Mapped Metrics" + } + }, + "/api/profiles": { + "get": { + "operationId": "get_profiles", + "summary": "Get Profiles", + "description": "Get all profiles in an account.\n\nProfiles can be sorted by the following fields in ascending and descending order: `id`, `created`, `updated`, `email`, `subscriptions.email.marketing.suppression.timestamp`, `subscriptions.email.marketing.list_suppressions.timestamp`\n\nUse the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`

Rate limits when using the `additional-fields[profile]=predictive_analytics` parameter in your API request:
Burst: `10/s`
Steady: `150/m`

To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-01-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`profiles:read`", + "parameters": [ + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`, `equals`
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`external_id`: `any`, `equals`
`_kx`: `equals`
`created`: `greater-than`, `less-than`
`updated`: `greater-than`, `less-than`
`subscriptions.email.marketing.list_suppressions.reason`: `equals`
`subscriptions.email.marketing.list_suppressions.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`subscriptions.email.marketing.list_suppressions.list_id`: `equals`
`subscriptions.email.marketing.suppression.reason`: `equals`
`subscriptions.email.marketing.suppression.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(id,'example')" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "lists", + "push-tokens", + "segments" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "email", + "-email", + "id", + "-id", + "subscriptions.email.marketing.list_suppressions.timestamp", + "-subscriptions.email.marketing.list_suppressions.timestamp", + "subscriptions.email.marketing.suppression.timestamp", + "-subscriptions.email.marketing.suppression.timestamp", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ] + }, + "post": { + "operationId": "create_profile", + "summary": "Create Profile", + "description": "Create a new profile.\n\nUse the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.\n\nThe maximum allowed payload size is 100KB.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:write`", + "parameters": [ + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ProfileCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostProfileResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:write" + ] + } + }, + "/api/profiles/{id}": { + "get": { + "operationId": "get_profile", + "summary": "Get Profile", + "description": "Get the profile with the given profile ID.\n\nUse the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`

Rate limits when using the `include=list` parameter in your API request:
Burst: `1/s`
Steady: `15/m`

Rate limits when using the `include=segment` parameter in your API request:
Burst: `1/s`
Steady: `15/m`

To learn more about how the `include` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-01-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[list]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "opt_in_process" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "fields[push-token]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "token", + "enablement_status", + "platform", + "vendor", + "background", + "recorded_date", + "metadata", + "metadata.device_id", + "metadata.klaviyo_sdk", + "metadata.sdk_version", + "metadata.device_model", + "metadata.os_name", + "metadata.os_version", + "metadata.manufacturer", + "metadata.app_name", + "metadata.app_version", + "metadata.app_build", + "metadata.app_id", + "metadata.environment" + ] + } + }, + "explode": false + }, + { + "name": "fields[segment]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "definition", + "definition.condition_groups", + "created", + "updated", + "is_active", + "is_processing", + "is_starred" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "lists", + "push-tokens", + "segments" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ] + }, + "patch": { + "operationId": "update_profile", + "summary": "Update Profile", + "description": "Update the profile with the given profile ID.\n\nUse the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.\n\nNote that setting a field to `null` will clear out the field, whereas not including a field in your request will leave it unchanged.\n\nThe maximum allowed payload size is 100KB.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ProfilePartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchProfileResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:write" + ] + } + }, + "/api/profile-bulk-import-jobs": { + "get": { + "operationId": "get_bulk_import_profiles_jobs", + "summary": "Get Bulk Import Profiles Jobs", + "description": "Get all bulk profile import jobs.\n\nReturns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:read`\n`profiles:read`", + "parameters": [ + { + "name": "fields[profile-bulk-import-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "expires_at", + "started_at" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `any`, `equals`", + "schema": { + "type": "string", + "example": "equals(status,'queued')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created_at", + "-created_at" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileImportJobResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_jobs", + "get_profile_bulk_import_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "profiles:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + }, + "post": { + "operationId": "bulk_import_profiles", + "summary": "Bulk Import Profiles", + "description": "Create a bulk profile import job to create or update a batch of profiles.\n\nAccepts up to 10,000 profiles per request. The maximum allowed payload size is 5MB. The maximum allowed payload size per-profile is 100KB.\n\nTo learn more, see our [Bulk Profile Import API guide](https://developers.klaviyo.com/en/docs/use_klaviyos_bulk_profile_import_api).

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:write`\n`profiles:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ProfileImportJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostProfileImportJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "spawn_bulk_profile_import_job", + "create_profile_bulk_import_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "profiles:write" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/profile-bulk-import-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_import_profiles_job", + "summary": "Get Bulk Import Profiles Job", + "description": "Get a bulk profile import job with the given job ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:read`\n`profiles:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[list]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "opt_in_process" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile-bulk-import-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "failed_count", + "completed_at", + "expires_at", + "started_at" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "lists" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileImportJobResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_job", + "get_profile_bulk_import_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "profiles:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/profile-suppression-bulk-create-jobs": { + "get": { + "operationId": "get_bulk_suppress_profiles_jobs", + "summary": "Get Bulk Suppress Profiles Jobs", + "description": "Get the status of all bulk profile suppression jobs.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`subscriptions:read`", + "parameters": [ + { + "name": "fields[profile-suppression-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "completed_at", + "skipped_count" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`
`list_id`: `equals`
`segment_id`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetBulkProfileSuppressionsCreateJobResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_suppression_bulk_create_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "subscriptions:read" + ], + "x-klaviyo-subtag": "Consent" + }, + "post": { + "operationId": "bulk_suppress_profiles", + "summary": "Bulk Suppress Profiles", + "description": "Manually suppress profiles by email address or specify a segment/list ID to suppress all current members of a segment/list.\n\nSuppressed profiles cannot receive email marketing, independent of their consent status. To learn more, see our guides on [email suppressions](https://help.klaviyo.com/hc/en-us/articles/115005246108#what-is-a-suppressed-profile-1) and [collecting consent](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).\n\nEmail address per request limit: 100

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:write`\n`subscriptions:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Suppresses one or more profiles from receiving marketing. Currently, supports email only. If a profile is not found with the given email, one will be created and immediately suppressed.", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SuppressionCreateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostBulkProfileSuppressionsCreateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "suppress_profiles", + "create_profile_suppression_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:write", + "subscriptions:write" + ], + "x-klaviyo-subtag": "Consent" + } + }, + "/api/profile-suppression-bulk-create-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_suppress_profiles_job", + "summary": "Get Bulk Suppress Profiles Job", + "description": "Get the bulk suppress profiles job with the given job ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`subscriptions:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[profile-suppression-bulk-create-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "completed_at", + "skipped_count" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetBulkProfileSuppressionsCreateJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_suppression_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "subscriptions:read" + ], + "x-klaviyo-subtag": "Consent" + } + }, + "/api/profile-suppression-bulk-delete-jobs": { + "get": { + "operationId": "get_bulk_unsuppress_profiles_jobs", + "summary": "Get Bulk Unsuppress Profiles Jobs", + "description": "Get all bulk unsuppress profiles jobs.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`subscriptions:read`", + "parameters": [ + { + "name": "fields[profile-suppression-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "completed_at", + "skipped_count" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`
`list_id`: `equals`
`segment_id`: `equals`", + "schema": { + "type": "string", + "example": "equals(status,'processing')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetBulkProfileSuppressionsRemoveJobResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_suppression_bulk_delete_jobs" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "subscriptions:read" + ], + "x-klaviyo-subtag": "Consent" + }, + "post": { + "operationId": "bulk_unsuppress_profiles", + "summary": "Bulk Unsuppress Profiles", + "description": "Manually unsuppress profiles by email address or specify a segment/list ID to unsuppress all current members of a segment/list.\n\nThis only removes suppressions with reason USER_SUPPRESSED ; unsubscribed profiles and suppressed profiles with reason INVALID_EMAIL or HARD_BOUNCE remain unchanged. To learn more, see our guides on [email suppressions](https://help.klaviyo.com/hc/en-us/articles/115005246108#what-is-a-suppressed-profile-1) and [collecting consent](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).\n\nEmail address per request limit: 100

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`subscriptions:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Unsuppresses one or more profiles from receiving marketing. Currently, supports email only. If a profile is not\nfound with the given email, no action will be taken.", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SuppressionDeleteJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostBulkProfileSuppressionsRemoveJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "unsuppress_profiles", + "create_profile_suppression_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "subscriptions:write" + ], + "x-klaviyo-subtag": "Consent" + } + }, + "/api/profile-suppression-bulk-delete-jobs/{job_id}": { + "get": { + "operationId": "get_bulk_unsuppress_profiles_job", + "summary": "Get Bulk Unsuppress Profiles Job", + "description": "Get the bulk unsuppress profiles job with the given job ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`subscriptions:read`", + "parameters": [ + { + "name": "job_id", + "in": "path", + "description": "ID of the job to retrieve.", + "required": true, + "schema": { + "description": "ID of the job to retrieve.", + "type": "string", + "example": "01GSQPBF74KQ5YTDEPP41T1BZH" + } + }, + { + "name": "fields[profile-suppression-bulk-delete-job]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "created_at", + "total_count", + "completed_count", + "completed_at", + "skipped_count" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetBulkProfileSuppressionsRemoveJobResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_suppression_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "subscriptions:read" + ], + "x-klaviyo-subtag": "Consent" + } + }, + "/api/push-tokens": { + "get": { + "operationId": "get_push_tokens", + "summary": "Get Push Tokens", + "description": "Return push tokens associated with company.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`\n`push-tokens:read`", + "parameters": [ + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties" + ] + } + }, + "explode": false + }, + { + "name": "fields[push-token]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "token", + "enablement_status", + "platform", + "vendor", + "background", + "recorded_date", + "metadata", + "metadata.device_id", + "metadata.klaviyo_sdk", + "metadata.sdk_version", + "metadata.device_model", + "metadata.os_name", + "metadata.os_version", + "metadata.manufacturer", + "metadata.app_name", + "metadata.app_version", + "metadata.app_build", + "metadata.app_id", + "metadata.environment" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `equals`
`profile.id`: `equals`
`enablement_status`: `equals`
`platform`: `equals`", + "schema": { + "type": "string", + "example": "equals(id,'example')" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "profile" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetPushTokenResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "push-tokens:read" + ], + "x-klaviyo-subtag": "Push Tokens" + }, + "post": { + "operationId": "create_push_token", + "summary": "Create or Update Push Token", + "description": "Create or update a push token.\n\nThis endpoint can be used to migrate push tokens from another platform to Klaviyo. Please use our mobile SDKs ([iOS](https://github.com/klaviyo/klaviyo-swift-sdk) and [Android](https://github.com/klaviyo/klaviyo-android-sdk)) to create push tokens from users' devices.\n\nThe maximum allowed payload size is 100KB.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:write`\n`push-tokens:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PushTokenCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:write", + "push-tokens:write" + ], + "x-klaviyo-subtag": "Push Tokens" + } + }, + "/api/push-tokens/{id}": { + "get": { + "operationId": "get_push_token", + "summary": "Get Push Token", + "description": "Return a specific push token based on its ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`\n`push-tokens:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The value of the push token", + "required": true, + "schema": { + "description": "The value of the push token", + "type": "string" + } + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties" + ] + } + }, + "explode": false + }, + { + "name": "fields[push-token]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "token", + "enablement_status", + "platform", + "vendor", + "background", + "recorded_date", + "metadata", + "metadata.device_id", + "metadata.klaviyo_sdk", + "metadata.sdk_version", + "metadata.device_model", + "metadata.os_name", + "metadata.os_version", + "metadata.manufacturer", + "metadata.app_name", + "metadata.app_version", + "metadata.app_build", + "metadata.app_id", + "metadata.environment" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "profile" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetPushTokenResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "push-tokens:read" + ], + "x-klaviyo-subtag": "Push Tokens" + }, + "delete": { + "operationId": "delete_push_token", + "summary": "Delete Push Token", + "description": "Delete a specific push token based on its ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`push-tokens:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The value of the push token to delete", + "required": true, + "schema": { + "description": "The value of the push token to delete", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "push-tokens:write" + ], + "x-klaviyo-subtag": "Push Tokens" + } + }, + "/api/profile-import": { + "post": { + "operationId": "create_or_update_profile", + "summary": "Create or Update Profile", + "description": "Given a set of profile attributes and optionally an ID, create or update a profile.\n\nReturns 201 if a new profile was created, 200 if an existing profile was updated.\n\nUse the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.\n\nNote that setting a field to `null` will clear out the field, whereas not including a field in your request will leave it unchanged.\n\nThe maximum allowed payload size is 100KB.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:write`", + "parameters": [ + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ProfileUpsertQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Profile Updated Successfully", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostProfileResponse" + } + } + } + }, + "201": { + "description": "Profile Created Successfully", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostProfileResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "create_profile_import" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:write" + ] + } + }, + "/api/profile-merge": { + "post": { + "operationId": "merge_profiles", + "summary": "Merge Profiles", + "description": "Merge a given related profile into a profile with the given profile ID.\n\nThe profile provided under `relationships` (the \"source\" profile) will be merged into the profile provided by the ID in the base data object (the \"destination\" profile).\nThis endpoint queues an asynchronous task which will merge data from the source profile into the destination profile, deleting the source profile in the process. This endpoint accepts only one source profile.\n\nTo learn more about how profile data is preserved or overwritten during a merge, please [visit our Help Center](https://help.klaviyo.com/hc/en-us/articles/115005073847#merge-2-profiles3).

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ProfileMergeQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostProfileMergeResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "create_profile_merge" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:write" + ] + } + }, + "/api/profile-subscription-bulk-create-jobs": { + "post": { + "operationId": "bulk_subscribe_profiles", + "summary": "Bulk Subscribe Profiles", + "description": "Subscribe one or more profiles to email marketing, SMS marketing, or both. If the provided list has double opt-in enabled, profiles will receive a message requiring their confirmation before subscribing. Otherwise, profiles will be immediately subscribed without receiving a confirmation message.\nLearn more about [consent in this guide](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).\n\nIf a list is not provided, the opt-in process used will be determined by the [account-level default opt-in setting](https://www.klaviyo.com/settings/account/api-keys).\n\nTo add someone to a list without changing their subscription status, use [Add Profile to List](https://developers.klaviyo.com/en/reference/create_list_relationships).\n\nThis API will remove any `UNSUBSCRIBE`, `SPAM_REPORT` or `USER_SUPPRESSED` suppressions from the provided profiles. Learn more about [suppressed profiles](https://help.klaviyo.com/hc/en-us/articles/115005246108-Understanding-suppressed-email-profiles#what-is-a-suppressed-profile-1).\n\nMaximum number of profiles can be submitted for subscription: 1000\n\nThis endpoint now supports a `historical_import` flag. If this flag is set `true`, profiles being subscribed will bypass double opt-in emails and be subscribed immediately. They will also bypass any associated \"Added to list\" flows. This is useful for importing historical data where you have already collected consent. If `historical_import` is set to true, the `consented_at` field is required and must be in the past.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`lists:write`\n`profiles:write`\n`subscriptions:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Subscribes one or more profiles to marketing. Currently, supports email and SMS only. All profiles will be added to the provided list. Either email or phone number is required. Both may be specified to subscribe to both channels.\nIf a profile cannot be found matching the given identifier(s), a new profile will be created and then subscribed.", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionCreateJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "subscribe_profiles", + "create_profile_subscription_bulk_create_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "profiles:write", + "subscriptions:write" + ], + "x-klaviyo-subtag": "Consent" + } + }, + "/api/profile-subscription-bulk-delete-jobs": { + "post": { + "operationId": "bulk_unsubscribe_profiles", + "summary": "Bulk Unsubscribe Profiles", + "description": "> 🚧\n>\n> Profiles not in the specified list will be globally unsubscribed. Always verify profile list membership before calling this endpoint to avoid unintended global unsubscribes.\n\nUnsubscribe one or more profiles to email marketing, SMS marketing, or both. Learn more about [consent in this guide](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).\n\nTo remove someone from a list without changing their subscription status, use [Remove Profiles from List](https://developers.klaviyo.com/en/reference/remove_profiles_from_list).\n\nMaximum number of profiles per call: 100

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`lists:write`\n`profiles:write`\n`subscriptions:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Unsubscribes one or more profiles from marketing. Currently, supports email and SMS only. All profiles will be removed from the provided list.\nEither email or phone number is required. If a profile cannot be found matching the given identifier(s), a new profile will be created and then unsubscribed.", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionDeleteJobCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "unsubscribe_profiles", + "create_profile_subscription_bulk_delete_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "profiles:write", + "subscriptions:write" + ], + "x-klaviyo-subtag": "Consent" + } + }, + "/api/profiles/{id}/push-tokens": { + "get": { + "operationId": "get_push_tokens_for_profile", + "summary": "Get Push Tokens for Profile", + "description": "Return all push tokens that belong to the given profile.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[push-token]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "created", + "token", + "enablement_status", + "platform", + "vendor", + "background", + "recorded_date", + "metadata", + "metadata.device_id", + "metadata.klaviyo_sdk", + "metadata.sdk_version", + "metadata.device_model", + "metadata.os_name", + "metadata.os_version", + "metadata.manufacturer", + "metadata.app_name", + "metadata.app_version", + "metadata.app_build", + "metadata.app_id", + "metadata.environment" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetPushTokenResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_push_tokens" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ] + } + }, + "/api/profiles/{id}/relationships/push-tokens": { + "get": { + "operationId": "get_push_token_ids_for_profile", + "summary": "Get Push Token IDs for Profile", + "description": "Return the IDs of all push tokens associated with the given profile.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfilePushTokensRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_relationships_push_tokens" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ] + } + }, + "/api/profiles/{id}/lists": { + "get": { + "operationId": "get_lists_for_profile", + "summary": "Get Lists for Profile", + "description": "Get list memberships for a profile with the given profile ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:read`\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[list]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "opt_in_process" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "profiles:read" + ] + } + }, + "/api/profiles/{id}/relationships/lists": { + "get": { + "operationId": "get_list_ids_for_profile", + "summary": "Get List IDs for Profile", + "description": "Get list memberships for a profile with the given profile ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:read`\n`profiles: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileListsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_relationships_lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "profiles:read" + ] + } + }, + "/api/profiles/{id}/segments": { + "get": { + "operationId": "get_segments_for_profile", + "summary": "Get Segments for Profile", + "description": "Get segment memberships for a profile with the given profile ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`profiles:read`\n`segments:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[segment]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "definition", + "definition.condition_groups", + "created", + "updated", + "is_active", + "is_processing", + "is_starred" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "segments:read" + ] + } + }, + "/api/profiles/{id}/relationships/segments": { + "get": { + "operationId": "get_segment_ids_for_profile", + "summary": "Get Segment IDs for Profile", + "description": "Get segment membership relationships for a profile with the given profile ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`profiles:read`\n`segments: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileSegmentsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_profile_relationships_segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "segments:read" + ] + } + }, + "/api/profile-bulk-import-jobs/{id}/lists": { + "get": { + "operationId": "get_list_for_bulk_import_profiles_job", + "summary": "Get List for Bulk Import Profiles Job", + "description": "Get list for the bulk profile import job with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[list]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "created", + "updated", + "opt_in_process" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetListResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_job_lists", + "get_lists_for_profile_bulk_import_job", + "get_profile_bulk_import_job_lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/profile-bulk-import-jobs/{id}/relationships/lists": { + "get": { + "operationId": "get_list_ids_for_bulk_import_profiles_job", + "summary": "Get List IDs for Bulk Import Profiles Job", + "description": "Get list relationship for the bulk profile import job with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`lists: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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileBulkImportJobListsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_job_relationships_lists", + "get_list_ids_for_profile_bulk_import_job", + "get_profile_bulk_import_job_relationships_lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "lists:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/profile-bulk-import-jobs/{id}/profiles": { + "get": { + "operationId": "get_profiles_for_bulk_import_profiles_job", + "summary": "Get Profiles for Bulk Import Profiles Job", + "description": "Get profiles for the bulk profile import job with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_job_profiles", + "get_profile_bulk_import_job_profiles", + "get_profiles_for_profile_bulk_import_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/profile-bulk-import-jobs/{id}/relationships/profiles": { + "get": { + "operationId": "get_profile_ids_for_bulk_import_profiles_job", + "summary": "Get Profile IDs for Bulk Import Profiles Job", + "description": "Get profile relationships for the bulk profile import job with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileBulkImportJobProfilesRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_job_relationships_profiles", + "get_profile_bulk_import_job_relationships_profiles", + "get_profile_ids_for_profile_bulk_import_job" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/profile-bulk-import-jobs/{id}/import-errors": { + "get": { + "operationId": "get_errors_for_bulk_import_profiles_job", + "summary": "Get Errors for Bulk Import Profiles Job", + "description": "Get import errors for the bulk profile import job with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fields[import-error]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "code", + "title", + "detail", + "source", + "source.pointer", + "original_payload" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetImportErrorResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_bulk_profile_import_job_import_errors", + "get_import_errors_for_profile_bulk_import_job", + "get_profile_bulk_import_job_import_errors" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read" + ], + "x-klaviyo-subtag": "Bulk Import Profiles" + } + }, + "/api/push-tokens/{id}/profile": { + "get": { + "operationId": "get_profile_for_push_token", + "summary": "Get Profile for Push Token", + "description": "Return the profile associated with the given push token.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`\n`push-tokens:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The value of the push token", + "required": true, + "schema": { + "description": "The value of the push token", + "type": "string" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetProfileResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_push_token_profile" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "push-tokens:read" + ], + "x-klaviyo-subtag": "Push Tokens" + } + }, + "/api/push-tokens/{id}/relationships/profile": { + "get": { + "operationId": "get_profile_id_for_push_token", + "summary": "Get Profile ID for Push Token", + "description": "Return the ID of the profile associated with the given push token.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`profiles:read`\n`push-tokens:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The value of the push token", + "required": true, + "schema": { + "description": "The value of the push token", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetPushTokenProfileRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Profiles" + ], + "x-klaviyo-operation-aliases": [ + "get_push_token_relationships_profile" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "push-tokens:read" + ], + "x-klaviyo-subtag": "Push Tokens" + } + }, + "/api/campaign-values-reports": { + "post": { + "operationId": "query_campaign_values", + "summary": "Query Campaign Values", + "description": "Returns the requested campaign analytics values data

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`campaigns:read`", + "parameters": [ + { + "name": "page_cursor", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/CampaignValuesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostCampaignValuesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_campaign_value_report", + "create_campaign_values_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "campaigns:read" + ] + } + }, + "/api/flow-values-reports": { + "post": { + "operationId": "query_flow_values", + "summary": "Query Flow Values", + "description": "Returns the requested flow analytics values data

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "page_cursor", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FlowValuesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostFlowValuesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_flow_value_report", + "create_flow_values_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/flow-series-reports": { + "post": { + "operationId": "query_flow_series", + "summary": "Query Flow Series", + "description": "Returns the requested flow analytics series data

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`flows:read`", + "parameters": [ + { + "name": "page_cursor", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FlowSeriesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostFlowSeriesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_flow_sery_report", + "create_flow_series_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "flows:read" + ] + } + }, + "/api/form-values-reports": { + "post": { + "operationId": "query_form_values", + "summary": "Query Form Values", + "description": "Returns the requested form analytics values data.

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FormValuesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostFormValuesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_form_value_report", + "create_form_values_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/form-series-reports": { + "post": { + "operationId": "query_form_series", + "summary": "Query Form Series", + "description": "Returns the requested form analytics series data.

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`forms:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/FormSeriesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostFormSeriesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_form_sery_report", + "create_form_series_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "forms:read" + ] + } + }, + "/api/segment-values-reports": { + "post": { + "operationId": "query_segment_values", + "summary": "Query Segment Values", + "description": "Returns the requested segment analytics values data.

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`segments:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SegmentValuesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostSegmentValuesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_segment_value_report", + "create_segment_values_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "segments:read" + ] + } + }, + "/api/segment-series-reports": { + "post": { + "operationId": "query_segment_series", + "summary": "Query Segment Series", + "description": "Returns the requested segment analytics series data.

*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`\n\n**Scopes:**\n`segments:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SegmentSeriesRequestDTO" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostSegmentSeriesResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reporting" + ], + "x-klaviyo-operation-aliases": [ + "create_segment_sery_report", + "create_segment_series_report" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "2/m", + "daily": "225/d" + }, + "x-klaviyo-scopes": [ + "segments:read" + ] + } + }, + "/api/reviews": { + "get": { + "operationId": "get_reviews", + "summary": "Get Reviews", + "description": "Get all reviews.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`reviews:read`", + "parameters": [ + { + "name": "fields[event]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "timestamp", + "event_properties", + "datetime", + "uuid" + ] + } + }, + "explode": false + }, + { + "name": "fields[review]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "status", + "status.value", + "status.rejection_reason", + "status.rejection_reason.reason", + "status.rejection_reason.status_explanation", + "verified", + "review_type", + "created", + "updated", + "images", + "product", + "product.url", + "product.name", + "product.image_url", + "product.external_id", + "rating", + "author", + "content", + "title", + "smart_quote", + "public_reply", + "public_reply.content", + "public_reply.author", + "public_reply.updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`created`: `greater-or-equal`, `less-or-equal`
`rating`: `any`, `equals`, `greater-or-equal`, `less-or-equal`
`id`: `any`, `equals`
`item.id`: `any`, `equals`
`content`: `contains`
`status`: `equals`
`review_type`: `equals`
`verified`: `equals`", + "schema": { + "type": "string", + "example": "less-or-equal(created,2022-11-08T00:00:00+00:00)" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "events" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "rating", + "-rating", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetReviewResponseDTOCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reviews" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "reviews:read" + ] + } + }, + "/api/reviews/{id}": { + "get": { + "operationId": "get_review", + "summary": "Get Review", + "description": "Get the review with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`reviews:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the review", + "required": true, + "schema": { + "description": "The ID of the review", + "type": "string", + "example": "2134228" + } + }, + { + "name": "fields[event]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "timestamp", + "event_properties", + "datetime", + "uuid" + ] + } + }, + "explode": false + }, + { + "name": "fields[review]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "status", + "status.value", + "status.rejection_reason", + "status.rejection_reason.reason", + "status.rejection_reason.status_explanation", + "verified", + "review_type", + "created", + "updated", + "images", + "product", + "product.url", + "product.name", + "product.image_url", + "product.external_id", + "rating", + "author", + "content", + "title", + "smart_quote", + "public_reply", + "public_reply.content", + "public_reply.author", + "public_reply.updated" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "events" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetReviewResponseDTOCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reviews" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "reviews:read" + ] + }, + "patch": { + "operationId": "update_review", + "summary": "Update Review", + "description": "Update a review.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`reviews:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of the review (review ID).", + "required": true, + "schema": { + "description": "The id of the review (review ID).", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "DTO for updating reviews", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ReviewPatchQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchReviewResponseDTO" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Reviews" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "reviews:write" + ] + } + }, + "/api/segments": { + "get": { + "operationId": "get_segments", + "summary": "Get Segments", + "description": "Get all segments in an account.\n\nFilter to request a subset of all segments. Segments can be filtered by `name`, `created`, and `updated` fields.\n\nReturns a maximum of 10 results per page.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`segments:read`", + "parameters": [ + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[segment]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "definition", + "definition.condition_groups", + "created", + "updated", + "is_active", + "is_processing", + "is_starred" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`name`: `any`, `equals`
`id`: `any`, `equals`
`created`: `greater-than`
`updated`: `greater-than`
`is_active`: `any`, `equals`
`is_starred`: `equals`", + "schema": { + "type": "string", + "example": "equals(name,['example'])" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-triggers", + "tags" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentListResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "segments:read" + ] + }, + "post": { + "operationId": "create_segment", + "summary": "Create Segment", + "description": "Create a segment.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`
Daily: `100/d`\n\n**Scopes:**\n`segments:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SegmentCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostSegmentCreateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m", + "daily": "100/d" + }, + "x-klaviyo-scopes": [ + "segments:write" + ] + } + }, + "/api/segments/{id}": { + "get": { + "operationId": "get_segment", + "summary": "Get Segment", + "description": "Get a segment with the given segment ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`

Rate limits when using the `additional-fields[segment]=profile_count` parameter in your API request:
Burst: `1/s`
Steady: `15/m`

To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-01-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`segments:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional-fields[segment]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'profile_count'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "profile_count" + ] + } + }, + "explode": false + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "fields[segment]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "definition", + "definition.condition_groups", + "created", + "updated", + "is_active", + "is_processing", + "is_starred", + "profile_count" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow-triggers", + "tags" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentRetrieveResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "segments:read" + ] + }, + "patch": { + "operationId": "update_segment", + "summary": "Update Segment", + "description": "Update a segment with the given segment ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`
Daily: `100/d`\n\n**Scopes:**\n`segments:write`", + "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-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/SegmentPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchSegmentPartialUpdateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m", + "daily": "100/d" + }, + "x-klaviyo-scopes": [ + "segments:write" + ] + }, + "delete": { + "operationId": "delete_segment", + "summary": "Delete Segment", + "description": "Delete a segment with the given segment ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`segments:write`", + "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-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "segments:write" + ] + } + }, + "/api/segments/{id}/tags": { + "get": { + "operationId": "get_tags_for_segment", + "summary": "Get Tags for Segment", + "description": "Return all tags associated with the given segment ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`segments:read`\n`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-01-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-01-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": [ + "Segments" + ], + "x-klaviyo-operation-aliases": [ + "get_segment_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "segments:read", + "tags:read" + ] + } + }, + "/api/segments/{id}/relationships/tags": { + "get": { + "operationId": "get_tag_ids_for_segment", + "summary": "Get Tag IDs for Segment", + "description": "If `related_resource` is `tags`, returns the tag IDs of all tags associated with the given segment ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`segments:read`\n`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-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentTagsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-operation-aliases": [ + "get_segment_relationships_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "segments:read", + "tags:read" + ] + } + }, + "/api/segments/{id}/profiles": { + "get": { + "operationId": "get_profiles_for_segment", + "summary": "Get Profiles for Segment", + "description": "Get all profiles within a segment with the given segment ID.\n\nFilter to request a subset of all profiles. Profiles can be filtered by `email`, `phone_number`, `push_token`, and `joined_group_at` fields. Profiles can be sorted by the following fields, in ascending and descending order: `joined_group_at`

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:read`\n`segments:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "additional-fields[profile]", + "in": "query", + "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "subscriptions", + "predictive_analytics" + ] + } + }, + "explode": false + }, + { + "name": "fields[profile]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "phone_number", + "external_id", + "first_name", + "last_name", + "organization", + "locale", + "title", + "image", + "created", + "updated", + "last_event_date", + "location", + "location.address1", + "location.address2", + "location.city", + "location.country", + "location.latitude", + "location.longitude", + "location.region", + "location.zip", + "location.timezone", + "location.ip", + "properties", + "joined_group_at", + "subscriptions", + "subscriptions.email", + "subscriptions.email.marketing", + "subscriptions.email.marketing.can_receive_email_marketing", + "subscriptions.email.marketing.consent", + "subscriptions.email.marketing.consent_timestamp", + "subscriptions.email.marketing.last_updated", + "subscriptions.email.marketing.method", + "subscriptions.email.marketing.method_detail", + "subscriptions.email.marketing.custom_method_detail", + "subscriptions.email.marketing.double_optin", + "subscriptions.email.marketing.suppression", + "subscriptions.email.marketing.list_suppressions", + "subscriptions.sms", + "subscriptions.sms.marketing", + "subscriptions.sms.marketing.can_receive_sms_marketing", + "subscriptions.sms.marketing.consent", + "subscriptions.sms.marketing.consent_timestamp", + "subscriptions.sms.marketing.method", + "subscriptions.sms.marketing.method_detail", + "subscriptions.sms.marketing.last_updated", + "subscriptions.sms.transactional", + "subscriptions.sms.transactional.can_receive_sms_transactional", + "subscriptions.sms.transactional.consent", + "subscriptions.sms.transactional.consent_timestamp", + "subscriptions.sms.transactional.method", + "subscriptions.sms.transactional.method_detail", + "subscriptions.sms.transactional.last_updated", + "subscriptions.mobile_push", + "subscriptions.mobile_push.marketing", + "subscriptions.mobile_push.marketing.can_receive_push_marketing", + "subscriptions.mobile_push.marketing.consent", + "subscriptions.mobile_push.marketing.consent_timestamp", + "subscriptions.whatsapp", + "subscriptions.whatsapp.marketing", + "subscriptions.whatsapp.marketing.consent", + "subscriptions.whatsapp.marketing.consent_timestamp", + "subscriptions.whatsapp.marketing.last_updated", + "subscriptions.whatsapp.marketing.created_timestamp", + "subscriptions.whatsapp.marketing.metadata", + "subscriptions.whatsapp.marketing.can_receive", + "subscriptions.whatsapp.marketing.valid_until", + "subscriptions.whatsapp.marketing.phone_number", + "subscriptions.whatsapp.transactional", + "subscriptions.whatsapp.transactional.consent", + "subscriptions.whatsapp.transactional.consent_timestamp", + "subscriptions.whatsapp.transactional.last_updated", + "subscriptions.whatsapp.transactional.created_timestamp", + "subscriptions.whatsapp.transactional.metadata", + "subscriptions.whatsapp.transactional.can_receive", + "subscriptions.whatsapp.transactional.valid_until", + "subscriptions.whatsapp.transactional.phone_number", + "subscriptions.whatsapp.conversational", + "subscriptions.whatsapp.conversational.consent", + "subscriptions.whatsapp.conversational.consent_timestamp", + "subscriptions.whatsapp.conversational.last_updated", + "subscriptions.whatsapp.conversational.created_timestamp", + "subscriptions.whatsapp.conversational.metadata", + "subscriptions.whatsapp.conversational.can_receive", + "subscriptions.whatsapp.conversational.valid_until", + "subscriptions.whatsapp.conversational.phone_number", + "predictive_analytics", + "predictive_analytics.historic_clv", + "predictive_analytics.predicted_clv", + "predictive_analytics.total_clv", + "predictive_analytics.historic_number_of_orders", + "predictive_analytics.predicted_number_of_orders", + "predictive_analytics.average_days_between_orders", + "predictive_analytics.average_order_value", + "predictive_analytics.churn_probability", + "predictive_analytics.expected_date_of_next_order", + "predictive_analytics.ranked_channel_affinity" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`profile_id`: `any`, `equals`
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`push_token`: `any`, `equals`
`_kx`: `equals`
`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(profile_id,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "joined_group_at", + "-joined_group_at" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentMemberResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-operation-aliases": [ + "get_segment_profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "segments:read" + ] + } + }, + "/api/segments/{id}/relationships/profiles": { + "get": { + "operationId": "get_profile_ids_for_segment", + "summary": "Get Profile IDs for Segment", + "description": "Get all profile membership [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for the given segment ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`profiles:read`\n`segments:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`profile_id`: `any`, `equals`
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`push_token`: `any`, `equals`
`_kx`: `equals`
`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(profile_id,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "joined_group_at", + "-joined_group_at" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentProfilesRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-operation-aliases": [ + "get_segment_relationships_profiles" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "profiles:read", + "segments:read" + ] + } + }, + "/api/segments/{id}/flow-triggers": { + "get": { + "operationId": "get_flows_triggered_by_segment", + "summary": "Get Flows Triggered by Segment", + "description": "Get all flows where the given segment ID is being used as the trigger.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`segments:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "fields[flow]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "status", + "archived", + "created", + "updated", + "trigger_type" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetFlowResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_triggers_for_segment", + "get_segment_flow_triggers" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "segments:read" + ] + } + }, + "/api/segments/{id}/relationships/flow-triggers": { + "get": { + "operationId": "get_ids_for_flows_triggered_by_segment", + "summary": "Get IDs for Flows Triggered by Segment", + "description": "Get the IDs of all flows where the given segment is being used as the trigger.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`segments:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "required": true, + "schema": { + "description": "Primary key that uniquely identifies this segment. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetSegmentFlowTriggersRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Segments" + ], + "x-klaviyo-operation-aliases": [ + "get_flow_trigger_ids_for_segment", + "get_segment_relationships_flow_triggers" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "segments:read" + ] + } + }, + "/api/tags": { + "get": { + "operationId": "get_tags", + "summary": "Get Tags", + "description": "List all tags in an account.\n\nTags can be filtered by `name`, and sorted by `name` or `id` in ascending or descending order.\n\nReturns a maximum of 50 tags per request, which can be paginated with\n[cursor-based pagination](https://developers.klaviyo.com/en/v2022-10-17/reference/api_overview#pagination).

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "fields[tag-group]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "exclusive", + "default" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`name`: `contains`, `ends-with`, `equals`, `starts-with`", + "schema": { + "type": "string", + "example": "equals(name,'My Tag')" + } + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "tag-group" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "id", + "-id", + "name", + "-name" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ] + }, + "post": { + "operationId": "create_tag", + "summary": "Create Tag", + "description": "Create a tag. An account cannot have more than **500** unique tags.\n\nA tag belongs to a single tag group. If `relationships.tag-group.data.id` is not specified,\nthe tag is added to the account's default tag group.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`\n`tags:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostTagResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read", + "tags:write" + ] + } + }, + "/api/tags/{id}": { + "get": { + "operationId": "get_tag", + "summary": "Get Tag", + "description": "Retrieve the tag with the given tag ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "fields[tag-group]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "exclusive", + "default" + ] + } + }, + "explode": false + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "tag-group" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ] + }, + "patch": { + "operationId": "update_tag", + "summary": "Update Tag", + "description": "Update the tag with the given tag ID.\n\nOnly a tag's `name` can be changed. A tag cannot be moved from one tag group to another.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagUpdateQuery" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read", + "tags:write" + ] + }, + "delete": { + "operationId": "delete_tag", + "summary": "Delete Tag", + "description": "Delete the tag with the given tag ID. Any associations between the tag and other resources will also be removed.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read", + "tags:write" + ] + } + }, + "/api/tag-groups": { + "get": { + "operationId": "get_tag_groups", + "summary": "Get Tag Groups", + "description": "List all tag groups in an account. Every account has one default tag group.\n\nTag groups can be filtered by `name`, `exclusive`, and `default`, and sorted by `name` or `id` in ascending or descending order.\n\nReturns a maximum of 25 tag groups per request, which can be paginated with\n[cursor-based pagination](https://developers.klaviyo.com/en/v2022-10-17/reference/api_overview#pagination).

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "fields[tag-group]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "exclusive", + "default" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`name`: `contains`, `ends-with`, `equals`, `starts-with`
`exclusive`: `equals`
`default`: `equals`", + "schema": { + "type": "string", + "example": "equals(name,'My Tag Group')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "id", + "-id", + "name", + "-name" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagGroupResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ], + "x-klaviyo-subtag": "Tag Groups" + }, + "post": { + "operationId": "create_tag_group", + "summary": "Create Tag Group", + "description": "Create a tag group. An account cannot have more than **50** unique tag groups.\n\nIf `exclusive` is not specified `true` or `false`, the tag group defaults to non-exclusive.\n\nIf a tag group is non-exclusive, any given related resource (campaign, flow, etc.)\ncan be linked to multiple tags from that tag group.\nIf a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`\n`tags:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagGroupCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostTagGroupResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read", + "tags:write" + ], + "x-klaviyo-subtag": "Tag Groups" + } + }, + "/api/tag-groups/{id}": { + "get": { + "operationId": "get_tag_group", + "summary": "Get Tag Group", + "description": "Retrieve the tag group with the given tag group ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag Group ID", + "required": true, + "schema": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + { + "name": "fields[tag-group]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "exclusive", + "default" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagGroupResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ], + "x-klaviyo-subtag": "Tag Groups" + }, + "patch": { + "operationId": "update_tag_group", + "summary": "Update Tag Group", + "description": "Update the tag group with the given tag group ID.\n\nOnly a tag group's `name` can be changed. A tag group's `exclusive` or `default` value cannot be changed.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag Group ID", + "required": true, + "schema": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagGroupUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchTagGroupResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read", + "tags:write" + ], + "x-klaviyo-subtag": "Tag Groups" + }, + "delete": { + "operationId": "delete_tag_group", + "summary": "Delete Tag Group", + "description": "Delete the tag group with the given tag group ID.\n\nAny tags inside that tag group, and any associations between those tags and other resources, will also be removed. The default tag group cannot be deleted.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag Group ID", + "required": true, + "schema": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/DeleteTagGroupResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read", + "tags:write" + ], + "x-klaviyo-subtag": "Tag Groups" + } + }, + "/api/tags/{id}/relationships/flows": { + "get": { + "operationId": "get_flow_ids_for_tag", + "summary": "Get Flow IDs for Tag", + "description": "Returns the IDs of all flows associated with the given tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:read`\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagFlowRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_relationships_flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:read", + "tags:read" + ] + }, + "post": { + "operationId": "tag_flows", + "summary": "Tag Flows", + "description": "Associate a tag with one or more flows. Any flow cannot be associated with more than **100** tags.\n\n\nUse the request body to pass in the ID(s) of the flow(s) that will be associated with the tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagFlowOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "create_tag_relationships_flow", + "add_flows_to_tag", + "create_tag_relationships_flows" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:write", + "tags:write" + ] + }, + "delete": { + "operationId": "remove_tag_from_flows", + "summary": "Remove Tag from Flows", + "description": "Remove a tag's association with one or more flows.\n\n\nUse the request body to pass in the ID(s) of the flows(s) whose association with the tag\nwill be removed.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`flows:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagFlowOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "delete_tag_relationships_flows", + "remove_flows_from_tag" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "flows:write", + "tags:write" + ] + } + }, + "/api/tags/{id}/relationships/campaigns": { + "get": { + "operationId": "get_campaign_ids_for_tag", + "summary": "Get Campaign IDs for Tag", + "description": "Returns the IDs of all campaigns associated with the given tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`campaigns:read`\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagCampaignRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_relationships_campaigns" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "campaigns:read", + "tags:read" + ] + }, + "post": { + "operationId": "tag_campaigns", + "summary": "Tag Campaigns", + "description": "Associate a tag with one or more campaigns. Any campaign cannot be associated with more than **100** tags.\n\n\nUse the request body to pass in the ID(s) of the campaign(s) that will be associated with the tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`campaigns:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagCampaignOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "create_tag_relationships_campaign", + "add_campaigns_to_tag", + "create_tag_relationships_campaigns" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "campaigns:write", + "tags:write" + ] + }, + "delete": { + "operationId": "remove_tag_from_campaigns", + "summary": "Remove Tag from Campaigns", + "description": "Remove a tag's association with one or more campaigns.\n\n\nUse the request body to pass in the ID(s) of the campaign(s) whose association with the tag\nwill be removed.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`campaigns:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagCampaignOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "delete_tag_relationships_campaigns", + "remove_campaigns_from_tag" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "campaigns:write", + "tags:write" + ] + } + }, + "/api/tags/{id}/relationships/lists": { + "get": { + "operationId": "get_list_ids_for_tag", + "summary": "Get List IDs for Tag", + "description": "Returns the IDs of all lists associated with the given tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:read`\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagListRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_relationships_lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:read", + "tags:read" + ] + }, + "post": { + "operationId": "tag_lists", + "summary": "Tag Lists", + "description": "Associate a tag with one or more lists. Any list cannot be associated with more than **100** tags.\n\n\nUse the request body to pass in the ID(s) of the lists(s) that will be associated with the tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagListOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "create_tag_relationships_list", + "add_lists_to_tag", + "create_tag_relationships_lists" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "tags:write" + ] + }, + "delete": { + "operationId": "remove_tag_from_lists", + "summary": "Remove Tag from Lists", + "description": "Remove a tag's association with one or more lists.\n\n\nUse the request body to pass in the ID(s) of the list(s) whose association with the tag\nwill be removed.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`lists:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagListOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "delete_tag_relationships_lists", + "remove_lists_from_tag" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "lists:write", + "tags:write" + ] + } + }, + "/api/tags/{id}/relationships/segments": { + "get": { + "operationId": "get_segment_ids_for_tag", + "summary": "Get Segment IDs for Tag", + "description": "Returns the IDs of all segments associated with the given tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`segments:read`\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagSegmentRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_relationships_segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "segments:read", + "tags:read" + ] + }, + "post": { + "operationId": "tag_segments", + "summary": "Tag Segments", + "description": "Associate a tag with one or more segments. Any segment cannot be associated with more than **100** tags.\n\n\nUse the request body to pass in the ID(s) of the segments(s) that will be associated with the tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`segments:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagSegmentOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "create_tag_relationships_segment", + "add_segments_to_tag", + "create_tag_relationships_segments" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "segments:write", + "tags:write" + ] + }, + "delete": { + "operationId": "remove_tag_from_segments", + "summary": "Remove Tag from Segments", + "description": "Remove a tag's association with one or more segments.\n\n\nUse the request body to pass in the ID(s) of the segments(s) whose association with the tag\nwill be removed.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`segments:write`\n`tags:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TagSegmentOp" + } + } + } + }, + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "delete_tag_relationships_segments", + "remove_segments_from_tag" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "segments:write", + "tags:write" + ] + } + }, + "/api/tags/{id}/tag-group": { + "get": { + "operationId": "get_tag_group_for_tag", + "summary": "Get Tag Group for Tag", + "description": "Returns the tag group resource for a given tag ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "fields[tag-group]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "exclusive", + "default" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagGroupResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_tag_group", + "get_group_for_tag" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ] + } + }, + "/api/tags/{id}/relationships/tag-group": { + "get": { + "operationId": "get_tag_group_id_for_tag", + "summary": "Get Tag Group ID for Tag", + "description": "Returns the id of the tag group related to the given tag.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag ID", + "required": true, + "schema": { + "description": "The Tag ID", + "type": "string", + "example": "abcd1234-ef56-gh78-ij90-abcdef123456" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagGroupRelationshipResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_relationships_tag_group", + "get_group_id_for_tag", + "get_tag_relationships_group" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ] + } + }, + "/api/tag-groups/{id}/tags": { + "get": { + "operationId": "get_tags_for_tag_group", + "summary": "Get Tags for Tag Group", + "description": "Return the tags for a given tag group ID.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag Group ID", + "required": true, + "schema": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + { + "name": "fields[tag]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-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-01-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": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_group_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ], + "x-klaviyo-subtag": "Tag Groups" + } + }, + "/api/tag-groups/{id}/relationships/tags": { + "get": { + "operationId": "get_tag_ids_for_tag_group", + "summary": "Get Tag IDs for Tag Group", + "description": "Returns the tag IDs of all tags inside the given tag group.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`tags:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The Tag Group ID", + "required": true, + "schema": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTagGroupTagsRelationshipsResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tags" + ], + "x-klaviyo-operation-aliases": [ + "get_tag_group_relationships_tags" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "tags:read" + ], + "x-klaviyo-subtag": "Tag Groups" + } + }, + "/api/templates": { + "get": { + "operationId": "get_templates", + "summary": "Get Templates", + "description": "Get all templates in an account.\n\nFilter to request a subset of all templates. Templates can be sorted by the following fields, in ascending and descending order: `id`, `name`, `created`, `updated`\n\nReturns a maximum of 10 results per page.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:read`", + "parameters": [ + { + "name": "fields[template]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`, `equals`
`name`: `any`, `contains`, `equals`
`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(id,['example'])" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTemplateResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ] + }, + "post": { + "operationId": "create_template", + "summary": "Create Template", + "description": "Create a new custom HTML template.\n\nIf there are 1,000 or more templates in an account, creation will fail as there is a limit of 1,000 templates\nthat can be created via the API.\n\nRequest specific fields using [sparse fieldsets](https://developers.klaviyo.com/en/reference/api_overview#sparse-fieldsets).

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TemplateCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostTemplateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ] + } + }, + "/api/templates/{id}": { + "get": { + "operationId": "get_template", + "summary": "Get Template", + "description": "Get a template with the given template ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of template", + "required": true, + "schema": { + "description": "The ID of template", + "type": "string" + } + }, + { + "name": "fields[template]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "editor_type", + "html", + "text", + "amp", + "created", + "updated" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-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": [ + "Templates" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ] + }, + "patch": { + "operationId": "update_template", + "summary": "Update Template", + "description": "Update a template with the given template ID. Does not currently update drag & drop templates.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of template", + "required": true, + "schema": { + "description": "The ID of template", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TemplateUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchTemplateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ] + }, + "delete": { + "operationId": "delete_template", + "summary": "Delete Template", + "description": "Delete a template with the given template ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of template", + "required": true, + "schema": { + "description": "The ID of template", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ] + } + }, + "/api/template-universal-content": { + "get": { + "operationId": "get_all_universal_content", + "summary": "Get All Universal Content", + "description": "Get all universal content in an account.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:read`", + "parameters": [ + { + "name": "fields[template-universal-content]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "definition", + "definition.content_type", + "definition.type", + "definition.data", + "definition.data.content", + "definition.data.display_options", + "definition.data.display_options.show_on", + "definition.data.display_options.visible_check", + "definition.data.display_options.content_repeat", + "definition.data.display_options.content_repeat.repeat_for", + "definition.data.display_options.content_repeat.item_alias", + "definition.data.styles", + "definition.data.styles.background_color", + "definition.data.styles.block_background_color", + "definition.data.styles.block_border_color", + "definition.data.styles.block_border_style", + "definition.data.styles.block_border_width", + "definition.data.styles.block_padding_bottom", + "definition.data.styles.block_padding_left", + "definition.data.styles.block_padding_right", + "definition.data.styles.block_padding_top", + "definition.data.styles.color", + "definition.data.styles.extra_css_class", + "definition.data.styles.font_family", + "definition.data.styles.font_size", + "definition.data.styles.font_style", + "definition.data.styles.font_weight", + "definition.data.styles.inner_padding_bottom", + "definition.data.styles.inner_padding_left", + "definition.data.styles.inner_padding_right", + "definition.data.styles.inner_padding_top", + "definition.data.styles.letter_spacing", + "definition.data.styles.line_height", + "definition.data.styles.mobile_stretch_content", + "definition.data.styles.text_align", + "definition.data.styles.text_decoration", + "definition.data.styles.text_table_layout", + "created", + "updated", + "screenshot_status", + "screenshot_url" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`, `equals`
`name`: `any`, `equals`
`created`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`definition.content_type`: `equals`
`definition.type`: `equals`", + "schema": { + "type": "string", + "example": "equals(id,'01HWWWKAW4RHXQJCMW4R2KRYR4')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "id", + "-id", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetUniversalContentResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-operation-aliases": [ + "get_template_universal_content" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ], + "x-klaviyo-subtag": "Universal Content" + }, + "post": { + "operationId": "create_universal_content", + "summary": "Create Universal Content", + "description": "Create universal content. Currently supported block types are: `button`, `drop_shadow`, `horizontal_rule`, `html`, `image`, `spacer`, and `text`.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Create a template universal content", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/UniversalContentCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostUniversalContentResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-operation-aliases": [ + "create_template_universal_content" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ], + "x-klaviyo-subtag": "Universal Content" + } + }, + "/api/template-universal-content/{id}": { + "get": { + "operationId": "get_universal_content", + "summary": "Get Universal Content", + "description": "Get the universal content with the given ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the universal content", + "required": true, + "schema": { + "description": "The ID of the universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + } + }, + { + "name": "fields[template-universal-content]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "definition", + "definition.content_type", + "definition.type", + "definition.data", + "definition.data.content", + "definition.data.display_options", + "definition.data.display_options.show_on", + "definition.data.display_options.visible_check", + "definition.data.display_options.content_repeat", + "definition.data.display_options.content_repeat.repeat_for", + "definition.data.display_options.content_repeat.item_alias", + "definition.data.styles", + "definition.data.styles.background_color", + "definition.data.styles.block_background_color", + "definition.data.styles.block_border_color", + "definition.data.styles.block_border_style", + "definition.data.styles.block_border_width", + "definition.data.styles.block_padding_bottom", + "definition.data.styles.block_padding_left", + "definition.data.styles.block_padding_right", + "definition.data.styles.block_padding_top", + "definition.data.styles.color", + "definition.data.styles.extra_css_class", + "definition.data.styles.font_family", + "definition.data.styles.font_size", + "definition.data.styles.font_style", + "definition.data.styles.font_weight", + "definition.data.styles.inner_padding_bottom", + "definition.data.styles.inner_padding_left", + "definition.data.styles.inner_padding_right", + "definition.data.styles.inner_padding_top", + "definition.data.styles.letter_spacing", + "definition.data.styles.line_height", + "definition.data.styles.mobile_stretch_content", + "definition.data.styles.text_align", + "definition.data.styles.text_decoration", + "definition.data.styles.text_table_layout", + "created", + "updated", + "screenshot_status", + "screenshot_url" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetUniversalContentResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ], + "x-klaviyo-subtag": "Universal Content" + }, + "patch": { + "operationId": "update_universal_content", + "summary": "Update Universal Content", + "description": "Update universal content. The `definition` field can only be updated on the following block types at this time: `button`, `drop_shadow`, `horizontal_rule`, `html`, `image`, `spacer`, and `text`.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the template universal content", + "required": true, + "schema": { + "description": "The ID of the template universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Update a universal content by ID", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/UniversalContentPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchUniversalContentResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-operation-aliases": [ + "update_template_universal_content" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ], + "x-klaviyo-subtag": "Universal Content" + }, + "delete": { + "operationId": "delete_universal_content", + "summary": "Delete Universal Content", + "description": "Delete the universal content with the given ID.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the template universal content", + "required": true, + "schema": { + "description": "The ID of the template universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-operation-aliases": [ + "delete_template_universal_content" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ], + "x-klaviyo-subtag": "Universal Content" + } + }, + "/api/template-render": { + "post": { + "operationId": "render_template", + "summary": "Render Template", + "description": "Render a template with the given template ID and context attribute. Returns the AMP, HTML, and plain text versions of the email template.\n\n**Request body parameters** (nested under `attributes`):\n\n* `return_fields`: Request specific fields using [sparse fieldsets](https://developers.klaviyo.com/en/reference/api_overview#sparse-fieldsets).\n\n* `context`: This is the context your email template will be rendered with. You must pass in a `context` object as a JSON object.\n\nEmail templates are rendered with contexts in a similar manner to Django templates. Nested template variables can be referenced via dot notation. Template variables without corresponding `context` values are treated as `FALSE` and output nothing.\n\nEx. `{ \"name\" : \"George Washington\", \"state\" : \"VA\" }`

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n**Scopes:**\n`templates:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TemplateRenderQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostTemplateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-operation-aliases": [ + "create_template_render" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [ + "templates:read" + ] + } + }, + "/api/template-clone": { + "post": { + "operationId": "clone_template", + "summary": "Clone Template", + "description": "Create a clone of a template with the given template ID.\n\nIf there are 1,000 or more templates in an account, cloning will fail as there is a limit of 1,000 templates\nthat can be created via the API.

*Rate limits*:
Burst: `75/s`
Steady: `700/m`\n\n**Scopes:**\n`templates:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TemplateCloneQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostTemplateResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Templates" + ], + "x-klaviyo-operation-aliases": [ + "create_template_clone" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "75/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "templates:write" + ] + } + }, + "/api/tracking-settings": { + "get": { + "operationId": "get_tracking_settings", + "summary": "Get Tracking Settings", + "description": "Get all UTM tracking settings in an account. Returns an array with a single tracking setting.\n\nMore information about UTM tracking settings can be found [here](https://help.klaviyo.com/hc/en-us/articles/115005247808).

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`tracking-settings:read`", + "parameters": [ + { + "name": "fields[tracking-setting]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "auto_add_parameters", + "utm_source", + "utm_source.flow", + "utm_source.flow.type", + "utm_source.flow.value", + "utm_source.campaign", + "utm_source.campaign.type", + "utm_source.campaign.value", + "utm_medium", + "utm_medium.flow", + "utm_medium.flow.type", + "utm_medium.flow.value", + "utm_medium.campaign", + "utm_medium.campaign.type", + "utm_medium.campaign.value", + "utm_campaign", + "utm_campaign.flow", + "utm_campaign.flow.type", + "utm_campaign.flow.value", + "utm_campaign.campaign", + "utm_campaign.campaign.type", + "utm_campaign.campaign.value", + "utm_id", + "utm_id.flow", + "utm_id.flow.type", + "utm_id.flow.value", + "utm_id.campaign", + "utm_id.campaign.type", + "utm_id.campaign.value", + "utm_term", + "utm_term.flow", + "utm_term.flow.type", + "utm_term.flow.value", + "utm_term.campaign", + "utm_term.campaign.type", + "utm_term.campaign.value", + "custom_parameters" + ] + } + }, + "explode": false + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 1. Min: 1. Max: 1.", + "required": false, + "schema": { + "type": "integer", + "default": 1, + "maximum": 1, + "minimum": 1 + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTrackingSettingResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tracking Settings" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "tracking-settings:read" + ] + } + }, + "/api/tracking-settings/{id}": { + "get": { + "operationId": "get_tracking_setting", + "summary": "Get Tracking Setting", + "description": "Get the UTM tracking setting with the given account ID.\n\nMore information about UTM tracking settings can be found [here](https://help.klaviyo.com/hc/en-us/articles/115005247808).

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`tracking-settings:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of the tracking setting (account ID).", + "required": true, + "schema": { + "description": "The id of the tracking setting (account ID).", + "type": "string", + "example": "abCdEf" + } + }, + { + "name": "fields[tracking-setting]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "auto_add_parameters", + "utm_source", + "utm_source.flow", + "utm_source.flow.type", + "utm_source.flow.value", + "utm_source.campaign", + "utm_source.campaign.type", + "utm_source.campaign.value", + "utm_medium", + "utm_medium.flow", + "utm_medium.flow.type", + "utm_medium.flow.value", + "utm_medium.campaign", + "utm_medium.campaign.type", + "utm_medium.campaign.value", + "utm_campaign", + "utm_campaign.flow", + "utm_campaign.flow.type", + "utm_campaign.flow.value", + "utm_campaign.campaign", + "utm_campaign.campaign.type", + "utm_campaign.campaign.value", + "utm_id", + "utm_id.flow", + "utm_id.flow.type", + "utm_id.flow.value", + "utm_id.campaign", + "utm_id.campaign.type", + "utm_id.campaign.value", + "utm_term", + "utm_term.flow", + "utm_term.flow.type", + "utm_term.flow.value", + "utm_term.campaign", + "utm_term.campaign.type", + "utm_term.campaign.value", + "custom_parameters" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetTrackingSettingResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tracking Settings" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "tracking-settings:read" + ] + }, + "patch": { + "operationId": "update_tracking_setting", + "summary": "Update Tracking Setting", + "description": "Update the UTM tracking setting with the given account ID.\n\nMore information about UTM tracking settings can be found [here](https://help.klaviyo.com/hc/en-us/articles/115005247808).

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`tracking-settings:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of the tracking setting (account ID).", + "required": true, + "schema": { + "description": "The id of the tracking setting (account ID).", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "DTO for updating tracking settings", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/TrackingSettingPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchTrackingSettingResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Tracking Settings" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "tracking-settings:write" + ] + } + }, + "/api/web-feeds": { + "get": { + "operationId": "get_web_feeds", + "summary": "Get Web Feeds", + "description": "Get all web feeds for an account.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`web-feeds:read`", + "parameters": [ + { + "name": "fields[web-feed]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "url", + "request_method", + "content_type", + "created", + "updated", + "status" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`name`: `any`, `contains`, `equals`
`created`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`updated`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", + "schema": { + "type": "string", + "example": "equals(name,'Blog_posts')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 5. Min: 1. Max: 20.", + "required": false, + "schema": { + "type": "integer", + "default": 5, + "maximum": 20, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "name", + "-name", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetWebFeedResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Web Feeds" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "web-feeds:read" + ] + }, + "post": { + "operationId": "create_web_feed", + "summary": "Create Web Feed", + "description": "Create a web feed.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`web-feeds:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Create a web feed", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/WebFeedCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostWebFeedResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Web Feeds" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "web-feeds:write" + ] + } + }, + "/api/web-feeds/{id}": { + "get": { + "operationId": "get_web_feed", + "summary": "Get Web Feed", + "description": "Get the web feed with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`web-feeds:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the web feed", + "required": true, + "schema": { + "description": "The ID of the web feed", + "type": "string", + "example": "925e385b52fb" + } + }, + { + "name": "fields[web-feed]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "url", + "request_method", + "content_type", + "created", + "updated", + "status" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetWebFeedResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Web Feeds" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "web-feeds:read" + ] + }, + "patch": { + "operationId": "update_web_feed", + "summary": "Update Web Feed", + "description": "Update the web feed with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`web-feeds:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the web feed", + "required": true, + "schema": { + "description": "The ID of the web feed", + "type": "string", + "example": "925e385b52fb" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "description": "Update a web feed by ID", + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/WebFeedPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchWebFeedResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Web Feeds" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "web-feeds:write" + ] + }, + "delete": { + "operationId": "delete_web_feed", + "summary": "Delete Web Feed", + "description": "Delete the web feed with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`web-feeds:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the web feed", + "required": true, + "schema": { + "description": "The ID of the web feed", + "type": "string", + "example": "925e385b52fb" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Web Feeds" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "web-feeds:write" + ] + } + }, + "/api/webhooks": { + "get": { + "operationId": "get_webhooks", + "summary": "Get Webhooks", + "description": "Get all webhooks in an account.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:read`", + "parameters": [ + { + "name": "fields[webhook]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "description", + "endpoint_url", + "enabled", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "webhook-topics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetWebhookResponseCollectionCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:read" + ] + }, + "post": { + "operationId": "create_webhook", + "summary": "Create Webhook", + "description": "Create a new Webhook

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:write`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/WebhookCreateQuery" + } + } + } + }, + "responses": { + "201": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PostWebhookResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:write" + ] + } + }, + "/api/webhooks/{id}": { + "get": { + "operationId": "get_webhook", + "summary": "Get Webhook", + "description": "Get the webhook with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the webhook.", + "required": true, + "schema": { + "description": "The ID of the webhook.", + "type": "string" + } + }, + { + "name": "fields[webhook]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "description", + "endpoint_url", + "enabled", + "created_at", + "updated_at" + ] + } + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#relationships", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "webhook-topics" + ] + } + }, + "explode": false + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetWebhookResponseCompoundDocument" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:read" + ] + }, + "patch": { + "operationId": "update_webhook", + "summary": "Update Webhook", + "description": "Update the webhook with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the webhook.", + "required": true, + "schema": { + "description": "The ID of the webhook.", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/WebhookPartialUpdateQuery" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PatchWebhookResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:write" + ] + }, + "delete": { + "operationId": "delete_webhook", + "summary": "Delete Webhook", + "description": "Delete a webhook with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:write`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the webhook.", + "required": true, + "schema": { + "description": "The ID of the webhook.", + "type": "string" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "204": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:write" + ] + } + }, + "/api/webhook-topics": { + "get": { + "operationId": "get_webhook_topics", + "summary": "Get Webhook Topics", + "description": "Get all webhook topics in a Klaviyo account.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:read`", + "parameters": [ + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetWebhookTopicResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:read" + ] + } + }, + "/api/webhook-topics/{id}": { + "get": { + "operationId": "get_webhook_topic", + "summary": "Get Webhook Topic", + "description": "Get the webhook topic with the given ID.

*Rate limits*:
Burst: `1/s`
Steady: `15/m`\n\n**Scopes:**\n`webhooks:read`", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the webhook topic.", + "required": true, + "schema": { + "description": "The ID of the webhook topic.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetWebhookTopicResponse" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "tags": [ + "Webhooks" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "1/s", + "steady": "15/m" + }, + "x-klaviyo-scopes": [ + "webhooks:read" + ] + } + }, + "/client/review-values-reports": { + "get": { + "operationId": "get_client_review_values_reports", + "summary": "Get Client Review Values Reports", + "description": "Get all reviews values reports in an account.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "fields[review-values-report]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "results" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`product_external_ids`: `any`, `equals`", + "schema": { + "type": "string", + "example": "equals(product_external_ids,'example')" + } + }, + { + "name": "group_by", + "in": "query", + "description": "group by value for this report", + "required": true, + "schema": { + "description": "group by value for this report", + "type": "string", + "example": "product_id", + "enum": [ + "company_id", + "product_id" + ] + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "statistics", + "in": "query", + "description": "list of statistics to calculate for this report", + "required": true, + "schema": { + "description": "list of statistics to calculate for this report", + "type": "string", + "example": "average_rating,total_reviews" + } + }, + { + "name": "timeframe", + "in": "query", + "description": "timeframe window for value report", + "required": true, + "schema": { + "description": "timeframe window for value report", + "type": "string", + "example": "all_time", + "enum": [ + "all_time", + "last_30_days", + "last_365_days", + "last_90_days" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetReviewValuesReportResponseCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [] + } + }, + "/client/reviews": { + "get": { + "operationId": "get_client_reviews", + "summary": "Get Client Reviews", + "description": "Get all reviews. This endpoint is for client-side environments only, for server-side use, refer to https://developers.klaviyo.com/en/reference/get_reviews

*Rate limits*:
Burst: `10/s`
Steady: `150/m`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "fields[review]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "status", + "status.value", + "status.rejection_reason", + "status.rejection_reason.reason", + "status.rejection_reason.status_explanation", + "verified", + "review_type", + "created", + "updated", + "images", + "product", + "product.url", + "product.name", + "product.image_url", + "product.external_id", + "rating", + "author", + "content", + "title", + "smart_quote", + "public_reply", + "public_reply.content", + "public_reply.author", + "public_reply.updated" + ] + } + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`status`: `equals`
`review_type`: `equals`
`rating`: `any`, `equals`, `greater-or-equal`, `less-or-equal`
`id`: `any`, `equals`
`content`: `contains`
`smart_quote`: `has`
`public_reply`: `has`
`verified`: `equals`
`incentivized`: `equals`
`edited`: `equals`
`media`: `has`
`created`: `greater-or-equal`, `less-or-equal`
`updated`: `greater-or-equal`, `less-or-equal`", + "schema": { + "type": "string", + "example": "equals(status,'published')" + } + }, + { + "name": "page[cursor]", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#pagination", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page[size]", + "in": "query", + "description": "Default: 20. Min: 1. Max: 100.", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "sort", + "in": "query", + "description": "For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sorting", + "schema": { + "type": "string", + "enum": [ + "created", + "-created", + "rating", + "-rating", + "updated", + "-updated" + ] + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/GetClientReviewResponseDTOCollection" + } + } + } + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [] + }, + "post": { + "operationId": "create_client_review", + "summary": "Create Client Review", + "description": "Create a review with the given ID. This endpoint is for client-side environments only.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ReviewCreateDTO" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [] + } + }, + "/client/subscriptions": { + "post": { + "operationId": "create_client_subscription", + "summary": "Create Client Subscription", + "description": "Creates a subscription and consent record for email and/or SMS channels based on the provided `email` and `phone_number` attributes, respectively. One of either `email` or `phone_number` must be provided.\n\nThis endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\n\nDo not use this endpoint from server-side applications.\nTo subscribe profiles from server-side applications, instead use [POST /api/profile-subscription-bulk-create-jobs](https://developers.klaviyo.com/en/reference/subscribe_profiles).\n\nProfiles can be opted into multiple channels: email marketing, SMS marketing, and SMS transactional. You can specify the channel(s) to subscribe the profile to by providing a subscriptions object in the profile attributes.\n\nIf you include a subscriptions object, only channels in that object will be subscribed. You can use this to update `email` or `phone` on the profile without subscribing them, for example, by setting the profile property but omitting that channel in the subscriptions object. If a subscriptions object is not provided, subscriptions are defaulted to `MARKETING`.

*Rate limits*:
Burst: `100/s`
Steady: `700/m`\n\n**Scopes:**\n`subscriptions:write`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/OnsiteSubscriptionCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "100/s", + "steady": "700/m" + }, + "x-klaviyo-scopes": [ + "subscriptions:write" + ] + } + }, + "/client/push-tokens": { + "post": { + "operationId": "create_client_push_token", + "summary": "Create or Update Client Push Token", + "description": "Create or update a push token.\n\nThis endpoint is specifically designed to be called from our mobile SDKs ([iOS](https://github.com/klaviyo/klaviyo-swift-sdk) and [Android](https://github.com/klaviyo/klaviyo-android-sdk)) and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\nYou must have push notifications enabled to use this endpoint.\n\nTo migrate push tokens from another platform to Klaviyo, please use our server-side [POST /api/push-tokens](https://developers.klaviyo.com/en/reference/create_push_token) endpoint instead.

*Rate limits*:
Burst: `150/s`
Steady: `1400/m`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PushTokenCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "150/s", + "steady": "1400/m" + }, + "x-klaviyo-scopes": [] + } + }, + "/client/push-token-unregister": { + "post": { + "operationId": "unregister_client_push_token", + "summary": "Unregister Client Push Token", + "description": "Unregister a push token.\n\nThis endpoint is specifically designed to be called from our mobile SDKs ([iOS](https://github.com/klaviyo/klaviyo-swift-sdk) and [Android](https://github.com/klaviyo/klaviyo-android-sdk)) and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\nYou must have push notifications enabled to use this endpoint.

*Rate limits*:
Burst: `3/s`
Steady: `60/m`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/PushTokenUnregisterQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-operation-aliases": [ + "create_client_push_token_unregister" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "3/s", + "steady": "60/m" + }, + "x-klaviyo-scopes": [] + } + }, + "/client/events": { + "post": { + "operationId": "create_client_event", + "summary": "Create Client Event", + "description": "Create a new event to track a profile's activity.\n\nThis endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\n\nDo not use this endpoint from server-side applications.\nTo create events from server-side applications, instead use [POST /api/events](https://developers.klaviyo.com/en/reference/create_event).\n\nNote that to update a profile's existing identifiers (e.g., email), you must use a server-side endpoint authenticated by a private API key. Attempts to do so via client-side endpoints will return a 202, however the identifier field(s) will not be updated.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`events:write`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/EventCreateQueryV2" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "events:write" + ] + } + }, + "/client/profiles": { + "post": { + "operationId": "create_client_profile", + "summary": "Create or Update Client Profile", + "description": "Create or update properties about a profile without tracking an associated event.\n\nThis endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\n\nDo not use this endpoint from server-side applications.\nTo create or update profiles from server-side applications, instead use [POST /api/profile-import](https://developers.klaviyo.com/en/reference/create_or_update_profile).\n\nNote that to update a profile's existing identifiers (e.g., email), you must use a server-side endpoint authenticated by a private API key. Attempts to do so via client-side endpoints will return a 202, however the identifier field(s) will not be updated.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`profiles:write`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/OnsiteProfileCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "profiles:write" + ] + } + }, + "/client/event-bulk-create": { + "post": { + "operationId": "bulk_create_client_events", + "summary": "Bulk Create Client Events", + "description": "Create new events to track a profile's activity.\n\nThis endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\n\nDo not use this endpoint from server-side applications.\nTo create events from server-side applications, instead use [POST /api/event-bulk-create-jobs](https://developers.klaviyo.com/en/reference/bulk_create_events).\n\nAccepts a maximum of `1000` events per request.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`events:write`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/EventsBulkCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-operation-aliases": [ + "create_client_event_bulk_create" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "10/s", + "steady": "150/m" + }, + "x-klaviyo-scopes": [ + "events:write" + ] + } + }, + "/client/back-in-stock-subscriptions": { + "post": { + "operationId": "create_client_back_in_stock_subscription", + "summary": "Create Client Back In Stock Subscription", + "description": "Subscribe a profile to receive back in stock notifications. Check out [our Back in Stock API guide](https://developers.klaviyo.com/en/docs/how_to_set_up_custom_back_in_stock) for more details.\n\nThis endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.\n\nDo not use this endpoint from server-side applications.\nTo create back in stock subscriptions from server-side applications, instead use [POST /api/back-in-stock-subscriptions](https://developers.klaviyo.com/en/reference/create_back_in_stock_subscription).

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:write`\n`profiles:write`", + "parameters": [ + { + "name": "company_id", + "in": "query", + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "required": true, + "schema": { + "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", + "type": "string", + "example": "PUBLIC_API_KEY" + } + }, + { + "name": "revision", + "in": "header", + "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", + "required": true, + "schema": { + "type": "string", + "default": "2026-01-15" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/ClientBISSubscriptionCreateQuery" + } + } + } + }, + "responses": { + "202": { + "description": "Success" + }, + "4XX": { + "$ref": "#/components/responses/ClientError" + }, + "5XX": { + "$ref": "#/components/responses/ServerError" + } + }, + "security": [], + "tags": [ + "Client" + ], + "x-klaviyo-pre-release": "None", + "x-klaviyo-ratelimit": { + "burst": "350/s", + "steady": "3500/m" + }, + "x-klaviyo-scopes": [ + "catalogs:write", + "profiles:write" + ] + } + } + }, + "components": { + "schemas": { + "CouponEnum": { + "type": "string", + "enum": [ + "coupon" + ] + }, + "CouponResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "This is the id that is stored in an integration such as Shopify or Magento.", + "type": "string", + "example": "10OFF" + }, + "description": { + "description": "A description of the coupon.", + "type": "string", + "example": "10% off for purchases over $50", + "nullable": true + }, + "monitor_configuration": { + "description": "The monitor configuration for the coupon.", + "type": "object", + "example": { + "low_balance_threshold": 500 + }, + "nullable": true + } + }, + "required": [ + "external_id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCouponResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CouponResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCouponResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CouponResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CouponCodeEnum": { + "type": "string", + "enum": [ + "coupon-code" + ] + }, + "GetCouponCodeCouponRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CouponCodeResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + }, + "attributes": { + "type": "object", + "properties": { + "unique_code": { + "description": "This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.", + "type": "string", + "example": "ASD325FHK324UJDOI2M3JNES99", + "nullable": true + }, + "expires_at": { + "description": "The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "status": { + "description": "The current status of the coupon code.", + "type": "string", + "example": "UNASSIGNED", + "enum": [ + "ASSIGNED_TO_PROFILE", + "DELETING", + "PROCESSING", + "UNASSIGNED", + "USED", + "VERSION_NOT_ACTIVE" + ], + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCouponCodeResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CouponCodeResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "coupon": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "type": "string", + "example": "10OFF" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profile": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CouponResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetCouponCodeResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CouponCodeResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "coupon": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "type": "string", + "example": "10OFF" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profile": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CouponResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCouponCodeResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CouponCodeResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "coupon": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profile": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCouponCodesRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantEnum": { + "type": "string", + "enum": [ + "catalog-variant" + ] + }, + "CatalogItemEnum": { + "type": "string", + "enum": [ + "catalog-item" + ] + }, + "CatalogVariantResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item variant in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM", + "nullable": true + }, + "title": { + "description": "The title of the catalog item variant.", + "type": "string", + "example": "Ocean Blue Shirt (Sample) Variant Medium", + "nullable": true + }, + "description": { + "description": "A description of the catalog item variant.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "sku": { + "description": "The SKU of the catalog item variant.", + "type": "string", + "example": "OBS-MD", + "nullable": true + }, + "inventory_policy": { + "description": "This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:\n`1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.\n`0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.", + "type": "integer", + "example": 2, + "enum": [ + 0, + 1, + 2 + ], + "nullable": true + }, + "inventory_quantity": { + "description": "The quantity of the catalog item variant currently in stock.", + "type": "number", + "example": 25, + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item variant on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item variant.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item variant is published.", + "type": "boolean", + "example": true, + "nullable": true + }, + "created": { + "description": "Date and time when the catalog item variant 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": "Date and time when the catalog item variant was last 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 + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "CatalogItemResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1", + "nullable": true + }, + "title": { + "description": "The title of the catalog item.", + "type": "string", + "example": "Ocean Blue Shirt (Sample)", + "nullable": true + }, + "description": { + "description": "A description of the catalog item.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item is published.", + "type": "boolean", + "example": true, + "nullable": true + }, + "created": { + "description": "Date and time when the catalog item 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": "Date and time when the catalog item was last 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 + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogItemResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetCatalogItemResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogCategoryItemsRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogVariantResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogVariantResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogItemVariantsRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryEnum": { + "type": "string", + "enum": [ + "catalog-category" + ] + }, + "CatalogCategoryResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog category in an external system.", + "type": "string", + "example": "SAMPLE-DATA-CATEGORY-APPAREL", + "nullable": true + }, + "name": { + "description": "The name of the catalog category.", + "type": "string", + "example": "Sample Data Category Apparel", + "nullable": true + }, + "updated": { + "description": "Date and time when the catalog category was last 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 + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogCategoryResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogCategoryResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CouponCodeBulkCreateJobEnum": { + "type": "string", + "enum": [ + "coupon-code-bulk-create-job" + ] + }, + "ErrorSource": { + "type": "object", + "properties": { + "pointer": { + "description": "A pointer to the source of the error in the request payload.", + "type": "string", + "example": "/data", + "default": "/data", + "nullable": true + } + } + }, + "APIJobErrorPayload": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier for the error.", + "type": "string", + "example": "e4eebb08-b055-4a6f-bb13-c8cb69c9eb94" + }, + "code": { + "description": "A code for classifying the error type.", + "type": "string", + "example": "invalid" + }, + "title": { + "description": "A high-level message about the error.", + "type": "string", + "example": "Invalid input" + }, + "detail": { + "description": "Specific details about the error.", + "type": "string", + "example": "The payload provided in the request is invalid." + }, + "source": { + "description": "Additional information on the source of the error.", + "$ref": "#/components/schemas/ErrorSource" + } + }, + "required": [ + "id", + "code", + "title", + "detail", + "source" + ] + }, + "CouponCodeCreateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCouponCodeCreateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CouponCodeCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "coupon-codes": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "IDs of the created coupon codes.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCouponCodeCreateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CouponCodeCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "coupon-codes": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "IDs of the created coupon codes.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CouponCodeResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogItemCategoriesRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "MetricEnum": { + "type": "string", + "enum": [ + "metric" + ] + }, + "FlowEnum": { + "type": "string", + "enum": [ + "flow" + ] + }, + "MetricResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of the metric", + "type": "string", + "nullable": true + }, + "created": { + "description": "Creation time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "nullable": true + }, + "updated": { + "description": "Last updated time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "nullable": true + }, + "integration": { + "description": "The integration associated with the event", + "type": "object", + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "ProfileLocation": { + "type": "object", + "properties": { + "address1": { + "description": "First line of street address", + "type": "string", + "example": "89 E 42nd St", + "nullable": true + }, + "address2": { + "description": "Second line of street address", + "type": "string", + "example": "1st floor", + "nullable": true + }, + "city": { + "description": "City name", + "type": "string", + "example": "New York", + "nullable": true + }, + "country": { + "description": "Country name", + "type": "string", + "example": "United States", + "nullable": true + }, + "latitude": { + "description": "Latitude coordinate. We recommend providing a precision of four decimal places.", + "example": "40.7128", + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "longitude": { + "description": "Longitude coordinate. We recommend providing a precision of four decimal places.", + "example": "74.0060", + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "region": { + "description": "Region within a country, such as state or province", + "type": "string", + "example": "NY", + "nullable": true + }, + "zip": { + "description": "Zip code", + "type": "string", + "example": "10017", + "nullable": true + }, + "timezone": { + "description": "Time zone name. We recommend using time zones from the IANA Time Zone Database.", + "type": "string", + "example": "America/New_York", + "nullable": true + }, + "ip": { + "description": "IP Address", + "type": "string", + "example": "127.0.0.1", + "nullable": true + } + } + }, + "EmailMarketingSuppression": { + "type": "object", + "properties": { + "reason": { + "description": "The reason the profile was suppressed.", + "type": "string", + "example": "HARD_BOUNCE", + "enum": [ + "HARD_BOUNCE", + "INVALID_EMAIL", + "SPAM_COMPLAINT", + "UNSUBSCRIBE", + "USER_SUPPRESSED" + ] + }, + "timestamp": { + "description": "The timestamp when the profile was suppressed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00" + } + }, + "required": [ + "reason", + "timestamp" + ] + }, + "EmailMarketingListSuppression": { + "type": "object", + "properties": { + "list_id": { + "description": "The ID of list to which the suppression applies.", + "type": "string", + "example": "Y6nRLr" + }, + "reason": { + "description": "The reason the profile was suppressed from the list.", + "type": "string", + "example": "USER_SUPPRESSED" + }, + "timestamp": { + "description": "The timestamp when the profile was suppressed from the list, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00" + } + }, + "required": [ + "list_id", + "reason", + "timestamp" + ] + }, + "EmailMarketing": { + "type": "object", + "properties": { + "can_receive_email_marketing": { + "description": "Whether or not this profile has implicit consent to receive email marketing. True if it does profile does not have any global suppressions.", + "type": "boolean" + }, + "consent": { + "description": "The consent status for email marketing.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when consent was recorded or updated for email marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "last_updated": { + "description": "The timestamp when a field on the email marketing object was last modified.", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "method": { + "description": "The method by which the profile was subscribed to email marketing.", + "type": "string", + "example": "PREFERENCE_PAGE", + "nullable": true + }, + "method_detail": { + "description": "Additional details about the method by which the profile was subscribed to email marketing. This may be empty if no details were provided.", + "type": "string", + "example": "mydomain.com/signup", + "default": "", + "nullable": true + }, + "custom_method_detail": { + "description": "Additional detail provided by the caller when the profile was subscribed. This may be empty if no details were provided.", + "type": "string", + "example": "marketing drive", + "nullable": true + }, + "double_optin": { + "description": "Whether the profile was subscribed to email marketing using a double opt-in.", + "type": "boolean", + "example": true, + "nullable": true + }, + "suppression": { + "description": "The global email marketing suppression for this profile.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EmailMarketingSuppression" + }, + "nullable": true + }, + "list_suppressions": { + "description": "The list suppressions for this profile.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EmailMarketingListSuppression" + }, + "nullable": true + } + }, + "required": [ + "can_receive_email_marketing", + "consent" + ] + }, + "EmailChannel": { + "type": "object", + "properties": { + "marketing": { + "description": "The email marketing subscription.", + "$ref": "#/components/schemas/EmailMarketing", + "nullable": true + } + } + }, + "SMSMarketing": { + "type": "object", + "properties": { + "can_receive_sms_marketing": { + "description": "Whether or not this profile is subscribed to receive SMS marketing.", + "type": "boolean" + }, + "consent": { + "description": "The consent status for SMS marketing.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when consent was recorded or updated for SMS marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "method": { + "description": "The method by which the profile was subscribed to SMS marketing.", + "type": "string", + "example": "TEXT", + "nullable": true + }, + "method_detail": { + "description": "Additional details about the method which the profile was subscribed to SMS marketing. This may be empty if no details were provided.", + "type": "string", + "example": "JOIN", + "default": "", + "nullable": true + }, + "last_updated": { + "description": "The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + } + }, + "required": [ + "can_receive_sms_marketing", + "consent" + ] + }, + "SMSTransactional": { + "type": "object", + "properties": { + "can_receive_sms_transactional": { + "description": "Whether or not this profile is subscribed to receive transactional SMS.", + "type": "boolean" + }, + "consent": { + "description": "The consent status for SMS Transactional.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when consent was recorded or updated for Transactional SMS messaging , in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "method": { + "description": "The method by which the profile was subscribed to Transactional SMS messaging .", + "type": "string", + "example": "TEXT", + "nullable": true + }, + "method_detail": { + "description": "Additional details about the method which the profile was subscribed to Transactional SMS messaging. This may be empty if no details were provided.", + "type": "string", + "example": "JOIN", + "default": "", + "nullable": true + }, + "last_updated": { + "description": "The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + } + }, + "required": [ + "can_receive_sms_transactional", + "consent" + ] + }, + "SMSChannel": { + "type": "object", + "properties": { + "marketing": { + "description": "The SMS marketing subscription.", + "$ref": "#/components/schemas/SMSMarketing", + "nullable": true + }, + "transactional": { + "description": "The SMS transactional subscription.", + "$ref": "#/components/schemas/SMSTransactional", + "nullable": true + } + } + }, + "PushMarketing": { + "type": "object", + "properties": { + "can_receive_push_marketing": { + "description": "Whether or not this profile is subscribed to receive mobile push.", + "type": "boolean" + }, + "consent": { + "description": "The consent status for mobile push marketing.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when the consent was last changed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + } + }, + "required": [ + "can_receive_push_marketing", + "consent" + ] + }, + "PushChannel": { + "type": "object", + "properties": { + "marketing": { + "description": "The mobile push marketing subscription.", + "$ref": "#/components/schemas/PushMarketing", + "nullable": true + } + } + }, + "WhatsappMarketingChannel": { + "type": "object", + "properties": { + "consent": { + "description": "The consent status for the channel.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "last_updated": { + "description": "The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "created_timestamp": { + "description": "The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "metadata": { + "description": "Channel-specific metadata containing additional information about the permission.", + "type": "object", + "nullable": true + }, + "can_receive": { + "description": "Whether the profile can receive messages on this channel.", + "type": "boolean" + }, + "valid_until": { + "description": "Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2024-02-21T20:07:38+00:00", + "nullable": true + }, + "phone_number": { + "description": "Phone number to which the consent was granted for.", + "type": "string" + } + }, + "required": [ + "consent", + "can_receive", + "phone_number" + ] + }, + "WhatsappTransactionalChannel": { + "type": "object", + "properties": { + "consent": { + "description": "The consent status for the channel.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "last_updated": { + "description": "The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "created_timestamp": { + "description": "The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "metadata": { + "description": "Channel-specific metadata containing additional information about the permission.", + "type": "object", + "nullable": true + }, + "can_receive": { + "description": "Whether the profile can receive messages on this channel.", + "type": "boolean" + }, + "valid_until": { + "description": "Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2024-02-21T20:07:38+00:00", + "nullable": true + }, + "phone_number": { + "description": "Phone number to which the consent was granted for.", + "type": "string" + } + }, + "required": [ + "consent", + "can_receive", + "phone_number" + ] + }, + "WhatsappConversationalChannel": { + "type": "object", + "properties": { + "consent": { + "description": "The consent status for the channel.", + "type": "string", + "example": "SUBSCRIBED" + }, + "consent_timestamp": { + "description": "The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "last_updated": { + "description": "The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "created_timestamp": { + "description": "The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2023-02-21T20:07:38+00:00", + "nullable": true + }, + "metadata": { + "description": "Channel-specific metadata containing additional information about the permission.", + "type": "object", + "nullable": true + }, + "can_receive": { + "description": "Whether the profile can receive messages on this channel.", + "type": "boolean" + }, + "valid_until": { + "description": "Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", + "type": "string", + "format": "date-time", + "example": "2024-02-21T20:07:38+00:00", + "nullable": true + }, + "phone_number": { + "description": "Phone number to which the consent was granted for.", + "type": "string" + } + }, + "required": [ + "consent", + "can_receive", + "phone_number" + ] + }, + "WhatsappChannel": { + "type": "object", + "properties": { + "marketing": { + "description": "The Whatsapp marketing subscription.", + "$ref": "#/components/schemas/WhatsappMarketingChannel", + "nullable": true + }, + "transactional": { + "description": "The Whatsapp transactional subscription.", + "$ref": "#/components/schemas/WhatsappTransactionalChannel", + "nullable": true + }, + "conversational": { + "description": "The Whatsapp conversational subscription.", + "$ref": "#/components/schemas/WhatsappConversationalChannel", + "nullable": true + } + } + }, + "Subscriptions": { + "type": "object", + "properties": { + "email": { + "description": "The email channel subscription.", + "$ref": "#/components/schemas/EmailChannel", + "nullable": true + }, + "sms": { + "description": "The SMS channel subscription.", + "$ref": "#/components/schemas/SMSChannel", + "nullable": true + }, + "mobile_push": { + "description": "The mobile push channel subscription.", + "$ref": "#/components/schemas/PushChannel", + "nullable": true + }, + "whatsapp": { + "description": "The whatsapp channel subscription.", + "$ref": "#/components/schemas/WhatsappChannel", + "nullable": true + } + } + }, + "PredictiveAnalytics": { + "type": "object", + "properties": { + "historic_clv": { + "description": "Total value of all historically placed orders", + "type": "number", + "example": 93.87, + "nullable": true + }, + "predicted_clv": { + "description": "Predicted value of all placed orders in the next 365 days", + "type": "number", + "example": 27.24, + "nullable": true + }, + "total_clv": { + "description": "Sum of historic and predicted CLV", + "type": "number", + "example": 121.11, + "nullable": true + }, + "historic_number_of_orders": { + "description": "Number of already placed orders", + "type": "number", + "example": 2, + "nullable": true + }, + "predicted_number_of_orders": { + "description": "Predicted number of placed orders in the next 365 days", + "type": "number", + "example": 0.54, + "nullable": true + }, + "average_days_between_orders": { + "description": "Average number of days between orders (None if only one order has been placed)", + "type": "number", + "example": 189, + "nullable": true + }, + "average_order_value": { + "description": "Average value of placed orders", + "type": "number", + "example": 46.94, + "nullable": true + }, + "churn_probability": { + "description": "Probability the customer has churned", + "type": "number", + "example": 0.89, + "nullable": true + }, + "expected_date_of_next_order": { + "description": "Expected date of next order, as calculated at the time of their most recent order", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "ranked_channel_affinity": { + "description": "List of channels ranked by their predicted effectiveness for this profile, with the best channel being listed first at index 0", + "type": "array", + "items": { + "type": "string", + "enum": [ + "email", + "push", + "sms" + ], + "description": "Enum for channel name return values used in the V3 API for channel affinity for the field `ranked_channel_affinity`." + }, + "example": [ + "sms", + "email", + "push" + ], + "nullable": true + } + } + }, + "ProfileEnum": { + "type": "string", + "enum": [ + "profile" + ] + }, + "ListEnum": { + "type": "string", + "enum": [ + "list" + ] + }, + "SegmentEnum": { + "type": "string", + "enum": [ + "segment" + ] + }, + "PushTokenEnum": { + "type": "string", + "enum": [ + "push-token" + ] + }, + "ProfileResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "created": { + "description": "Date and time when the profile 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": "Date and time when the profile was last 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 + }, + "last_event_date": { + "description": "Date and time of the most recent event the triggered an update to the profile, 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 + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "attributes", + "links" + ] + }, + "AttributionEnum": { + "type": "string", + "enum": [ + "attribution" + ] + }, + "EventEnum": { + "type": "string", + "enum": [ + "event" + ] + }, + "CampaignEnum": { + "type": "string", + "enum": [ + "campaign" + ] + }, + "CampaignMessageEnum": { + "type": "string", + "enum": [ + "campaign-message" + ] + }, + "FlowMessageEnum": { + "type": "string", + "enum": [ + "flow-message" + ] + }, + "AttributionResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AttributionEnum" + }, + "id": { + "description": "The ID of the attribution", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "relationships": { + "type": "object", + "properties": { + "event": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "id": { + "description": "Event", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "attributed-event": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "id": { + "description": "Attributed Event", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "campaign": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignEnum" + }, + "id": { + "description": "Attributed Campaign", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "campaign-message": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignMessageEnum" + }, + "id": { + "description": "Attributed Campaign Message", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "flow": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "description": "Attributed Flow", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "flow-message": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "description": "Attributed Flow Message", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "flow-message-variation": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "description": "Attributed Flow Message Variation", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "links" + ] + }, + "EventResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "id": { + "description": "The Event ID", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "timestamp": { + "description": "Event timestamp in seconds", + "type": "integer", + "nullable": true + }, + "event_properties": { + "description": "Event properties, can include identifiers and extra properties", + "type": "object", + "nullable": true + }, + "datetime": { + "description": "Event timestamp in ISO8601 format (YYYY-MM-DDTHH:MM:SS+hh:mm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + }, + "uuid": { + "description": "A unique identifier for the event, this can be used as a cursor in pagination", + "type": "string", + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetEventResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/EventResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Profile ID of the associated profile, if available", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "attributions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/AttributionEnum" + }, + "id": { + "description": "Attributions for this event", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/AttributionResponseObjectResource" + }, + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + }, + { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "GetEventResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/EventResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Profile ID of the associated profile, if available", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "attributions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/AttributionEnum" + }, + "id": { + "description": "Attributions for this event", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/AttributionResponseObjectResource" + }, + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + }, + { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMetricResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-triggers": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetEventMetricRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "properties": { + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetEventProfileRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FlowActionEnum": { + "type": "string", + "enum": [ + "flow-action" + ] + }, + "TagEnum": { + "type": "string", + "enum": [ + "tag" + ] + }, + "FlowResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "trigger_type": { + "description": "Corresponds to the object which triggered the flow.", + "type": "string", + "enum": [ + "Added to List", + "Date Based", + "Low Inventory", + "Metric", + "Price Drop", + "Unconfigured" + ], + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetMetricResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-triggers": { + "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/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetMetricResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-triggers": { + "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" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-actions": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMetricFlowTriggersRelationshipsResponseCollection": { + "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/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "TagGroupEnum": { + "type": "string", + "enum": [ + "tag-group" + ] + }, + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "ListListResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter", + "nullable": true + }, + "created": { + "description": "Date and time when the list 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": "Date and time when the list was last 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 + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetListListResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ListListResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "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" + } + } + }, + "flow-triggers": { + "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/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "ListRetrieveResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter", + "nullable": true + }, + "created": { + "description": "Date and time when the list 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": "Date and time when the list was last 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 + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetListRetrieveResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/ListRetrieveResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "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" + } + } + }, + "flow-triggers": { + "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" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "attributes": { + "properties": { + "profile_count": { + "type": "integer", + "nullable": true + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/TagResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "tag-group": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "campaigns": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flows": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetListTagsRelationshipsResponseCollection": { + "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" + ] + }, + "ListMemberResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "created": { + "description": "Date and time when the profile 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": "Date and time when the profile was last 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 + }, + "last_event_date": { + "description": "Date and time of the most recent event the triggered an update to the profile, 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 + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "joined_group_at": { + "description": "The datetime when this profile most recently joined the list.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + } + }, + "required": [ + "joined_group_at" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "attributes", + "links" + ] + }, + "GetListMemberResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ListMemberResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "properties": { + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetListProfilesRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetListFlowTriggersRelationshipsResponseCollection": { + "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/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileGroupMembershipEnum": { + "type": "string", + "enum": [ + "profile-group-membership" + ] + }, + "DateEnum": { + "type": "string", + "enum": [ + "date" + ] + }, + "StaticDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for static date filters.\n\nE.g. \"before 2023-01-01\"", + "type": "string", + "enum": [ + "after", + "before" + ] + }, + "date": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + } + }, + "required": [ + "type", + "operator", + "date" + ] + }, + "StaticDateRangeFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for static date range filters.\n\nE.g. \"between 2023-01-01 and 2023-02-01\"", + "type": "string", + "enum": [ + "between-static" + ] + }, + "start": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "end": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + } + }, + "required": [ + "type", + "operator", + "start", + "end" + ] + }, + "RelativeDateOperatorBaseFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for relative date filters.\n\ne.g. \"in the last 10 days\"", + "type": "string", + "enum": [ + "at-least", + "in-the-last", + "in-the-next" + ] + }, + "unit": { + "description": "Units for relative date filters.", + "type": "string", + "enum": [ + "day", + "hour", + "week" + ] + }, + "quantity": { + "type": "integer" + } + }, + "required": [ + "type", + "operator", + "unit", + "quantity" + ] + }, + "RelativeDateRangeFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for relative date range filters.\n\ne.g. \"between 10 and 20 days ago\"", + "type": "string", + "enum": [ + "between" + ] + }, + "start": { + "type": "integer" + }, + "end": { + "type": "integer" + }, + "unit": { + "description": "Units for relative date filters.", + "type": "string", + "enum": [ + "day", + "hour", + "week" + ] + } + }, + "required": [ + "type", + "operator", + "start", + "end", + "unit" + ] + }, + "ProfileHasGroupMembershipCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileGroupMembershipEnum" + }, + "is_member": { + "type": "boolean", + "enum": [ + true + ] + }, + "group_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeframe_filter": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + } + ] + } + }, + "required": [ + "type", + "is_member", + "group_ids" + ] + }, + "ProfileNoGroupMembershipCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileGroupMembershipEnum" + }, + "is_member": { + "type": "boolean", + "enum": [ + false + ] + }, + "group_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "is_member", + "group_ids" + ] + }, + "ProfileMetricEnum": { + "type": "string", + "enum": [ + "profile-metric" + ] + }, + "NumericEnum": { + "type": "string", + "enum": [ + "numeric" + ] + }, + "NumericOperatorFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/NumericEnum" + }, + "operator": { + "description": "Operators for numeric filters.", + "type": "string", + "enum": [ + "equals", + "greater-than", + "greater-than-or-equal", + "less-than", + "less-than-or-equal", + "not-equals" + ] + }, + "value": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "RelativeAnniversaryDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for relative date filters.\n\ne.g. \"anniversary in the last 10 days\"", + "type": "string", + "enum": [ + "anniversary-last", + "anniversary-next" + ] + }, + "unit": { + "description": "Units for relative date filters.", + "type": "string", + "enum": [ + "day", + "hour", + "week" + ] + }, + "quantity": { + "type": "integer" + } + }, + "required": [ + "type", + "operator", + "unit", + "quantity" + ] + }, + "AlltimeDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for alltime date filters.", + "type": "string", + "enum": [ + "alltime" + ] + } + }, + "required": [ + "type", + "operator" + ] + }, + "StringEnum": { + "type": "string", + "enum": [ + "string" + ] + }, + "StringOperatorFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "description": "Operators for string filters.", + "type": "string", + "enum": [ + "contains", + "ends-with", + "equals", + "not-contains", + "not-ends-with", + "not-equals", + "not-starts-with", + "nregex", + "regex", + "starts-with" + ] + }, + "value": { + "type": "string", + "nullable": true + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "StringArrayOperatorFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "description": "Operators for string-in-array filters.", + "type": "string", + "enum": [ + "in", + "not-in" + ] + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ExistenceEnum": { + "type": "string", + "enum": [ + "existence" + ] + }, + "ExistenceOperatorFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ExistenceEnum" + }, + "operator": { + "description": "Operators for existence filters.", + "type": "string", + "enum": [ + "is-set", + "not-set" + ] + } + }, + "required": [ + "type", + "operator" + ] + }, + "ListSetFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "operator": { + "description": "Operators for list contains set filters.", + "type": "string", + "enum": [ + "contains-all", + "contains-any", + "not-contains-all", + "not-contains-any" + ] + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ListLengthFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "operator": { + "description": "Operators for list length filters.", + "type": "string", + "enum": [ + "length-equals", + "length-greater-than", + "length-greater-than-or-equal", + "length-less-than", + "length-less-than-or-equal" + ] + }, + "value": { + "type": "integer" + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ListSubstringFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "operator": { + "description": "Operators for list substring filters.", + "type": "string", + "enum": [ + "contains-substring", + "not-contains-substring" + ] + }, + "value": { + "type": "string", + "nullable": true + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "BooleanEnum": { + "type": "string", + "enum": [ + "boolean" + ] + }, + "BooleanFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/BooleanEnum" + }, + "operator": { + "description": "Operators for boolean filters.", + "type": "string", + "enum": [ + "equals" + ] + }, + "value": { + "type": "boolean" + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ProfileMetricPropertyFilter": { + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filter": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringArrayOperatorFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListSetFilter" + }, + { + "$ref": "#/components/schemas/ListLengthFilter" + }, + { + "$ref": "#/components/schemas/ListSubstringFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/NumericOperatorFilter" + } + ] + } + }, + "required": [ + "property" + ] + }, + "SegmentsProfileMetricCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileMetricEnum" + }, + "metric_id": { + "type": "string" + }, + "measurement": { + "description": "Measurements for profile metrics.", + "type": "string", + "enum": [ + "count", + "sum" + ] + }, + "measurement_filter": { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/AlltimeDateFilter" + } + ] + }, + "metric_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileMetricPropertyFilter" + }, + "nullable": true + } + }, + "required": [ + "type", + "metric_id", + "measurement", + "measurement_filter", + "timeframe_filter" + ] + }, + "ProfileMarketingConsentEnum": { + "type": "string", + "enum": [ + "profile-marketing-consent" + ] + }, + "EmailEnum": { + "type": "string", + "enum": [ + "email" + ] + }, + "AnyEnum": { + "type": "string", + "enum": [ + "any" + ] + }, + "HasEmailMarketing": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/AnyEnum" + }, + "filters": { + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "SubscribedEnum": { + "type": "string", + "enum": [ + "subscribed" + ] + }, + "Is_double_opt_inEnum": { + "type": "string", + "enum": [ + "is_double_opt_in" + ] + }, + "DoubleOptinFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Is_double_opt_inEnum" + }, + "filter": { + "$ref": "#/components/schemas/BooleanFilter" + } + }, + "required": [ + "field", + "filter" + ] + }, + "Status_dateEnum": { + "type": "string", + "enum": [ + "status_date" + ] + }, + "CalendarDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for calendar date filters.", + "type": "string", + "enum": [ + "calendar-month" + ] + }, + "value": { + "type": "integer" + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "AnniversaryDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Operators for anniversary date filters.", + "type": "string", + "enum": [ + "anniversary", + "anniversary-month" + ] + } + }, + "required": [ + "type", + "operator" + ] + }, + "StatusDateFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Status_dateEnum" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + } + ] + } + }, + "required": [ + "field", + "filter" + ] + }, + "Custom_sourceEnum": { + "type": "string", + "enum": [ + "custom_source" + ] + }, + "EqualsEnum": { + "type": "string", + "enum": [ + "equals" + ] + }, + "EqualsStringFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "$ref": "#/components/schemas/EqualsEnum" + }, + "value": { + "type": "string", + "nullable": true + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "CustomSourceFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Custom_sourceEnum" + }, + "filter": { + "$ref": "#/components/schemas/EqualsStringFilter" + } + }, + "required": [ + "field", + "filter" + ] + }, + "MethodEnum": { + "type": "string", + "enum": [ + "method" + ] + }, + "FormEnum": { + "type": "string", + "enum": [ + "form" + ] + }, + "InEnum": { + "type": "string", + "enum": [ + "in" + ] + }, + "InStringArrayFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "$ref": "#/components/schemas/InEnum" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "FormMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/FormEnum" + }, + "filter": { + "description": "Optional filter on a specific list of form ids", + "$ref": "#/components/schemas/InStringArrayFilter", + "nullable": true + } + }, + "required": [ + "field", + "method" + ] + }, + "Preference_pageEnum": { + "type": "string", + "enum": [ + "preference_page" + ] + }, + "PreferencePageFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Preference_pageEnum" + }, + "filter": { + "description": "Optional filter on a specific subscribe page url", + "$ref": "#/components/schemas/EqualsStringFilter", + "nullable": true + } + }, + "required": [ + "field", + "method" + ] + }, + "ApiEnum": { + "type": "string", + "enum": [ + "api" + ] + }, + "APIMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/ApiEnum" + }, + "filter": { + "description": "Optional filter on a specific list of API keys (using last 4 digits of the key)", + "$ref": "#/components/schemas/InStringArrayFilter", + "nullable": true + } + }, + "required": [ + "field", + "method" + ] + }, + "Inbound_messageEnum": { + "type": "string", + "enum": [ + "inbound_message" + ] + }, + "InboundMessageMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Inbound_messageEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Back_in_stockEnum": { + "type": "string", + "enum": [ + "back_in_stock" + ] + }, + "BackInStockMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Back_in_stockEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "SftpEnum": { + "type": "string", + "enum": [ + "sftp" + ] + }, + "SftpMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/SftpEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Manual_importEnum": { + "type": "string", + "enum": [ + "manual_import" + ] + }, + "ManualImportMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Manual_importEnum" + }, + "filter": { + "description": "Optional filter on a specific list of user email addresses who initiated the manual action", + "$ref": "#/components/schemas/InStringArrayFilter", + "nullable": true + } + }, + "required": [ + "field", + "method" + ] + }, + "Manual_addEnum": { + "type": "string", + "enum": [ + "manual_add" + ] + }, + "ManualAddMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Manual_addEnum" + }, + "filter": { + "description": "Optional filter on a specific list of user email addresses who initiated the manual action", + "$ref": "#/components/schemas/InStringArrayFilter", + "nullable": true + } + }, + "required": [ + "field", + "method" + ] + }, + "IntegrationEnum": { + "type": "string", + "enum": [ + "integration" + ] + }, + "ShopifyEnum": { + "type": "string", + "enum": [ + "shopify" + ] + }, + "ShopifyIntegrationFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "$ref": "#/components/schemas/InEnum" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShopifyEnum" + } + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ShopifyIntegrationMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/IntegrationEnum" + }, + "filter": { + "$ref": "#/components/schemas/ShopifyIntegrationFilter" + } + }, + "required": [ + "field", + "method", + "filter" + ] + }, + "HasEmailMarketingSubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/SubscribedEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/DoubleOptinFilter" + }, + { + "$ref": "#/components/schemas/StatusDateFilter" + }, + { + "$ref": "#/components/schemas/CustomSourceFilter" + }, + { + "$ref": "#/components/schemas/FormMethodFilter" + }, + { + "$ref": "#/components/schemas/PreferencePageFilter" + }, + { + "$ref": "#/components/schemas/APIMethodFilter" + }, + { + "$ref": "#/components/schemas/InboundMessageMethodFilter" + }, + { + "$ref": "#/components/schemas/BackInStockMethodFilter" + }, + { + "$ref": "#/components/schemas/SftpMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualImportMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualAddMethodFilter" + }, + { + "$ref": "#/components/schemas/ShopifyIntegrationMethodFilter" + } + ] + }, + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "Never_subscribedEnum": { + "type": "string", + "enum": [ + "never_subscribed" + ] + }, + "HasEmailMarketingNeverSubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/Never_subscribedEnum" + }, + "filters": { + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "HasEmailMarketingConsent": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/EmailEnum" + }, + "can_receive_marketing": { + "type": "boolean", + "enum": [ + true + ] + }, + "consent_status": { + "oneOf": [ + { + "$ref": "#/components/schemas/HasEmailMarketing" + }, + { + "$ref": "#/components/schemas/HasEmailMarketingSubscribed" + }, + { + "$ref": "#/components/schemas/HasEmailMarketingNeverSubscribed" + } + ] + } + }, + "required": [ + "channel", + "can_receive_marketing", + "consent_status" + ] + }, + "Bounce_dateEnum": { + "type": "string", + "enum": [ + "bounce_date" + ] + }, + "IsSetEnum": { + "type": "string", + "enum": [ + "is-set" + ] + }, + "IsSetExistenceFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ExistenceEnum" + }, + "operator": { + "$ref": "#/components/schemas/IsSetEnum" + } + }, + "required": [ + "type", + "operator" + ] + }, + "BounceDateFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Bounce_dateEnum" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/IsSetExistenceFilter" + } + ] + } + }, + "required": [ + "field", + "filter" + ] + }, + "Manual_suppression_dateEnum": { + "type": "string", + "enum": [ + "manual_suppression_date" + ] + }, + "ManualSuppressionDateFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Manual_suppression_dateEnum" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/IsSetExistenceFilter" + } + ] + } + }, + "required": [ + "field", + "filter" + ] + }, + "Invalid_email_dateEnum": { + "type": "string", + "enum": [ + "invalid_email_date" + ] + }, + "InvalidEmailDateFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Invalid_email_dateEnum" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/IsSetExistenceFilter" + } + ] + } + }, + "required": [ + "field", + "filter" + ] + }, + "NoEmailMarketing": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/AnyEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/BounceDateFilter" + }, + { + "$ref": "#/components/schemas/ManualSuppressionDateFilter" + }, + { + "$ref": "#/components/schemas/InvalidEmailDateFilter" + } + ] + }, + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "UnsubscribedEnum": { + "type": "string", + "enum": [ + "unsubscribed" + ] + }, + "PreferencePageMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Preference_pageEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Manual_removeEnum": { + "type": "string", + "enum": [ + "manual_remove" + ] + }, + "ManualRemoveMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Manual_removeEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Spam_complaintEnum": { + "type": "string", + "enum": [ + "spam_complaint" + ] + }, + "SpamComplaintMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Spam_complaintEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Mailbox_providerEnum": { + "type": "string", + "enum": [ + "mailbox_provider" + ] + }, + "MailboxProviderMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Mailbox_providerEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Constant_contactEnum": { + "type": "string", + "enum": [ + "constant_contact" + ] + }, + "ConstantContactIntegrationFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "$ref": "#/components/schemas/InEnum" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Constant_contactEnum" + } + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ConstantContactIntegrationMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/IntegrationEnum" + }, + "filter": { + "$ref": "#/components/schemas/ConstantContactIntegrationFilter" + } + }, + "required": [ + "field", + "method", + "filter" + ] + }, + "NoEmailMarketingUnsubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/UnsubscribedEnum" + }, + "filters": { + "nullable": true, + "oneOf": [ + { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/StatusDateFilter" + }, + { + "$ref": "#/components/schemas/APIMethodFilter" + }, + { + "$ref": "#/components/schemas/InboundMessageMethodFilter" + }, + { + "$ref": "#/components/schemas/PreferencePageMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualRemoveMethodFilter" + }, + { + "$ref": "#/components/schemas/SpamComplaintMethodFilter" + }, + { + "$ref": "#/components/schemas/MailboxProviderMethodFilter" + }, + { + "$ref": "#/components/schemas/ConstantContactIntegrationMethodFilter" + } + ] + } + }, + { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/BounceDateFilter" + }, + { + "$ref": "#/components/schemas/ManualSuppressionDateFilter" + }, + { + "$ref": "#/components/schemas/InvalidEmailDateFilter" + } + ] + } + } + ] + } + }, + "required": [ + "subscription" + ] + }, + "NoEmailMarketingNeverSubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/Never_subscribedEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/BounceDateFilter" + }, + { + "$ref": "#/components/schemas/ManualSuppressionDateFilter" + }, + { + "$ref": "#/components/schemas/InvalidEmailDateFilter" + } + ] + } + } + }, + "required": [ + "subscription", + "filters" + ] + }, + "NoEmailMarketingSubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/SubscribedEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/BounceDateFilter" + }, + { + "$ref": "#/components/schemas/ManualSuppressionDateFilter" + }, + { + "$ref": "#/components/schemas/InvalidEmailDateFilter" + } + ] + } + } + }, + "required": [ + "subscription", + "filters" + ] + }, + "NoEmailMarketingConsent": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/EmailEnum" + }, + "can_receive_marketing": { + "type": "boolean", + "enum": [ + false + ] + }, + "consent_status": { + "oneOf": [ + { + "$ref": "#/components/schemas/NoEmailMarketing" + }, + { + "$ref": "#/components/schemas/NoEmailMarketingUnsubscribed" + }, + { + "$ref": "#/components/schemas/NoEmailMarketingNeverSubscribed" + }, + { + "$ref": "#/components/schemas/NoEmailMarketingSubscribed" + } + ] + } + }, + "required": [ + "channel", + "can_receive_marketing", + "consent_status" + ] + }, + "SmsEnum": { + "type": "string", + "enum": [ + "sms" + ] + }, + "CheckoutEnum": { + "type": "string", + "enum": [ + "checkout" + ] + }, + "CheckoutMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/CheckoutEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Is_rcs_capableEnum": { + "type": "string", + "enum": [ + "is_rcs_capable" + ] + }, + "SubscribedSMSIsRcsCapableFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Is_rcs_capableEnum" + }, + "filter": { + "$ref": "#/components/schemas/BooleanFilter" + } + }, + "required": [ + "field", + "filter" + ] + }, + "HasSMSMarketingSubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/SubscribedEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/StatusDateFilter" + }, + { + "$ref": "#/components/schemas/FormMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualImportMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualAddMethodFilter" + }, + { + "$ref": "#/components/schemas/CheckoutMethodFilter" + }, + { + "$ref": "#/components/schemas/InboundMessageMethodFilter" + }, + { + "$ref": "#/components/schemas/PreferencePageMethodFilter" + }, + { + "$ref": "#/components/schemas/SftpMethodFilter" + }, + { + "$ref": "#/components/schemas/ShopifyIntegrationMethodFilter" + }, + { + "$ref": "#/components/schemas/SubscribedSMSIsRcsCapableFilter" + } + ] + }, + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "HasSMSMarketingConsent": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/SmsEnum" + }, + "can_receive_marketing": { + "type": "boolean", + "enum": [ + true + ] + }, + "consent_status": { + "$ref": "#/components/schemas/HasSMSMarketingSubscribed" + } + }, + "required": [ + "channel", + "can_receive_marketing", + "consent_status" + ] + }, + "NoSMSMarketing": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/AnyEnum" + } + }, + "required": [ + "subscription" + ] + }, + "Bulk_removeEnum": { + "type": "string", + "enum": [ + "bulk_remove" + ] + }, + "BulkRemoveMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Bulk_removeEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Carrier_deactivationEnum": { + "type": "string", + "enum": [ + "carrier_deactivation" + ] + }, + "CarrierDeactivationMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Carrier_deactivationEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Provided_landlineEnum": { + "type": "string", + "enum": [ + "provided_landline" + ] + }, + "ProvidedLandlineMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Provided_landlineEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Message_blockedEnum": { + "type": "string", + "enum": [ + "message_blocked" + ] + }, + "MessageBlockedMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Message_blockedEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Provided_no_ageEnum": { + "type": "string", + "enum": [ + "provided_no_age" + ] + }, + "ProvidedNoAgeMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Provided_no_ageEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "Failed_age_gateEnum": { + "type": "string", + "enum": [ + "failed_age_gate" + ] + }, + "FailedAgeGateMethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/MethodEnum" + }, + "method": { + "$ref": "#/components/schemas/Failed_age_gateEnum" + } + }, + "required": [ + "field", + "method" + ] + }, + "NoSMSMarketingUnsubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/UnsubscribedEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/StatusDateFilter" + }, + { + "$ref": "#/components/schemas/FormMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualImportMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualAddMethodFilter" + }, + { + "$ref": "#/components/schemas/ManualRemoveMethodFilter" + }, + { + "$ref": "#/components/schemas/BulkRemoveMethodFilter" + }, + { + "$ref": "#/components/schemas/CheckoutMethodFilter" + }, + { + "$ref": "#/components/schemas/InboundMessageMethodFilter" + }, + { + "$ref": "#/components/schemas/PreferencePageMethodFilter" + }, + { + "$ref": "#/components/schemas/SftpMethodFilter" + }, + { + "$ref": "#/components/schemas/CarrierDeactivationMethodFilter" + }, + { + "$ref": "#/components/schemas/ProvidedLandlineMethodFilter" + }, + { + "$ref": "#/components/schemas/MessageBlockedMethodFilter" + }, + { + "$ref": "#/components/schemas/ProvidedNoAgeMethodFilter" + }, + { + "$ref": "#/components/schemas/FailedAgeGateMethodFilter" + }, + { + "$ref": "#/components/schemas/ShopifyIntegrationMethodFilter" + } + ] + }, + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "NoSMSMarketingNeverSubscribed": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/Never_subscribedEnum" + } + }, + "required": [ + "subscription" + ] + }, + "NoSMSMarketingConsent": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/SmsEnum" + }, + "can_receive_marketing": { + "type": "boolean", + "enum": [ + false + ] + }, + "consent_status": { + "oneOf": [ + { + "$ref": "#/components/schemas/NoSMSMarketing" + }, + { + "$ref": "#/components/schemas/NoSMSMarketingUnsubscribed" + }, + { + "$ref": "#/components/schemas/NoSMSMarketingNeverSubscribed" + } + ] + } + }, + "required": [ + "channel", + "can_receive_marketing", + "consent_status" + ] + }, + "PushEnum": { + "type": "string", + "enum": [ + "push" + ] + }, + "HasPushMarketing": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/AnyEnum" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StatusDateFilter" + }, + "nullable": true + } + }, + "required": [ + "subscription" + ] + }, + "HasPushMarketingConsent": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/PushEnum" + }, + "can_receive_marketing": { + "type": "boolean", + "enum": [ + true + ] + }, + "consent_status": { + "$ref": "#/components/schemas/HasPushMarketing" + } + }, + "required": [ + "channel", + "can_receive_marketing", + "consent_status" + ] + }, + "NoPushMarketing": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/AnyEnum" + } + }, + "required": [ + "subscription" + ] + }, + "NoPushMarketingConsent": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/PushEnum" + }, + "can_receive_marketing": { + "type": "boolean", + "enum": [ + false + ] + }, + "consent_status": { + "$ref": "#/components/schemas/NoPushMarketing" + } + }, + "required": [ + "channel", + "can_receive_marketing", + "consent_status" + ] + }, + "ProfileMarketingConsentCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileMarketingConsentEnum" + }, + "consent": { + "oneOf": [ + { + "$ref": "#/components/schemas/HasEmailMarketingConsent" + }, + { + "$ref": "#/components/schemas/NoEmailMarketingConsent" + }, + { + "$ref": "#/components/schemas/HasSMSMarketingConsent" + }, + { + "$ref": "#/components/schemas/NoSMSMarketingConsent" + }, + { + "$ref": "#/components/schemas/HasPushMarketingConsent" + }, + { + "$ref": "#/components/schemas/NoPushMarketingConsent" + } + ] + } + }, + "required": [ + "type", + "consent" + ] + }, + "ProfilePostalCodeDistanceEnum": { + "type": "string", + "enum": [ + "profile-postal-code-distance" + ] + }, + "GreaterThanEnum": { + "type": "string", + "enum": [ + "greater-than" + ] + }, + "GreaterThanPositiveNumericFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/NumericEnum" + }, + "operator": { + "$ref": "#/components/schemas/GreaterThanEnum" + }, + "value": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "LessThanEnum": { + "type": "string", + "enum": [ + "less-than" + ] + }, + "LessThanPositiveNumericFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/NumericEnum" + }, + "operator": { + "$ref": "#/components/schemas/LessThanEnum" + }, + "value": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ProfilePostalCodeDistanceCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceEnum" + }, + "country_code": { + "type": "string" + }, + "postal_code": { + "type": "string" + }, + "unit": { + "description": "Units for profile postal code distance conditions.", + "type": "string", + "enum": [ + "kilometers", + "miles" + ] + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/GreaterThanPositiveNumericFilter" + }, + { + "$ref": "#/components/schemas/LessThanPositiveNumericFilter" + } + ] + } + }, + "required": [ + "type", + "country_code", + "postal_code", + "unit", + "filter" + ] + }, + "ProfilePropertyEnum": { + "type": "string", + "enum": [ + "profile-property" + ] + }, + "StringPhoneOperatorArrayFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "description": "Operators for phone string array filters.\n\nExample condition using this filter:\n {", + "type": "string", + "enum": [ + "phone-country-code-in", + "phone-country-code-not-in" + ] + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ListContainsOperatorFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "operator": { + "description": "Operators for list contains filters.", + "type": "string", + "enum": [ + "contains", + "not-contains" + ] + }, + "value": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ProfilePropertyCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePropertyEnum" + }, + "property": { + "type": "string" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringArrayOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringPhoneOperatorArrayFilter" + }, + { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/ListContainsOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListLengthFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + } + ] + } + }, + "required": [ + "type", + "property", + "filter" + ] + }, + "ProfileRegionEnum": { + "type": "string", + "enum": [ + "profile-region" + ] + }, + "ProfileRegionCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileRegionEnum" + }, + "in_region": { + "type": "boolean" + }, + "region": { + "description": "Regions for profile region conditions.", + "type": "string", + "enum": [ + "european_union", + "united_states" + ] + } + }, + "required": [ + "type", + "in_region", + "region" + ] + }, + "ProfilePredictiveAnalyticsEnum": { + "type": "string", + "enum": [ + "profile-predictive-analytics" + ] + }, + "ProfilePredictiveAnalyticsDateCondition": { + "type": "object", + "properties": { + "dimension": { + "description": "Dimension for date profile predictive analytics conditions.", + "type": "string", + "enum": [ + "expected_date_of_next_purchase" + ] + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + } + ] + }, + "type": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsEnum" + } + }, + "required": [ + "dimension", + "filter", + "type" + ] + }, + "ProfilePredictiveAnalyticsNumericCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsEnum" + }, + "dimension": { + "description": "Dimensions for numeric profile predictive analytics conditions.", + "type": "string", + "enum": [ + "average_days_between_orders", + "average_order_value", + "churn_probability", + "historic_clv", + "historic_number_of_orders", + "predicted_clv", + "predicted_number_of_orders", + "total_clv" + ] + }, + "filter": { + "$ref": "#/components/schemas/NumericOperatorFilter" + } + }, + "required": [ + "type", + "dimension", + "filter" + ] + }, + "NotEqualsEnum": { + "type": "string", + "enum": [ + "not-equals" + ] + }, + "ProfilePredictiveAnalyticsStringFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "oneOf": [ + { + "$ref": "#/components/schemas/EqualsEnum" + }, + { + "$ref": "#/components/schemas/NotEqualsEnum" + } + ] + }, + "value": { + "description": "Values for profile predictive analytics gender conditions.", + "type": "string", + "enum": [ + "likely_female", + "likely_male", + "uncertain" + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ProfilePredictiveAnalyticsStringCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsEnum" + }, + "dimension": { + "description": "Dimension for string profile predictive analytics conditions.", + "type": "string", + "enum": [ + "predicted_gender" + ] + }, + "filter": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringFilter" + } + }, + "required": [ + "type", + "dimension", + "filter" + ] + }, + "PriorityEnum": { + "type": "string", + "enum": [ + "priority" + ] + }, + "ProfilePredictiveAnalyticsChannelAffinityPriorityFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/NumericEnum" + }, + "operator": { + "$ref": "#/components/schemas/EqualsEnum" + }, + "value": { + "type": "integer" + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ProfilePredictiveAnalyticsChannelAffinityPriorityCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsEnum" + }, + "dimension": { + "description": "Possible dimension for channel affinity criterion.", + "type": "string", + "enum": [ + "channel_affinity" + ] + }, + "measurement": { + "$ref": "#/components/schemas/PriorityEnum" + }, + "predicted_channel": { + "description": "Possible channels in a channel affinity definition.", + "type": "string", + "enum": [ + "email", + "push", + "sms" + ] + }, + "filter": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityPriorityFilter" + } + }, + "required": [ + "type", + "dimension", + "measurement", + "predicted_channel", + "filter" + ] + }, + "RankEnum": { + "type": "string", + "enum": [ + "rank" + ] + }, + "ProfilePredictiveAnalyticsChannelAffinityRankFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StringEnum" + }, + "operator": { + "oneOf": [ + { + "$ref": "#/components/schemas/EqualsEnum" + }, + { + "$ref": "#/components/schemas/NotEqualsEnum" + } + ] + }, + "value": { + "description": "Possible rank values in a channel affinity definition.", + "type": "string", + "enum": [ + "high", + "low", + "medium" + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "ProfilePredictiveAnalyticsChannelAffinityRankCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsEnum" + }, + "dimension": { + "description": "Possible dimension for channel affinity criterion.", + "type": "string", + "enum": [ + "channel_affinity" + ] + }, + "measurement": { + "$ref": "#/components/schemas/RankEnum" + }, + "predicted_channel": { + "description": "Possible channels in a channel affinity definition.", + "type": "string", + "enum": [ + "email", + "push", + "sms" + ] + }, + "filter": { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityRankFilter" + } + }, + "required": [ + "type", + "dimension", + "measurement", + "predicted_channel", + "filter" + ] + }, + "ProfilePermissionsEnum": { + "type": "string", + "enum": [ + "profile-permissions" + ] + }, + "Explicitly_reachableEnum": { + "type": "string", + "enum": [ + "explicitly_reachable" + ] + }, + "Effective_dateEnum": { + "type": "string", + "enum": [ + "effective_date" + ] + }, + "EffectiveDateFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Effective_dateEnum" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + } + ] + } + }, + "required": [ + "field", + "filter" + ] + }, + "Recorded_dateEnum": { + "type": "string", + "enum": [ + "recorded_date" + ] + }, + "RecordedDateFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Recorded_dateEnum" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + } + ] + } + }, + "required": [ + "field", + "filter" + ] + }, + "Subscribe_methodEnum": { + "type": "string", + "enum": [ + "subscribe_method" + ] + }, + "MethodFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Subscribe_methodEnum" + }, + "method": { + "description": "Method for subscribing / unsubscribing.", + "type": "string", + "enum": [ + "api", + "back_in_stock", + "bigcommerce", + "bulk_remove", + "campaign_monitor", + "carrier_deactivation", + "checkout", + "constant_contact", + "exact_target", + "facebook", + "failed_age_gate", + "inbound_message", + "integration", + "mad_mimi", + "magento_two", + "mailbox_provider", + "manual_add", + "manual_import", + "manual_remove", + "message_blocked", + "netsuite", + "preference_page", + "provided_landline", + "provided_no_age", + "sftp", + "shopify", + "social_instagram_message", + "spam_complaint", + "square", + "wix", + "woocommerce" + ] + } + }, + "required": [ + "field", + "method" + ] + }, + "FormSubscribeFilter": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/Subscribe_methodEnum" + }, + "method": { + "$ref": "#/components/schemas/FormEnum" + }, + "filter": { + "description": "Optional filter on a specific list of form IDs", + "$ref": "#/components/schemas/InStringArrayFilter", + "nullable": true + } + }, + "required": [ + "field", + "method" + ] + }, + "ExplicitlyReachable": { + "type": "object", + "properties": { + "reachable_status": { + "$ref": "#/components/schemas/Explicitly_reachableEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/EffectiveDateFilter" + }, + { + "$ref": "#/components/schemas/RecordedDateFilter" + }, + { + "$ref": "#/components/schemas/MethodFilter" + }, + { + "$ref": "#/components/schemas/FormSubscribeFilter" + } + ] + } + } + }, + "required": [ + "reachable_status", + "filters" + ] + }, + "Implicitly_reachableEnum": { + "type": "string", + "enum": [ + "implicitly_reachable" + ] + }, + "ImplicitlyReachable": { + "type": "object", + "properties": { + "reachable_status": { + "$ref": "#/components/schemas/Implicitly_reachableEnum" + } + }, + "required": [ + "reachable_status" + ] + }, + "Implicitly_or_explicitly_reachableEnum": { + "type": "string", + "enum": [ + "implicitly_or_explicitly_reachable" + ] + }, + "ImplicitlyOrExplicitlyReachable": { + "type": "object", + "properties": { + "reachable_status": { + "$ref": "#/components/schemas/Implicitly_or_explicitly_reachableEnum" + } + }, + "required": [ + "reachable_status" + ] + }, + "Explicitly_unreachableEnum": { + "type": "string", + "enum": [ + "explicitly_unreachable" + ] + }, + "ExplicitlyUnreachable": { + "type": "object", + "properties": { + "reachable_status": { + "$ref": "#/components/schemas/Explicitly_unreachableEnum" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/EffectiveDateFilter" + }, + { + "$ref": "#/components/schemas/RecordedDateFilter" + }, + { + "$ref": "#/components/schemas/MethodFilter" + }, + { + "$ref": "#/components/schemas/FormSubscribeFilter" + } + ] + } + } + }, + "required": [ + "reachable_status", + "filters" + ] + }, + "Implicitly_unreachableEnum": { + "type": "string", + "enum": [ + "implicitly_unreachable" + ] + }, + "ImplicitlyUnreachable": { + "type": "object", + "properties": { + "reachable_status": { + "$ref": "#/components/schemas/Implicitly_unreachableEnum" + } + }, + "required": [ + "reachable_status" + ] + }, + "Implicitly_or_explicitly_unreachableEnum": { + "type": "string", + "enum": [ + "implicitly_or_explicitly_unreachable" + ] + }, + "ImplicitlyOrExplicitlyUnreachable": { + "type": "object", + "properties": { + "reachable_status": { + "$ref": "#/components/schemas/Implicitly_or_explicitly_unreachableEnum" + } + }, + "required": [ + "reachable_status" + ] + }, + "ProfilePermissionsCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfilePermissionsEnum" + }, + "permission": { + "oneOf": [ + { + "$ref": "#/components/schemas/ExplicitlyReachable" + }, + { + "$ref": "#/components/schemas/ImplicitlyReachable" + }, + { + "$ref": "#/components/schemas/ImplicitlyOrExplicitlyReachable" + }, + { + "$ref": "#/components/schemas/ExplicitlyUnreachable" + }, + { + "$ref": "#/components/schemas/ImplicitlyUnreachable" + }, + { + "$ref": "#/components/schemas/ImplicitlyOrExplicitlyUnreachable" + } + ] + }, + "channel": { + "description": "Possible channels for profile permissions criterion.", + "type": "string", + "enum": [ + "whatsapp_marketing", + "whatsapp_transactional" + ] + } + }, + "required": [ + "type", + "permission", + "channel" + ] + }, + "ProfileMetricFunnelEnum": { + "type": "string", + "enum": [ + "profile-metric-funnel" + ] + }, + "ProfileMetricFunnelSteps": { + "type": "object", + "properties": { + "metric_exists": { + "type": "boolean" + }, + "metric_id": { + "type": "string" + }, + "metric_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileMetricPropertyFilter" + }, + "nullable": true + } + }, + "required": [ + "metric_exists", + "metric_id" + ] + }, + "SegmentsProfileMetricFunnelCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileMetricFunnelEnum" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + } + ] + }, + "completion_window_seconds": { + "description": "Allowed completion window durations for funnel conditions (in\n seconds).", + "type": "string", + "enum": [ + "DAYS_1", + "DAYS_180", + "DAYS_3", + "DAYS_30", + "DAYS_5", + "DAYS_90", + "HOURS_1", + "WEEKS_1", + "YEARS_1" + ], + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileMetricFunnelSteps" + } + } + }, + "required": [ + "type", + "timeframe_filter", + "steps" + ] + }, + "ConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/SegmentsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityPriorityCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityRankCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + }, + { + "$ref": "#/components/schemas/SegmentsProfileMetricFunnelCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + }, + "SegmentDefinition": { + "type": "object", + "properties": { + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConditionGroup" + } + } + }, + "required": [ + "condition_groups" + ] + }, + "SegmentListResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the segment", + "type": "string", + "example": "Repeat Purchasers", + "nullable": true + }, + "definition": { + "$ref": "#/components/schemas/SegmentDefinition", + "nullable": true + }, + "created": { + "description": "Date and time when the segment 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": "Date and time when the segment was last 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 + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "is_starred": { + "type": "boolean" + } + }, + "required": [ + "is_active", + "is_processing", + "is_starred" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetSegmentListResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/SegmentListResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "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" + } + } + }, + "flow-triggers": { + "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/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "SegmentRetrieveResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the segment", + "type": "string", + "example": "Repeat Purchasers", + "nullable": true + }, + "definition": { + "$ref": "#/components/schemas/SegmentDefinition", + "nullable": true + }, + "created": { + "description": "Date and time when the segment 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": "Date and time when the segment was last 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 + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "is_starred": { + "type": "boolean" + } + }, + "required": [ + "is_active", + "is_processing", + "is_starred" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetSegmentRetrieveResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/SegmentRetrieveResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "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" + } + } + }, + "flow-triggers": { + "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" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "attributes": { + "properties": { + "profile_count": { + "type": "integer", + "nullable": true + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetSegmentTagsRelationshipsResponseCollection": { + "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" + ] + }, + "SegmentMemberResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "created": { + "description": "Date and time when the profile 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": "Date and time when the profile was last 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 + }, + "last_event_date": { + "description": "Date and time of the most recent event the triggered an update to the profile, 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 + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "joined_group_at": { + "description": "The datetime when this profile most recently joined the segment.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + } + }, + "required": [ + "joined_group_at" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "attributes", + "links" + ] + }, + "GetSegmentMemberResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/SegmentMemberResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "properties": { + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetSegmentProfilesRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetSegmentFlowTriggersRelationshipsResponseCollection": { + "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/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "ListResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter", + "nullable": true + }, + "created": { + "description": "Date and time when the list 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": "Date and time when the list was last 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 + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "SegmentResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the segment", + "type": "string", + "example": "Repeat Purchasers", + "nullable": true + }, + "definition": { + "$ref": "#/components/schemas/SegmentDefinition", + "nullable": true + }, + "created": { + "description": "Date and time when the segment 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": "Date and time when the segment was last 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 + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "is_starred": { + "type": "boolean" + } + }, + "required": [ + "is_active", + "is_processing", + "is_starred" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "DeviceMetadata": { + "type": "object", + "properties": { + "device_id": { + "description": "Relatively stable ID for the device. Will update on app uninstall and reinstall", + "type": "string", + "example": "1234567890", + "nullable": true + }, + "klaviyo_sdk": { + "description": "The name of the SDK used to create the push token.", + "type": "string", + "example": "swift", + "enum": [ + "android", + "flutter_community", + "react_native", + "swift" + ], + "nullable": true + }, + "sdk_version": { + "description": "The version of the SDK used to create the push token", + "type": "string", + "example": "1.0.0", + "nullable": true + }, + "device_model": { + "description": "The model of the device", + "type": "string", + "example": "iPhone12,1", + "nullable": true + }, + "os_name": { + "description": "The name of the operating system on the device.", + "type": "string", + "example": "ios", + "enum": [ + "android", + "ios", + "ipados", + "macos", + "tvos" + ], + "nullable": true + }, + "os_version": { + "description": "The version of the operating system on the device", + "type": "string", + "example": "14.0", + "nullable": true + }, + "manufacturer": { + "description": "The manufacturer of the device", + "type": "string", + "example": "Apple", + "nullable": true + }, + "app_name": { + "description": "The name of the app that created the push token", + "type": "string", + "example": "Klaviyo", + "nullable": true + }, + "app_version": { + "description": "The version of the app that created the push token", + "type": "string", + "example": "1.0.0", + "nullable": true + }, + "app_build": { + "description": "The build of the app that created the push token", + "type": "string", + "example": "1", + "nullable": true + }, + "app_id": { + "description": "The ID of the app that created the push token", + "type": "string", + "example": "com.klaviyo.app", + "nullable": true + }, + "environment": { + "description": "The environment in which the push token was created", + "type": "string", + "example": "release", + "enum": [ + "debug", + "release" + ], + "nullable": true + } + } + }, + "PushTokenResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "id": { + "description": "ID of push token", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "created": { + "description": "The time at which the token was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "token": { + "description": "The push token", + "type": "string" + }, + "enablement_status": { + "description": "The enablement status of the push token", + "type": "string", + "enum": [ + "AUTHORIZED", + "DENIED", + "NOT_DETERMINED", + "PROVISIONAL", + "UNAUTHORIZED" + ] + }, + "platform": { + "description": "The platform of the push token('ios', 'android')", + "type": "string", + "enum": [ + "android", + "ios" + ] + }, + "vendor": { + "description": "The vendor of the push token('APNs', 'FCM')", + "type": "string" + }, + "background": { + "description": "The background state of the push token", + "type": "string" + }, + "recorded_date": { + "description": "The date the push token was recorded", + "type": "string" + }, + "metadata": { + "description": "Metadata of device", + "$ref": "#/components/schemas/DeviceMetadata", + "nullable": true + } + }, + "required": [ + "created", + "token", + "enablement_status", + "platform", + "vendor", + "background", + "recorded_date" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetProfileResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "properties": { + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "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" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "properties": { + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListResponseObjectResource" + }, + { + "$ref": "#/components/schemas/PushTokenResponseObjectResource" + }, + { + "$ref": "#/components/schemas/SegmentResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetPushTokenResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/PushTokenResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfilePushTokensRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "id": { + "description": "ID of push token", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetListResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ListResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flow-triggers": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileListsRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetSegmentResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/SegmentResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flow-triggers": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileSegmentsRelationshipsResponseCollection": { + "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/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileBulkImportJobEnum": { + "type": "string", + "enum": [ + "profile-bulk-import-job" + ] + }, + "ProfileImportJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileBulkImportJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "expires_at": { + "description": "Date and time the job expires 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 + }, + "started_at": { + "description": "Date and time the job started processing 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetProfileImportJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileImportJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "List to add the profiles to", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profiles": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "import-errors": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/OnlyRelatedLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileImportJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileImportJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "List to add the profiles to", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profiles": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "import-errors": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/OnlyRelatedLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileBulkImportJobListsRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "properties": { + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetProfileBulkImportJobProfilesRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "ImportErrorEnum": { + "type": "string", + "enum": [ + "import-error" + ] + }, + "ImportErrorResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ImportErrorEnum" + }, + "id": { + "description": "Unique identifier for the error.", + "type": "string", + "example": "e4eebb08-b055-4a6f-bb13-c8cb69c9eb94" + }, + "attributes": { + "type": "object", + "properties": { + "code": { + "description": "A code for classifying the error type.", + "type": "string", + "example": "invalid" + }, + "title": { + "description": "A high-level message about the error.", + "type": "string", + "example": "Invalid input" + }, + "detail": { + "description": "Specific details about the error.", + "type": "string", + "example": "The payload provided in the request is invalid." + }, + "source": { + "description": "Additional information on the source of the error.", + "$ref": "#/components/schemas/ErrorSource" + }, + "original_payload": { + "type": "object", + "nullable": true + } + }, + "required": [ + "code", + "title", + "detail", + "source" + ] + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "GetImportErrorResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportErrorResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "ActionOutputSplitEnum": { + "type": "string", + "enum": [ + "action-output-split" + ] + }, + "BooleanBranchLinks": { + "type": "object", + "properties": { + "next_if_true": { + "type": "string", + "nullable": true + }, + "next_if_false": { + "type": "string", + "nullable": true + } + }, + "required": [ + "next_if_true", + "next_if_false" + ] + }, + "ActionOutputEnum": { + "type": "string", + "enum": [ + "action-output" + ] + }, + "NumericRangeFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/NumericEnum" + }, + "operator": { + "description": "Operators for numeric range filters.", + "type": "string", + "enum": [ + "between" + ] + }, + "start": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + }, + "end": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "type", + "operator", + "start", + "end" + ] + }, + "ActionOutputCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ActionOutputEnum" + }, + "output_config_id": { + "type": "integer" + }, + "field": { + "type": "string" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringArrayOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericRangeFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + } + ] + } + }, + "required": [ + "type", + "output_config_id", + "field", + "filter" + ] + }, + "ActionOutputConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActionOutputCondition" + } + } + }, + "required": [ + "conditions" + ] + }, + "ActionOutputConditionFilter": { + "type": "object", + "properties": { + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActionOutputConditionGroup" + } + } + }, + "required": [ + "condition_groups" + ] + }, + "ActionOutputSplitActionData": { + "type": "object", + "properties": { + "action_output_filter": { + "$ref": "#/components/schemas/ActionOutputConditionFilter", + "nullable": true + } + }, + "required": [ + "action_output_filter" + ] + }, + "ActionOutputSplitAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ActionOutputSplitEnum" + }, + "links": { + "$ref": "#/components/schemas/BooleanBranchLinks", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/ActionOutputSplitActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "BackInStockDelayEnum": { + "type": "string", + "enum": [ + "back-in-stock-delay" + ] + }, + "Link": { + "type": "object", + "properties": { + "next": { + "type": "string", + "nullable": true + } + }, + "required": [ + "next" + ] + }, + "BackInStockDelayAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/BackInStockDelayEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "ConditionalSplitEnum": { + "type": "string", + "enum": [ + "conditional-split" + ] + }, + "SinceFlowStartDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "description": "Possible operators for since flow start date.", + "type": "string", + "enum": [ + "flow-start" + ] + } + }, + "required": [ + "type", + "operator" + ] + }, + "FlowsProfileMetricCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileMetricEnum" + }, + "metric_id": { + "type": "string" + }, + "measurement": { + "description": "Measurements for profile metrics.", + "type": "string", + "enum": [ + "count", + "sum" + ] + }, + "measurement_filter": { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/AlltimeDateFilter" + }, + { + "$ref": "#/components/schemas/SinceFlowStartDateFilter" + } + ] + }, + "metric_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileMetricPropertyFilter" + }, + "nullable": true + } + }, + "required": [ + "type", + "metric_id", + "measurement", + "measurement_filter", + "timeframe_filter" + ] + }, + "ProfileSampleEnum": { + "type": "string", + "enum": [ + "profile-sample" + ] + }, + "ProfileRandomSampleCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSampleEnum" + }, + "percentage": { + "type": "integer" + } + }, + "required": [ + "type", + "percentage" + ] + }, + "ConditionalBranchActionData": { + "type": "object", + "properties": { + "profile_filter": { + "type": "object", + "nullable": true, + "properties": { + "condition_groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/FlowsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileRandomSampleCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + } + } + }, + "required": [ + "condition_groups" + ] + } + }, + "required": [ + "profile_filter" + ] + }, + "ConditionalBranchAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ConditionalSplitEnum" + }, + "links": { + "$ref": "#/components/schemas/BooleanBranchLinks", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/ConditionalBranchActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "ContentExperimentEnum": { + "type": "string", + "enum": [ + "content-experiment" + ] + }, + "ContentExperimentAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ContentExperimentEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SendEmailEnum": { + "type": "string", + "enum": [ + "send-email" + ] + }, + "UtmParam": { + "type": "object", + "properties": { + "param": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "param", + "value" + ] + }, + "ProfileNotSentEmailEnum": { + "type": "string", + "enum": [ + "profile-not-sent-email" + ] + }, + "InTheLastEnum": { + "type": "string", + "enum": [ + "in-the-last" + ] + }, + "InTheLastBaseRelativeDateFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "operator": { + "$ref": "#/components/schemas/InTheLastEnum" + }, + "unit": { + "description": "Units for relative date filters.", + "type": "string", + "enum": [ + "day", + "hour", + "week" + ] + }, + "quantity": { + "type": "integer" + } + }, + "required": [ + "type", + "operator", + "unit", + "quantity" + ] + }, + "ProfileHasNotReceivedEmailMessageCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileNotSentEmailEnum" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/AlltimeDateFilter" + }, + { + "$ref": "#/components/schemas/InTheLastBaseRelativeDateFilter" + } + ] + } + }, + "required": [ + "type", + "timeframe_filter" + ] + }, + "FlowEmail": { + "type": "object", + "properties": { + "from_email": { + "type": "string", + "nullable": true + }, + "from_label": { + "type": "string", + "nullable": true + }, + "reply_to_email": { + "type": "string", + "nullable": true + }, + "cc_email": { + "type": "string", + "nullable": true + }, + "bcc_email": { + "type": "string", + "nullable": true + }, + "subject_line": { + "type": "string", + "nullable": true + }, + "preview_text": { + "type": "string", + "nullable": true + }, + "template_id": { + "type": "string", + "nullable": true + }, + "smart_sending_enabled": { + "type": "boolean", + "example": true, + "default": true + }, + "transactional": { + "type": "boolean", + "default": false + }, + "add_tracking_params": { + "type": "boolean", + "default": false + }, + "custom_tracking_params": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UtmParam" + }, + "nullable": true + }, + "additional_filters": { + "type": "object", + "nullable": true, + "properties": { + "condition_groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/FlowsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileRandomSampleCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasNotReceivedEmailMessageCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + } + } + }, + "required": [ + "condition_groups" + ] + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "from_email", + "from_label", + "reply_to_email", + "cc_email", + "bcc_email", + "subject_line", + "preview_text" + ] + }, + "SendEmailActionData": { + "type": "object", + "properties": { + "message": { + "$ref": "#/components/schemas/FlowEmail", + "nullable": true + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + } + }, + "SendEmailAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SendEmailEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/SendEmailActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SendMobilePushEnum": { + "type": "string", + "enum": [ + "send-mobile-push" + ] + }, + "Increment_oneEnum": { + "type": "string", + "enum": [ + "increment_one" + ] + }, + "Increment": { + "type": "object", + "properties": { + "badge_config": { + "$ref": "#/components/schemas/Increment_oneEnum" + } + }, + "required": [ + "badge_config" + ] + }, + "Set_countEnum": { + "type": "string", + "enum": [ + "set_count" + ] + }, + "StaticCount": { + "type": "object", + "properties": { + "badge_config": { + "$ref": "#/components/schemas/Set_countEnum" + }, + "value": { + "type": "string" + } + }, + "required": [ + "badge_config", + "value" + ] + }, + "Set_propertyEnum": { + "type": "string", + "enum": [ + "set_property" + ] + }, + "Property": { + "type": "object", + "properties": { + "badge_config": { + "$ref": "#/components/schemas/Set_propertyEnum" + }, + "set_from_property": { + "type": "string" + } + }, + "required": [ + "badge_config", + "set_from_property" + ] + }, + "ProfileNotSentPushEnum": { + "type": "string", + "enum": [ + "profile-not-sent-push" + ] + }, + "ProfileHasNotReceivedPushMessageCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileNotSentPushEnum" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/AlltimeDateFilter" + }, + { + "$ref": "#/components/schemas/InTheLastBaseRelativeDateFilter" + } + ] + } + }, + "required": [ + "type", + "timeframe_filter" + ] + }, + "FlowPushNotification": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string" + }, + "sound": { + "type": "boolean", + "default": false + }, + "badge": { + "type": "boolean", + "default": false + }, + "badge_options": { + "oneOf": [ + { + "$ref": "#/components/schemas/Increment" + }, + { + "$ref": "#/components/schemas/StaticCount" + }, + { + "$ref": "#/components/schemas/Property" + } + ] + }, + "image_id": { + "description": "The id of an ImageAsset. If provided, this will take precedence over a dynamic_image.", + "type": "string", + "example": "123", + "nullable": true + }, + "dynamic_image": { + "description": "A dynamic image asset to include in the push notification.", + "type": "string", + "example": "{{ event.items.0.url }}", + "nullable": true + }, + "video_asset_id": { + "description": "The ULID of a video asset. If provided, videos and images are mutually exclusive.", + "type": "string", + "example": "01ARZ3NDEKTSV4RRFFQ69G5FAV", + "nullable": true + }, + "on_open": { + "description": "See PushLinkAction in app.\n\nThis is not a flow action, but the literal action that should be\n taken when the push notification is tapped.", + "type": "string", + "example": "home", + "default": "home", + "enum": [ + "home", + "link" + ] + }, + "ios_link": { + "type": "string", + "nullable": true + }, + "android_link": { + "type": "string", + "nullable": true + }, + "conversion_metric_id": { + "type": "string", + "nullable": true + }, + "smart_sending_enabled": { + "type": "boolean", + "example": true, + "default": true + }, + "additional_filters": { + "type": "object", + "nullable": true, + "properties": { + "condition_groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/FlowsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileRandomSampleCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasNotReceivedPushMessageCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + } + } + }, + "required": [ + "condition_groups" + ] + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "body" + ] + }, + "SendPushNotificationActionData": { + "type": "object", + "properties": { + "message": { + "$ref": "#/components/schemas/FlowPushNotification", + "nullable": true + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + } + }, + "SendPushNotificationAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SendMobilePushEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/SendPushNotificationActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SendSmsEnum": { + "type": "string", + "enum": [ + "send-sms" + ] + }, + "ProfileNotSentSmsEnum": { + "type": "string", + "enum": [ + "profile-not-sent-sms" + ] + }, + "ProfileHasNotReceivedSmsMessageCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileNotSentSmsEnum" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/AlltimeDateFilter" + }, + { + "$ref": "#/components/schemas/InTheLastBaseRelativeDateFilter" + } + ] + } + }, + "required": [ + "type", + "timeframe_filter" + ] + }, + "FlowSms": { + "type": "object", + "properties": { + "body": { + "type": "string" + }, + "image_id": { + "description": "The id of an ImageAsset. If provided, this will take precedence over a dynamic_image.", + "type": "string", + "example": "123", + "nullable": true + }, + "dynamic_image": { + "description": "A dynamic image asset to include in the SMS message.", + "type": "string", + "example": "{{ person|lookup:'image_url' }}", + "nullable": true + }, + "shorten_links": { + "type": "boolean", + "example": true, + "default": true + }, + "include_contact_card": { + "type": "boolean", + "default": false + }, + "add_org_prefix": { + "type": "boolean", + "example": true, + "default": true + }, + "add_info_link": { + "type": "boolean", + "example": true, + "default": true + }, + "add_opt_out_language": { + "type": "boolean", + "default": false + }, + "smart_sending_enabled": { + "type": "boolean", + "example": true, + "default": true + }, + "sms_quiet_hours_enabled": { + "type": "boolean", + "example": true, + "default": true + }, + "transactional": { + "type": "boolean", + "default": false + }, + "add_tracking_params": { + "type": "boolean", + "default": false + }, + "custom_tracking_params": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UtmParam" + }, + "nullable": true + }, + "additional_filters": { + "type": "object", + "nullable": true, + "properties": { + "condition_groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/FlowsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileRandomSampleCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasNotReceivedSmsMessageCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + } + } + }, + "required": [ + "condition_groups" + ] + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "body" + ] + }, + "SendSmsActionData": { + "type": "object", + "properties": { + "message": { + "$ref": "#/components/schemas/FlowSms", + "nullable": true + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + } + }, + "SendSmsAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SendSmsEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/SendSmsActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SendWebhookEnum": { + "type": "string", + "enum": [ + "send-webhook" + ] + }, + "FlowWebhook": { + "type": "object", + "properties": { + "url": { + "type": "string", + "nullable": true + }, + "headers": { + "type": "object" + }, + "body": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "url" + ] + }, + "SendWebhookActionData": { + "type": "object", + "properties": { + "message": { + "$ref": "#/components/schemas/FlowWebhook" + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + }, + "required": [ + "message" + ] + }, + "SendWebhookAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SendWebhookEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/SendWebhookActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SendInternalAlertEnum": { + "type": "string", + "enum": [ + "send-internal-alert" + ] + }, + "FlowInternalAlert": { + "type": "object", + "properties": { + "from_email": { + "type": "string", + "nullable": true + }, + "from_label": { + "type": "string", + "nullable": true + }, + "to_emails": { + "type": "array", + "items": { + "type": "string" + } + }, + "subject_line": { + "type": "string", + "nullable": true + }, + "template_id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "from_email", + "from_label", + "to_emails", + "subject_line" + ] + }, + "SendInternalAlertActionData": { + "type": "object", + "properties": { + "message": { + "$ref": "#/components/schemas/FlowInternalAlert" + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + }, + "required": [ + "message" + ] + }, + "SendInternalAlertAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SendInternalAlertEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/SendInternalAlertActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SendWhatsappEnum": { + "type": "string", + "enum": [ + "send-whatsapp" + ] + }, + "FlowWhatsApp": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "vendor_id": { + "type": "string", + "nullable": true + }, + "smart_sending_enabled": { + "type": "boolean", + "example": true, + "default": true + }, + "transactional": { + "type": "boolean", + "default": false + }, + "add_tracking_params": { + "type": "boolean", + "default": false + }, + "additional_filters": { + "type": "object", + "nullable": true, + "properties": { + "condition_groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/FlowsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileRandomSampleCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + } + } + }, + "required": [ + "condition_groups" + ] + } + } + }, + "SendWhatsAppActionData": { + "type": "object", + "properties": { + "message": { + "$ref": "#/components/schemas/FlowWhatsApp", + "nullable": true + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + } + }, + "SendWhatsAppAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SendWhatsappEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/SendWhatsAppActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "TimeDelayEnum": { + "type": "string", + "enum": [ + "time-delay" + ] + }, + "TimeDelayActionData": { + "type": "object", + "properties": { + "unit": { + "description": "aka delay_units in app.", + "type": "string", + "example": "days", + "default": "days", + "enum": [ + "days", + "hours", + "minutes" + ] + }, + "value": { + "type": "integer" + }, + "secondary_value": { + "type": "integer", + "nullable": true + }, + "timezone": { + "type": "string", + "example": "profile", + "default": "profile", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zurich", + "GMT", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "US/Alaska", + "US/Arizona", + "US/Central", + "US/Eastern", + "US/Hawaii", + "US/Mountain", + "US/Pacific", + "UTC", + "profile" + ] + }, + "delay_until_time": { + "type": "string", + "format": "time", + "nullable": true + }, + "delay_until_weekdays": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday" + ], + "description": "Days of the week." + }, + "nullable": true + } + }, + "required": [ + "value" + ] + }, + "TimeDelayAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/TimeDelayEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/TimeDelayActionData" + } + }, + "required": [ + "type", + "data" + ] + }, + "TriggerSplitEnum": { + "type": "string", + "enum": [ + "trigger-split" + ] + }, + "MetricPropertyEnum": { + "type": "string", + "enum": [ + "metric-property" + ] + }, + "MetricPropertyCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricPropertyEnum" + }, + "metric_id": { + "type": "string" + }, + "field": { + "type": "string" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringArrayOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericRangeFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/ListContainsOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListLengthFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + } + ] + } + }, + "required": [ + "type", + "metric_id", + "field", + "filter" + ] + }, + "MetricPropertyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricPropertyCondition" + } + } + }, + "required": [ + "conditions" + ] + }, + "MetricPropertyConditionFilter": { + "type": "object", + "properties": { + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricPropertyConditionGroup" + } + } + }, + "required": [ + "condition_groups" + ] + }, + "TriggerBranchActionData": { + "type": "object", + "properties": { + "trigger_filter": { + "$ref": "#/components/schemas/MetricPropertyConditionFilter", + "nullable": true + }, + "trigger_id": { + "type": "string" + }, + "trigger_type": { + "description": "Trigger type.", + "type": "string", + "enum": [ + "date", + "list", + "low-inventory", + "metric", + "price-drop", + "scheduled", + "segment" + ] + }, + "trigger_subtype": { + "description": "Date trigger type.", + "type": "string", + "enum": [ + "custom-object", + "legacy-custom-object", + "profile-property", + "profile-trait" + ], + "nullable": true + } + }, + "required": [ + "trigger_filter", + "trigger_id", + "trigger_type" + ] + }, + "TriggerBranchAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/TriggerSplitEnum" + }, + "links": { + "$ref": "#/components/schemas/BooleanBranchLinks", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/TriggerBranchActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "UpdateProfileEnum": { + "type": "string", + "enum": [ + "update-profile" + ] + }, + "ProfileOperationUpdateOrCreateString": { + "type": "object", + "properties": { + "operator": { + "description": "The type of operation to perform on a profile property.", + "type": "string", + "enum": [ + "create", + "update" + ] + }, + "property_type": { + "$ref": "#/components/schemas/StringEnum" + }, + "property_key": { + "type": "string" + }, + "property_value": { + "type": "string" + } + }, + "required": [ + "operator", + "property_type", + "property_key", + "property_value" + ] + }, + "ProfileOperationUpdateOrCreateBoolean": { + "type": "object", + "properties": { + "operator": { + "description": "The type of operation to perform on a profile property.", + "type": "string", + "enum": [ + "create", + "update" + ] + }, + "property_type": { + "$ref": "#/components/schemas/BooleanEnum" + }, + "property_key": { + "type": "string" + }, + "property_value": { + "type": "boolean" + } + }, + "required": [ + "operator", + "property_type", + "property_key", + "property_value" + ] + }, + "ProfileOperationUpdateOrCreateNumeric": { + "type": "object", + "properties": { + "operator": { + "description": "The type of operation to perform on a profile property.", + "type": "string", + "enum": [ + "create", + "update" + ] + }, + "property_type": { + "$ref": "#/components/schemas/NumericEnum" + }, + "property_key": { + "type": "string" + }, + "property_value": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + } + }, + "required": [ + "operator", + "property_type", + "property_key", + "property_value" + ] + }, + "ProfileOperationUpdateOrCreateDate": { + "type": "object", + "properties": { + "operator": { + "description": "The type of operation to perform on a profile property.", + "type": "string", + "enum": [ + "create", + "update" + ] + }, + "property_type": { + "$ref": "#/components/schemas/DateEnum" + }, + "property_key": { + "type": "string" + }, + "property_value": { + "oneOf": [ + { + "type": "string", + "format": "date" + }, + { + "enum": [ + "today" + ] + } + ] + } + }, + "required": [ + "operator", + "property_type", + "property_key", + "property_value" + ] + }, + "ProfileOperationUpdateOrCreateList": { + "type": "object", + "properties": { + "operator": { + "description": "The type of operation to perform on a profile property.", + "type": "string", + "enum": [ + "create", + "update" + ] + }, + "property_type": { + "$ref": "#/components/schemas/ListEnum" + }, + "property_operation": { + "description": "The type of operation to perform on a list property.", + "type": "string", + "enum": [ + "add", + "remove" + ], + "nullable": true + }, + "property_key": { + "type": "string" + }, + "property_value": { + "type": "string" + } + }, + "required": [ + "operator", + "property_type", + "property_key", + "property_value" + ] + }, + "ProfileOperationDelete": { + "type": "object", + "properties": { + "operator": { + "description": "The type of operation to perform on a profile property.", + "type": "string", + "enum": [ + "delete" + ] + }, + "property_key": { + "type": "string" + } + }, + "required": [ + "operator", + "property_key" + ] + }, + "UpdateProfileActionData": { + "type": "object", + "properties": { + "profile_operations": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfileOperationUpdateOrCreateString" + }, + { + "$ref": "#/components/schemas/ProfileOperationUpdateOrCreateBoolean" + }, + { + "$ref": "#/components/schemas/ProfileOperationUpdateOrCreateNumeric" + }, + { + "$ref": "#/components/schemas/ProfileOperationUpdateOrCreateDate" + }, + { + "$ref": "#/components/schemas/ProfileOperationUpdateOrCreateList" + }, + { + "$ref": "#/components/schemas/ProfileOperationDelete" + } + ] + } + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + }, + "required": [ + "profile_operations" + ] + }, + "UpdateProfileAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/UpdateProfileEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "description": "The maximum allowed sum of profile strings is 100KB.", + "$ref": "#/components/schemas/UpdateProfileActionData", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "TargetDateEnum": { + "type": "string", + "enum": [ + "target-date" + ] + }, + "TargetDateActionData": { + "type": "object", + "properties": { + "timezone": { + "type": "string", + "example": "profile", + "default": "profile", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zurich", + "GMT", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "US/Alaska", + "US/Arizona", + "US/Central", + "US/Eastern", + "US/Hawaii", + "US/Mountain", + "US/Pacific", + "UTC", + "profile" + ] + }, + "target_time": { + "type": "string", + "format": "time" + }, + "target_days": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday" + ], + "description": "Days of the week." + }, + "nullable": true + } + } + }, + "TargetDateAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/TargetDateEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/TargetDateActionData" + } + }, + "required": [ + "type", + "data" + ] + }, + "CountdownDelayEnum": { + "type": "string", + "enum": [ + "countdown-delay" + ] + }, + "CountdownDelayActionData": { + "type": "object", + "properties": { + "unit": { + "description": "Defined as FlowDateTrigger attributes in app.", + "type": "string", + "example": "days", + "default": "days", + "enum": [ + "days", + "months", + "weeks" + ] + }, + "value": { + "type": "integer", + "default": 0 + }, + "timezone": { + "type": "string", + "example": "profile", + "default": "profile", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zurich", + "GMT", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "US/Alaska", + "US/Arizona", + "US/Central", + "US/Eastern", + "US/Hawaii", + "US/Mountain", + "US/Pacific", + "UTC", + "profile" + ] + }, + "delay_until_time": { + "type": "string", + "format": "time", + "nullable": true + }, + "delay_until_weekdays": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday" + ], + "description": "Days of the week." + }, + "nullable": true + } + } + }, + "CountdownDelayAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/CountdownDelayEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/CountdownDelayActionData" + } + }, + "required": [ + "type", + "data" + ] + }, + "AbTestEnum": { + "type": "string", + "enum": [ + "ab-test" + ] + }, + "AutomaticWinnerSelectionSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "automatic_end_date": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "automatic_end_statistical_certainty": { + "type": "boolean" + } + }, + "required": [ + "enabled", + "automatic_end_statistical_certainty" + ] + }, + "AbTestAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/AbTestEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "type": "object", + "properties": { + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + }, + "experiment_status": { + "description": "The status of the A/B test action experiment.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "completed", + "draft", + "live" + ] + }, + "main_action": { + "oneOf": [ + { + "$ref": "#/components/schemas/SendEmailAction" + }, + { + "$ref": "#/components/schemas/SendSmsAction" + } + ] + }, + "current_experiment": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "variations": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/SendEmailAction" + }, + { + "$ref": "#/components/schemas/SendSmsAction" + } + ] + } + }, + "allocations": { + "type": "object", + "nullable": true + }, + "started": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "winner_metric": { + "description": "The metric to use to determine the winner of the A/B test action.\n\nNote that this is different from the metrics used as a flow trigger.", + "type": "string", + "enum": [ + "submission", + "unique-clicks", + "unique-opens", + "unique-placed-orders" + ], + "nullable": true + }, + "automatic_winner_selection_settings": { + "$ref": "#/components/schemas/AutomaticWinnerSelectionSettings", + "nullable": true + } + }, + "required": [ + "variations" + ] + } + }, + "required": [ + "main_action" + ] + } + }, + "required": [ + "type", + "data" + ] + }, + "InternalServiceEnum": { + "type": "string", + "enum": [ + "internal-service" + ] + }, + "InternalServiceAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InternalServiceEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "CodeEnum": { + "type": "string", + "enum": [ + "code" + ] + }, + "CodeAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/CodeEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SplitEnum": { + "type": "string", + "enum": [ + "split" + ] + }, + "SplitLinks": { + "type": "object", + "properties": { + "next": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "next" + ] + }, + "SplitAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/SplitEnum" + }, + "links": { + "$ref": "#/components/schemas/SplitLinks", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "BranchEnum": { + "type": "string", + "enum": [ + "branch" + ] + }, + "BranchAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/BranchEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + }, + "data": { + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "ListUpdateActionData": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "on_execution": { + "description": "The enum for whether the action will add/remove from the list in the\n List Update Action.", + "type": "boolean", + "enum": [ + false, + true + ], + "nullable": true + }, + "list_id": { + "type": "string", + "nullable": true + }, + "status": { + "description": "Flow action status.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "disabled", + "draft", + "live", + "manual" + ] + } + }, + "required": [ + "name", + "on_execution", + "list_id" + ] + }, + "ListUpdateEnum": { + "type": "string", + "enum": [ + "list-update" + ] + }, + "ListUpdateAction": { + "type": "object", + "properties": { + "id": { + "description": "The real ID of an action.", + "type": "string", + "example": "123", + "nullable": true + }, + "temporary_id": { + "description": "A temporary ID to use only during a create operation. Existing actions should use the id field.", + "type": "string", + "example": "action-1", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/ListUpdateActionData" + }, + "type": { + "$ref": "#/components/schemas/ListUpdateEnum" + }, + "links": { + "$ref": "#/components/schemas/Link", + "nullable": true + } + }, + "required": [ + "data", + "type" + ] + }, + "FlowActionEncodedResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "definition": { + "description": "The encoded flow action definition.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ActionOutputSplitAction" + }, + { + "$ref": "#/components/schemas/BackInStockDelayAction" + }, + { + "$ref": "#/components/schemas/ConditionalBranchAction" + }, + { + "$ref": "#/components/schemas/ContentExperimentAction" + }, + { + "$ref": "#/components/schemas/SendEmailAction" + }, + { + "$ref": "#/components/schemas/SendPushNotificationAction" + }, + { + "$ref": "#/components/schemas/SendSmsAction" + }, + { + "$ref": "#/components/schemas/SendWebhookAction" + }, + { + "$ref": "#/components/schemas/SendInternalAlertAction" + }, + { + "$ref": "#/components/schemas/SendWhatsAppAction" + }, + { + "$ref": "#/components/schemas/TimeDelayAction" + }, + { + "$ref": "#/components/schemas/TriggerBranchAction" + }, + { + "$ref": "#/components/schemas/UpdateProfileAction" + }, + { + "$ref": "#/components/schemas/TargetDateAction" + }, + { + "$ref": "#/components/schemas/CountdownDelayAction" + }, + { + "$ref": "#/components/schemas/AbTestAction" + }, + { + "$ref": "#/components/schemas/InternalServiceAction" + }, + { + "$ref": "#/components/schemas/CodeAction" + }, + { + "$ref": "#/components/schemas/SplitAction" + }, + { + "$ref": "#/components/schemas/BranchAction" + }, + { + "$ref": "#/components/schemas/ListUpdateAction" + } + ] + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetFlowResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-actions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "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/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowActionEncodedResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "ListTrigger": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SegmentTrigger": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "MetricTrigger": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "type": "string", + "nullable": true + }, + "trigger_filter": { + "$ref": "#/components/schemas/MetricPropertyConditionFilter", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "ProfilePropertyDateTrigger": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "date_field_type": { + "$ref": "#/components/schemas/ProfilePropertyEnum" + }, + "date_profile_property": { + "type": "string" + }, + "timedelta_unit_before_date": { + "description": "See FlowDateTrigger.UNIT_CHOICES in app and CountdownUnit in fender.", + "type": "string", + "example": "weeks", + "default": "weeks", + "enum": [ + "days", + "months", + "weeks" + ] + }, + "timedelta_value_before_date": { + "type": "integer" + }, + "recurrence_frequency": { + "description": "aka RepeatTypes in app and RepeatType in fender.", + "type": "string", + "example": "monthly", + "default": "monthly", + "enum": [ + "annually", + "monthly", + "never", + "weekly" + ] + }, + "timezone": { + "type": "string", + "example": "profile", + "default": "profile", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zurich", + "GMT", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "US/Alaska", + "US/Arizona", + "US/Central", + "US/Eastern", + "US/Hawaii", + "US/Mountain", + "US/Pacific", + "UTC", + "profile" + ] + }, + "trigger_time": { + "type": "string", + "format": "time" + }, + "trigger_days": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday" + ], + "description": "Days of the week." + }, + "nullable": true + } + }, + "required": [ + "type", + "date_field_type", + "date_profile_property", + "timedelta_value_before_date", + "trigger_time" + ] + }, + "PriceDropEnum": { + "type": "string", + "enum": [ + "price-drop" + ] + }, + "PriceDropPropertyEnum": { + "type": "string", + "enum": [ + "price-drop-property" + ] + }, + "PriceDropCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PriceDropPropertyEnum" + }, + "metric_id": { + "type": "string", + "nullable": true + }, + "field": { + "type": "string" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringArrayOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericRangeFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/ListContainsOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListLengthFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + } + ] + } + }, + "required": [ + "type", + "metric_id", + "field", + "filter" + ] + }, + "PriceDropConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceDropCondition" + } + } + }, + "required": [ + "conditions" + ] + }, + "PriceDropConditionFilter": { + "type": "object", + "properties": { + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceDropConditionGroup" + } + } + }, + "required": [ + "condition_groups" + ] + }, + "PriceDropTrigger": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PriceDropEnum" + }, + "trigger_filter": { + "$ref": "#/components/schemas/PriceDropConditionFilter", + "nullable": true + }, + "price_drop_amount_value": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "number" + } + ] + }, + "price_drop_amount_unit": { + "description": "Price Drop amount type.", + "type": "string", + "example": "currency", + "default": "currency", + "enum": [ + "currency", + "percent" + ] + }, + "audience": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "checkout-started", + "viewed" + ], + "description": "The profiles which the price drop trigger applies to." + } + }, + "timeframe_days": { + "type": "integer", + "example": 30, + "default": 30 + }, + "currency_type": { + "description": "Currency type.", + "type": "string", + "example": "usd", + "default": "usd", + "enum": [ + "usd" + ] + } + }, + "required": [ + "type", + "trigger_filter", + "price_drop_amount_value", + "audience" + ] + }, + "LowInventoryEnum": { + "type": "string", + "enum": [ + "low-inventory" + ] + }, + "LowInventoryPropertyEnum": { + "type": "string", + "enum": [ + "low-inventory-property" + ] + }, + "LowInventoryCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LowInventoryPropertyEnum" + }, + "metric_id": { + "type": "string", + "nullable": true + }, + "field": { + "type": "string" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringArrayOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + { + "$ref": "#/components/schemas/NumericRangeFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/StaticDateFilter" + }, + { + "$ref": "#/components/schemas/StaticDateRangeFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateOperatorBaseFilter" + }, + { + "$ref": "#/components/schemas/RelativeAnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/RelativeDateRangeFilter" + }, + { + "$ref": "#/components/schemas/CalendarDateFilter" + }, + { + "$ref": "#/components/schemas/AnniversaryDateFilter" + }, + { + "$ref": "#/components/schemas/ListContainsOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListLengthFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + } + ] + } + }, + "required": [ + "type", + "metric_id", + "field", + "filter" + ] + }, + "LowInventoryConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LowInventoryCondition" + } + } + }, + "required": [ + "conditions" + ] + }, + "LowInventoryConditionFilter": { + "type": "object", + "properties": { + "condition_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LowInventoryConditionGroup" + } + } + }, + "required": [ + "condition_groups" + ] + }, + "LowInventoryTrigger": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LowInventoryEnum" + }, + "product_level": { + "description": "Low inventory product level.", + "type": "string", + "enum": [ + "product", + "variant" + ] + }, + "trigger_filter": { + "$ref": "#/components/schemas/LowInventoryConditionFilter", + "nullable": true + }, + "inventory_count": { + "type": "integer" + }, + "audience": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "added-to-cart", + "checkout-started", + "viewed" + ], + "description": "The profiles which the low inventory trigger applies to.\n\nWe check profiles to see if they have these kinds of events. If they\n do have them, then they are considered for the audience." + } + }, + "timeframe_days": { + "type": "integer", + "example": 30, + "default": 30 + } + }, + "required": [ + "type", + "product_level", + "trigger_filter", + "inventory_count", + "audience" + ] + }, + "ProfileNotInFlowEnum": { + "type": "string", + "enum": [ + "profile-not-in-flow" + ] + }, + "ProfileNotInFlowCondition": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileNotInFlowEnum" + }, + "timeframe_filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/AlltimeDateFilter" + }, + { + "$ref": "#/components/schemas/InTheLastBaseRelativeDateFilter" + } + ] + } + }, + "required": [ + "type", + "timeframe_filter" + ] + }, + "FlowDefinition": { + "type": "object", + "properties": { + "triggers": { + "description": "Corresponds to the object which triggers the flow. Only one trigger is supported.", + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListTrigger" + }, + { + "$ref": "#/components/schemas/SegmentTrigger" + }, + { + "$ref": "#/components/schemas/MetricTrigger" + }, + { + "$ref": "#/components/schemas/ProfilePropertyDateTrigger" + }, + { + "$ref": "#/components/schemas/PriceDropTrigger" + }, + { + "$ref": "#/components/schemas/LowInventoryTrigger" + } + ] + } + }, + "profile_filter": { + "description": "Filters for users entering the flow. These filters are used on every action in the flow.", + "type": "object", + "nullable": true, + "properties": { + "condition_groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProfilePropertyCondition" + }, + { + "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" + }, + { + "$ref": "#/components/schemas/ProfileRegionCondition" + }, + { + "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" + }, + { + "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" + }, + { + "$ref": "#/components/schemas/ProfileMarketingConsentCondition" + }, + { + "$ref": "#/components/schemas/FlowsProfileMetricCondition" + }, + { + "$ref": "#/components/schemas/ProfileRandomSampleCondition" + }, + { + "$ref": "#/components/schemas/ProfilePermissionsCondition" + }, + { + "$ref": "#/components/schemas/ProfileNotInFlowCondition" + } + ] + } + } + }, + "required": [ + "conditions" + ] + } + } + }, + "required": [ + "condition_groups" + ] + }, + "actions": { + "description": "A list of actions that make up the flow. Actions are linked to each other by their ids.", + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ActionOutputSplitAction" + }, + { + "$ref": "#/components/schemas/BackInStockDelayAction" + }, + { + "$ref": "#/components/schemas/ConditionalBranchAction" + }, + { + "$ref": "#/components/schemas/ContentExperimentAction" + }, + { + "$ref": "#/components/schemas/SendEmailAction" + }, + { + "$ref": "#/components/schemas/SendPushNotificationAction" + }, + { + "$ref": "#/components/schemas/SendSmsAction" + }, + { + "$ref": "#/components/schemas/SendWebhookAction" + }, + { + "$ref": "#/components/schemas/SendInternalAlertAction" + }, + { + "$ref": "#/components/schemas/SendWhatsAppAction" + }, + { + "$ref": "#/components/schemas/TimeDelayAction" + }, + { + "$ref": "#/components/schemas/TriggerBranchAction" + }, + { + "$ref": "#/components/schemas/UpdateProfileAction" + }, + { + "$ref": "#/components/schemas/TargetDateAction" + }, + { + "$ref": "#/components/schemas/CountdownDelayAction" + }, + { + "$ref": "#/components/schemas/AbTestAction" + }, + { + "$ref": "#/components/schemas/InternalServiceAction" + }, + { + "$ref": "#/components/schemas/CodeAction" + }, + { + "$ref": "#/components/schemas/SplitAction" + }, + { + "$ref": "#/components/schemas/BranchAction" + }, + { + "$ref": "#/components/schemas/ListUpdateAction" + } + ] + } + }, + "entry_action_id": { + "description": "The ID of the action that is the entry point of the flow.", + "type": "string", + "example": "123", + "nullable": true + } + }, + "required": [ + "triggers", + "actions", + "entry_action_id" + ] + }, + "FlowV2ResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "trigger_type": { + "description": "Corresponds to the object which triggered the flow.", + "type": "string", + "enum": [ + "Added to List", + "Date Based", + "Low Inventory", + "Metric", + "Price Drop", + "Unconfigured" + ], + "nullable": true + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetFlowV2ResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowV2ResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-actions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "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" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "attributes": { + "properties": { + "definition": { + "description": "The encoded flow definition. Unsupported objects (triggers, actions, etc.) will be included but labeled as unsupported.", + "$ref": "#/components/schemas/FlowDefinition", + "nullable": true + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowActionEncodedResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowActionEncodedResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowActionEncodedResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flow-messages": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowFlowActionRelationshipListResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowTagsRelationshipsResponseCollection": { + "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" + ] + }, + "TemplateEnum": { + "type": "string", + "enum": [ + "template" + ] + }, + "FlowMessageEncodedResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "channel": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "definition": { + "description": "The encoded flow message definition.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/FlowEmail" + }, + { + "$ref": "#/components/schemas/FlowInternalAlert" + }, + { + "$ref": "#/components/schemas/FlowPushNotification" + }, + { + "$ref": "#/components/schemas/FlowSms" + }, + { + "$ref": "#/components/schemas/FlowWebhook" + }, + { + "$ref": "#/components/schemas/FlowWhatsApp" + } + ] + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetFlowActionEncodedResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowActionEncodedResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flow-messages": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "$ref": "#/components/schemas/FlowMessageEncodedResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-actions": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowActionFlowRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowMessageEncodedResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowMessageEncodedResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-action": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "template": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowActionFlowMessageRelationshipResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "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:\n* SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template\n* SIMPLE: A rich text editor template\n* CODE: A custom HTML template\n* 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" + ] + }, + "GetFlowMessageEncodedResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowMessageEncodedResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-action": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "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": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FlowActionEncodedResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TemplateResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowActionEncodedResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/FlowActionEncodedResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flow-messages": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowMessageActionRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTemplateResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TemplateResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFlowMessageTemplateRelationshipResponse": { + "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" + ] + }, + "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 + } + } + }, + "EmailMessageDefinition": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/EmailEnum" + }, + "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" + ] + }, + "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 + } + } + }, + "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 + } + } + }, + "SMSMessageDefinition": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/SmsEnum" + }, + "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" + ] + }, + "Mobile_pushEnum": { + "type": "string", + "enum": [ + "mobile_push" + ] + }, + "StandardEnum": { + "type": "string", + "enum": [ + "standard" + ] + }, + "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 + } + } + }, + "Open_appEnum": { + "type": "string", + "enum": [ + "open_app" + ] + }, + "PushOnOpenApp": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/Open_appEnum" + } + }, + "required": [ + "type" + ] + }, + "Deep_linkEnum": { + "type": "string", + "enum": [ + "deep_link" + ] + }, + "PushOnOpenDeepLink": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/Deep_linkEnum" + }, + "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" + ] + }, + "CampaignMessageIncrement": { + "type": "object", + "properties": { + "badge_config": { + "enum": [ + "increment_one" + ] + } + }, + "required": [ + "badge_config" + ] + }, + "CampaignMessageStaticCount": { + "type": "object", + "properties": { + "badge_config": { + "enum": [ + "set_count" + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "badge_config", + "value" + ] + }, + "CampaignMessageProperty": { + "type": "object", + "properties": { + "badge_config": { + "enum": [ + "set_property" + ] + }, + "set_from_property": { + "type": "string" + } + }, + "required": [ + "badge_config", + "set_from_property" + ] + }, + "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" + ] + }, + "MobilePushNoBadge": { + "type": "object", + "properties": { + "display": { + "description": "Whether to display a badge on the app icon", + "type": "boolean", + "enum": [ + false + ] + } + }, + "required": [ + "display" + ] + }, + "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 + } + } + }, + "MobilePushMessageStandardDefinition": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/Mobile_pushEnum" + }, + "notification_type": { + "description": "The type of notification to send", + "$ref": "#/components/schemas/StandardEnum" + }, + "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" + ] + }, + "SilentEnum": { + "type": "string", + "enum": [ + "silent" + ] + }, + "MobilePushMessageSilentDefinition": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/Mobile_pushEnum" + }, + "notification_type": { + "description": "The type of notification to send", + "$ref": "#/components/schemas/SilentEnum" + }, + "kv_pairs": { + "description": "The key-value pairs to be sent with the push notification", + "type": "object", + "nullable": true + } + }, + "required": [ + "channel", + "notification_type" + ] + }, + "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" + ] + }, + "ImageEnum": { + "type": "string", + "enum": [ + "image" + ] + }, + "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 + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "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" + ] + }, + "EmailSendOptions": { + "type": "object", + "properties": { + "use_smart_sending": { + "description": "Use smart sending.", + "type": "boolean", + "example": true, + "default": true, + "nullable": true + } + } + }, + "SMSSendOptions": { + "type": "object", + "properties": { + "use_smart_sending": { + "description": "Use smart sending.", + "type": "boolean", + "example": true, + "default": true, + "nullable": true + } + } + }, + "PushSendOptions": { + "type": "object", + "properties": { + "use_smart_sending": { + "description": "Use smart sending.", + "type": "boolean", + "example": true, + "default": true, + "nullable": true + } + } + }, + "DynamicEnum": { + "type": "string", + "enum": [ + "dynamic" + ] + }, + "DynamicTrackingParam": { + "type": "object", + "properties": { + "type": { + "description": "The type of the tracking parameter", + "$ref": "#/components/schemas/DynamicEnum" + }, + "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" + ] + }, + "StaticEnum": { + "type": "string", + "enum": [ + "static" + ] + }, + "StaticTrackingParam": { + "type": "object", + "properties": { + "type": { + "description": "The type of the tracking parameter", + "$ref": "#/components/schemas/StaticEnum" + }, + "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" + ] + }, + "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 + } + } + }, + "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 + } + } + }, + "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" + ] + }, + "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" + ] + }, + "StaticSendStrategy": { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/StaticEnum" + }, + "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" + ] + }, + "Smart_send_timeEnum": { + "type": "string", + "enum": [ + "smart_send_time" + ] + }, + "SmartSendTimeStrategy": { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/Smart_send_timeEnum" + }, + "date": { + "description": "The day to send on", + "type": "string", + "format": "date" + } + }, + "required": [ + "method", + "date" + ] + }, + "ThrottledEnum": { + "type": "string", + "enum": [ + "throttled" + ] + }, + "ThrottledSendStrategy": { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/ThrottledEnum" + }, + "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" + ] + }, + "ImmediateEnum": { + "type": "string", + "enum": [ + "immediate" + ] + }, + "ImmediateSendStrategy": { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/ImmediateEnum" + } + }, + "required": [ + "method" + ] + }, + "Ab_test_campaignEnum": { + "type": "string", + "enum": [ + "ab_test_campaign" + ] + }, + "ABTestSendStrategy": { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/Ab_test_campaignEnum" + } + }, + "required": [ + "method" + ] + }, + "UnsupportedEnum": { + "type": "string", + "enum": [ + "unsupported" + ] + }, + "UnsupportedSendStrategy": { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/UnsupportedEnum" + } + }, + "required": [ + "method" + ] + }, + "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: Internal Error", + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCampaignResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CampaignResponseObjectResource" + }, + { + "properties": { + "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/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/CampaignMessageResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "GetCampaignResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CampaignResponseObjectResource" + }, + { + "properties": { + "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" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/CampaignMessageResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TagResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "GetCampaignMessageResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CampaignMessageResponseObjectResource" + }, + { + "properties": { + "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" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/CampaignResponseObjectResource" + }, + { + "$ref": "#/components/schemas/ImageResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TemplateResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCampaignResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CampaignResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "campaign-messages": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "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" + ] + }, + "GetImageResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ImageResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "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" + ] + }, + "GetCampaignMessageResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CampaignMessageResponseObjectResource" + }, + { + "properties": { + "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/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/CampaignResponseObjectResource" + }, + { + "$ref": "#/components/schemas/ImageResponseObjectResource" + }, + { + "$ref": "#/components/schemas/TemplateResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "CampaignSendJobEnum": { + "type": "string", + "enum": [ + "campaign-send-job" + ] + }, + "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" + ] + }, + "GetCampaignSendJobResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignSendJobResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CampaignRecipientEstimationJobEnum": { + "type": "string", + "enum": [ + "campaign-recipient-estimation-job" + ] + }, + "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" + ] + }, + "GetCampaignRecipientEstimationJobResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignRecipientEstimationJobResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CampaignRecipientEstimationEnum": { + "type": "string", + "enum": [ + "campaign-recipient-estimation" + ] + }, + "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" + ] + }, + "GetCampaignRecipientEstimationResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignRecipientEstimationResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTemplateResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TemplateResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemBulkCreateJobEnum": { + "type": "string", + "enum": [ + "catalog-item-bulk-create-job" + ] + }, + "CatalogItemCreateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogItemCreateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the created catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogItemCreateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the created catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogItemResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemBulkUpdateJobEnum": { + "type": "string", + "enum": [ + "catalog-item-bulk-update-job" + ] + }, + "CatalogItemUpdateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkUpdateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogItemUpdateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemUpdateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the updated catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogItemUpdateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemUpdateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the updated catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogItemResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemBulkDeleteJobEnum": { + "type": "string", + "enum": [ + "catalog-item-bulk-delete-job" + ] + }, + "CatalogItemDeleteJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogItemDeleteJobResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemDeleteJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogItemDeleteJobResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemDeleteJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantBulkCreateJobEnum": { + "type": "string", + "enum": [ + "catalog-variant-bulk-create-job" + ] + }, + "CatalogVariantCreateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogVariantCreateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the created catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogVariantCreateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the created catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantBulkUpdateJobEnum": { + "type": "string", + "enum": [ + "catalog-variant-bulk-update-job" + ] + }, + "CatalogVariantUpdateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkUpdateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogVariantUpdateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantUpdateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the updated catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogVariantUpdateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantUpdateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the updated catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantBulkDeleteJobEnum": { + "type": "string", + "enum": [ + "catalog-variant-bulk-delete-job" + ] + }, + "CatalogVariantDeleteJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogVariantDeleteJobResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantDeleteJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogVariantDeleteJobResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogVariantDeleteJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryBulkCreateJobEnum": { + "type": "string", + "enum": [ + "catalog-category-bulk-create-job" + ] + }, + "CatalogCategoryCreateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogCategoryCreateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the created catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogCategoryCreateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the created catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogCategoryResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryBulkUpdateJobEnum": { + "type": "string", + "enum": [ + "catalog-category-bulk-update-job" + ] + }, + "CatalogCategoryUpdateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkUpdateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogCategoryUpdateJobResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryUpdateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the updated catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogCategoryUpdateJobResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryUpdateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the updated catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogCategoryResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryBulkDeleteJobEnum": { + "type": "string", + "enum": [ + "catalog-category-bulk-delete-job" + ] + }, + "CatalogCategoryDeleteJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCatalogCategoryDeleteJobResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryDeleteJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCatalogCategoryDeleteJobResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogCategoryDeleteJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "TagGroupResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "id": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The Tag Group name", + "type": "string", + "example": "My Tag Group" + }, + "exclusive": { + "description": "If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.", + "type": "boolean" + }, + "default": { + "description": "Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.", + "type": "boolean" + } + }, + "required": [ + "name", + "exclusive", + "default" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetTagResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/TagResponseObjectResource" + }, + { + "properties": { + "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": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "campaigns": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flows": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagGroupResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetTagResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/TagResponseObjectResource" + }, + { + "properties": { + "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": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "campaigns": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flows": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagGroupResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagGroupResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/TagGroupResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagGroupResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/TagGroupResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "tags": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagFlowRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "description": "The IDs of all flows that are associated with the Tag", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagCampaignRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignEnum" + }, + "id": { + "description": "The IDs of all campaigns that are associated with the Tag", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagListRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "The IDs of all lists that are associated with the Tag", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagSegmentRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "description": "The IDs of all segments that are associated with the Tag", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagGroupRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "id": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTagGroupTagsRelationshipsResponseCollection": { + "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" + ] + }, + "WebhookTopicEnum": { + "type": "string", + "enum": [ + "webhook-topic" + ] + }, + "WebhookTopicResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "The ID of the webhook topic.", + "type": "string", + "example": "event:klaviyo.sent_sms" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "links" + ] + }, + "WebhookEnum": { + "type": "string", + "enum": [ + "webhook" + ] + }, + "WebhookResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookEnum" + }, + "id": { + "description": "The ID of the webhook.", + "type": "string", + "example": "01HF7AYTK76RHR4F17G6DGTRGF" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the webhook.", + "type": "string", + "example": "My Webhook" + }, + "description": { + "description": "A description for the webhook.", + "type": "string", + "example": "A webhook for sms events", + "nullable": true + }, + "endpoint_url": { + "description": "The url to send webhook requests to, truncated for security.", + "type": "string", + "example": "https://www.example.com" + }, + "enabled": { + "description": "Is the webhook enabled.", + "type": "boolean" + }, + "created_at": { + "description": "Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + }, + "updated_at": { + "description": "Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + } + }, + "required": [ + "name", + "endpoint_url", + "enabled" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetWebhookResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/WebhookResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "webhook-topics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "A topic the webhook is subscribed to.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTopicResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetWebhookResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/WebhookResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "webhook-topics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "A topic the webhook is subscribed to.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTopicResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetWebhookTopicResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTopicResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetWebhookTopicResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/WebhookTopicResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileSuppressionBulkCreateJobEnum": { + "type": "string", + "enum": [ + "profile-suppression-bulk-create-job" + ] + }, + "BulkProfileSuppressionsCreateJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSuppressionBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "skipped_count": { + "description": "The total number of profiles that have been skipped as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + } + }, + "required": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetBulkProfileSuppressionsCreateJobResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/BulkProfileSuppressionsCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetBulkProfileSuppressionsCreateJobResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/BulkProfileSuppressionsCreateJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileSuppressionBulkDeleteJobEnum": { + "type": "string", + "enum": [ + "profile-suppression-bulk-delete-job" + ] + }, + "BulkProfileSuppressionsRemoveJobResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSuppressionBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "skipped_count": { + "description": "The total number of profiles that have been skipped as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + } + }, + "required": [ + "status", + "created_at", + "total_count" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetBulkProfileSuppressionsRemoveJobResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/BulkProfileSuppressionsRemoveJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetBulkProfileSuppressionsRemoveJobResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/BulkProfileSuppressionsRemoveJobResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "segments": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "AccountEnum": { + "type": "string", + "enum": [ + "account" + ] + }, + "StreetAddress": { + "type": "object", + "properties": { + "address1": { + "type": "string", + "example": "125 Summer Street", + "nullable": true + }, + "address2": { + "type": "string", + "example": "5th Floor", + "nullable": true + }, + "city": { + "type": "string", + "example": "Boston" + }, + "region": { + "description": "State, province, or region.", + "type": "string", + "example": "MA", + "nullable": true + }, + "country": { + "description": "Two-letter [ISO country code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)", + "type": "string", + "example": "US", + "nullable": true + }, + "zip": { + "type": "string", + "example": "04323", + "nullable": true + } + }, + "required": [ + "city" + ] + }, + "ContactInformation": { + "type": "object", + "properties": { + "default_sender_name": { + "description": "This field is used to auto-populate the default sender name on flow and campaign emails.", + "type": "string", + "example": "Klaviyo Demo" + }, + "default_sender_email": { + "description": "This field is used to auto-populate the default sender email address on flow and campaign emails.", + "type": "string", + "example": "contact@klaviyo-demo.com" + }, + "website_url": { + "type": "string", + "example": "https://www.klaviyo.com", + "nullable": true + }, + "organization_name": { + "type": "string", + "example": "Klaviyo Demo" + }, + "street_address": { + "description": "Street address for your organization.", + "$ref": "#/components/schemas/StreetAddress" + } + }, + "required": [ + "default_sender_name", + "default_sender_email", + "organization_name", + "street_address" + ] + }, + "AccountResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AccountEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "test_account": { + "description": "Indicates if the account is a test account. Test accounts are not a separate testing engineering environment. Test accounts use the same production environment as normal Klaviyo accounts. This feature is primarily UI based to reduce human errors", + "type": "boolean" + }, + "contact_information": { + "description": "Contact information for the account. This is used in email footers by default to comply with the CAN-SPAM act.", + "$ref": "#/components/schemas/ContactInformation" + }, + "industry": { + "description": "The kind of business and/or types of goods that the business sells. This is leveraged in Klaviyo analytics and guidance.", + "type": "string", + "example": "Software / SaaS", + "nullable": true + }, + "timezone": { + "description": "The account's timezone is used when displaying dates and times. This is an IANA timezone. See [the full list here ](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).", + "type": "string", + "example": "US/Eastern" + }, + "preferred_currency": { + "description": "The preferred currency for the account. This is the currency used for currency-based metrics in dashboards, analytics, coupons, and templates.", + "type": "string", + "example": "USD" + }, + "public_api_key": { + "description": "The Public API Key can be used for client-side API calls. [More info here](https://developers.klaviyo.com/en/docs/retrieve_api_credentials).", + "type": "string", + "example": "AbC123" + }, + "locale": { + "description": "The account's locale is used to determine the region and language for the account.", + "type": "string", + "example": "en-US" + } + }, + "required": [ + "test_account", + "contact_information", + "timezone", + "preferred_currency", + "public_api_key", + "locale" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetAccountResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetAccountResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/AccountResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetPushTokenResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/PushTokenResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "The profile associated with the push token", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetPushTokenResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/PushTokenResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "The profile associated with the push token", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetPushTokenProfileRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetImageResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "TemplateUniversalContentEnum": { + "type": "string", + "enum": [ + "template-universal-content" + ] + }, + "BlockEnum": { + "type": "string", + "enum": [ + "block" + ] + }, + "ButtonEnum": { + "type": "string", + "enum": [ + "button" + ] + }, + "ButtonBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/ButtonEnum" + }, + "data": { + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "CouponBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "Drop_shadowEnum": { + "type": "string", + "enum": [ + "drop_shadow" + ] + }, + "DropShadowBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/Drop_shadowEnum" + }, + "data": { + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "HeaderEnum": { + "type": "string", + "enum": [ + "header" + ] + }, + "HeaderBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/HeaderEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "Horizontal_ruleEnum": { + "type": "string", + "enum": [ + "horizontal_rule" + ] + }, + "HorizontalRuleBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/Horizontal_ruleEnum" + }, + "data": { + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "HtmlEnum": { + "type": "string", + "enum": [ + "html" + ] + }, + "ContentRepeat": { + "type": "object", + "properties": { + "repeat_for": { + "type": "string" + }, + "item_alias": { + "type": "string" + } + }, + "required": [ + "repeat_for", + "item_alias" + ] + }, + "BlockDisplayOptions": { + "type": "object", + "properties": { + "show_on": { + "description": "Show on.", + "type": "string", + "enum": [ + "all", + "desktop", + "mobile" + ], + "nullable": true + }, + "visible_check": { + "type": "string", + "nullable": true + }, + "content_repeat": { + "$ref": "#/components/schemas/ContentRepeat", + "nullable": true + } + } + }, + "HTMLBlockData": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "display_options": { + "$ref": "#/components/schemas/BlockDisplayOptions" + } + }, + "required": [ + "content", + "display_options" + ] + }, + "HTMLBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/HtmlEnum" + }, + "data": { + "$ref": "#/components/schemas/HTMLBlockData" + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "ImageBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/ImageEnum" + }, + "data": { + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "ProductEnum": { + "type": "string", + "enum": [ + "product" + ] + }, + "ProductBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/ProductEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "ReviewEnum": { + "type": "string", + "enum": [ + "review" + ] + }, + "ReviewBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "SocialEnum": { + "type": "string", + "enum": [ + "social" + ] + }, + "SocialBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/SocialEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "SpacerEnum": { + "type": "string", + "enum": [ + "spacer" + ] + }, + "SpacerBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/SpacerEnum" + }, + "data": { + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "SplitBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/SplitEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "TableEnum": { + "type": "string", + "enum": [ + "table" + ] + }, + "TableBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/TableEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "TextEnum": { + "type": "string", + "enum": [ + "text" + ] + }, + "TextBlockStyles": { + "type": "object", + "properties": { + "background_color": { + "type": "string", + "nullable": true + }, + "block_background_color": { + "type": "string", + "nullable": true + }, + "block_border_color": { + "type": "string", + "nullable": true + }, + "block_border_style": { + "description": "Border style.", + "type": "string", + "enum": [ + "dashed", + "dotted", + "groove", + "inset", + "none", + "outset", + "ridge", + "solid" + ], + "nullable": true + }, + "block_border_width": { + "type": "integer", + "nullable": true + }, + "block_padding_bottom": { + "type": "integer", + "nullable": true + }, + "block_padding_left": { + "type": "integer", + "nullable": true + }, + "block_padding_right": { + "type": "integer", + "nullable": true + }, + "block_padding_top": { + "type": "integer", + "nullable": true + }, + "color": { + "type": "string", + "nullable": true + }, + "extra_css_class": { + "type": "string", + "nullable": true + }, + "font_family": { + "type": "string", + "nullable": true + }, + "font_size": { + "type": "integer", + "nullable": true + }, + "font_style": { + "description": "Font style.", + "type": "string", + "enum": [ + "italic", + "normal" + ], + "nullable": true + }, + "font_weight": { + "type": "string", + "nullable": true + }, + "inner_padding_bottom": { + "type": "integer", + "nullable": true + }, + "inner_padding_left": { + "type": "integer", + "nullable": true + }, + "inner_padding_right": { + "type": "integer", + "nullable": true + }, + "inner_padding_top": { + "type": "integer", + "nullable": true + }, + "letter_spacing": { + "type": "integer", + "nullable": true + }, + "line_height": { + "type": "number", + "nullable": true + }, + "mobile_stretch_content": { + "type": "boolean", + "nullable": true + }, + "text_align": { + "description": "Text Alignment.", + "type": "string", + "enum": [ + "center", + "left", + "right" + ], + "nullable": true + }, + "text_decoration": { + "type": "string", + "nullable": true + }, + "text_table_layout": { + "description": "Text table layout.", + "type": "string", + "enum": [ + "auto", + "fixed", + "inherit", + "initial" + ], + "nullable": true + } + } + }, + "TextBlockData": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "display_options": { + "$ref": "#/components/schemas/BlockDisplayOptions" + }, + "styles": { + "$ref": "#/components/schemas/TextBlockStyles" + } + }, + "required": [ + "content", + "display_options", + "styles" + ] + }, + "TextBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/TextEnum" + }, + "data": { + "$ref": "#/components/schemas/TextBlockData" + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "UnsupportedBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/UnsupportedEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "VideoEnum": { + "type": "string", + "enum": [ + "video" + ] + }, + "VideoBlock": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/BlockEnum" + }, + "type": { + "$ref": "#/components/schemas/VideoEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "SectionEnum": { + "type": "string", + "enum": [ + "section" + ] + }, + "Section": { + "type": "object", + "properties": { + "content_type": { + "$ref": "#/components/schemas/SectionEnum" + }, + "type": { + "$ref": "#/components/schemas/SectionEnum" + }, + "data": { + "type": "string", + "nullable": true + } + }, + "required": [ + "content_type", + "type", + "data" + ] + }, + "UniversalContentResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateUniversalContentEnum" + }, + "id": { + "description": "The ID of the universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this universal content", + "type": "string" + }, + "definition": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ButtonBlock" + }, + { + "$ref": "#/components/schemas/CouponBlock" + }, + { + "$ref": "#/components/schemas/DropShadowBlock" + }, + { + "$ref": "#/components/schemas/HeaderBlock" + }, + { + "$ref": "#/components/schemas/HorizontalRuleBlock" + }, + { + "$ref": "#/components/schemas/HTMLBlock" + }, + { + "$ref": "#/components/schemas/ImageBlock" + }, + { + "$ref": "#/components/schemas/ProductBlock" + }, + { + "$ref": "#/components/schemas/ReviewBlock" + }, + { + "$ref": "#/components/schemas/SocialBlock" + }, + { + "$ref": "#/components/schemas/SpacerBlock" + }, + { + "$ref": "#/components/schemas/SplitBlock" + }, + { + "$ref": "#/components/schemas/TableBlock" + }, + { + "$ref": "#/components/schemas/TextBlock" + }, + { + "$ref": "#/components/schemas/UnsupportedBlock" + }, + { + "$ref": "#/components/schemas/VideoBlock" + }, + { + "$ref": "#/components/schemas/Section" + } + ] + }, + "created": { + "description": "The datetime when this universal content was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "updated": { + "description": "The datetime when this universal content was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "screenshot_status": { + "description": "The status of a universal content screenshot.", + "type": "string", + "enum": [ + "completed", + "failed", + "generating", + "never_generated", + "not_renderable", + "stale" + ] + }, + "screenshot_url": { + "type": "string" + } + }, + "required": [ + "name", + "created", + "updated", + "screenshot_status", + "screenshot_url" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetUniversalContentResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UniversalContentResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetUniversalContentResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/UniversalContentResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "RejectedEnum": { + "type": "string", + "enum": [ + "rejected" + ] + }, + "OtherEnum": { + "type": "string", + "enum": [ + "other" + ] + }, + "RejectReasonOther": { + "type": "object", + "properties": { + "reason": { + "description": "reject reason is other", + "$ref": "#/components/schemas/OtherEnum" + }, + "status_explanation": { + "description": "If review reject reason is other, we can provide further explanation", + "type": "string", + "example": "This review is just really poorly detailed and there is another with the same content", + "nullable": true + } + }, + "required": [ + "reason" + ] + }, + "FakeEnum": { + "type": "string", + "enum": [ + "fake" + ] + }, + "RejectReasonFake": { + "type": "object", + "properties": { + "reason": { + "description": "rejected due to fake content", + "$ref": "#/components/schemas/FakeEnum" + } + }, + "required": [ + "reason" + ] + }, + "False_or_misleadingEnum": { + "type": "string", + "enum": [ + "false_or_misleading" + ] + }, + "RejectReasonMisleading": { + "type": "object", + "properties": { + "reason": { + "description": "rejected due to false or misleading content", + "$ref": "#/components/schemas/False_or_misleadingEnum" + } + }, + "required": [ + "reason" + ] + }, + "Private_informationEnum": { + "type": "string", + "enum": [ + "private_information" + ] + }, + "RejectReasonPrivateInformation": { + "type": "object", + "properties": { + "reason": { + "description": "rejected due to private information", + "$ref": "#/components/schemas/Private_informationEnum" + } + }, + "required": [ + "reason" + ] + }, + "Profanity_or_inappropriateEnum": { + "type": "string", + "enum": [ + "profanity_or_inappropriate" + ] + }, + "RejectReasonProfanity": { + "type": "object", + "properties": { + "reason": { + "description": "rejected due to profanity or inappropriate content", + "$ref": "#/components/schemas/Profanity_or_inappropriateEnum" + } + }, + "required": [ + "reason" + ] + }, + "UnrelatedEnum": { + "type": "string", + "enum": [ + "unrelated" + ] + }, + "RejectReasonUnrelated": { + "type": "object", + "properties": { + "reason": { + "description": "rejected due to unrelated content", + "$ref": "#/components/schemas/UnrelatedEnum" + } + }, + "required": [ + "reason" + ] + }, + "ReviewStatusRejected": { + "type": "object", + "properties": { + "value": { + "description": "Rejected review status", + "$ref": "#/components/schemas/RejectedEnum" + }, + "rejection_reason": { + "description": "The updated status intended for the review with this ID", + "oneOf": [ + { + "$ref": "#/components/schemas/RejectReasonOther" + }, + { + "$ref": "#/components/schemas/RejectReasonFake" + }, + { + "$ref": "#/components/schemas/RejectReasonMisleading" + }, + { + "$ref": "#/components/schemas/RejectReasonPrivateInformation" + }, + { + "$ref": "#/components/schemas/RejectReasonProfanity" + }, + { + "$ref": "#/components/schemas/RejectReasonUnrelated" + } + ] + } + }, + "required": [ + "value", + "rejection_reason" + ] + }, + "FeaturedEnum": { + "type": "string", + "enum": [ + "featured" + ] + }, + "ReviewStatusFeatured": { + "type": "object", + "properties": { + "value": { + "description": "Featured review status", + "$ref": "#/components/schemas/FeaturedEnum" + } + }, + "required": [ + "value" + ] + }, + "PublishedEnum": { + "type": "string", + "enum": [ + "published" + ] + }, + "ReviewStatusPublished": { + "type": "object", + "properties": { + "value": { + "description": "Published review status", + "$ref": "#/components/schemas/PublishedEnum" + } + }, + "required": [ + "value" + ] + }, + "UnpublishedEnum": { + "type": "string", + "enum": [ + "unpublished" + ] + }, + "ReviewStatusUnpublished": { + "type": "object", + "properties": { + "value": { + "description": "Unpublished review status", + "$ref": "#/components/schemas/UnpublishedEnum" + } + }, + "required": [ + "value" + ] + }, + "PendingEnum": { + "type": "string", + "enum": [ + "pending" + ] + }, + "ReviewStatusPending": { + "type": "object", + "properties": { + "value": { + "description": "Pending review status", + "$ref": "#/components/schemas/PendingEnum" + } + }, + "required": [ + "value" + ] + }, + "ReviewProductDTO": { + "type": "object", + "properties": { + "url": { + "description": "The URL of the product", + "type": "string", + "example": "https://example.com/product/123" + }, + "name": { + "description": "The name of the product", + "type": "string" + }, + "image_url": { + "description": "The URL of the product image", + "type": "string", + "example": "https://example.com/image.jpg", + "nullable": true + }, + "external_id": { + "description": "The external ID of the product", + "type": "string", + "example": "123456789", + "nullable": true + } + }, + "required": [ + "url", + "name" + ] + }, + "ReviewPublicReply": { + "type": "object", + "properties": { + "content": { + "description": "The content of the public reply", + "example": "Thanks for the review!", + "type": "string" + }, + "author": { + "description": "The author of the public reply", + "type": "string", + "example": "Company X" + }, + "updated": { + "description": "The datetime when this public reply was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + } + }, + "required": [ + "content", + "author", + "updated" + ] + }, + "ReviewResponseDTOObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "id": { + "description": "The ID of the review", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "The email of the author of this review", + "type": "string", + "example": "john@doe.com", + "nullable": true + }, + "status": { + "description": "The status of this review", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ReviewStatusRejected" + }, + { + "$ref": "#/components/schemas/ReviewStatusFeatured" + }, + { + "$ref": "#/components/schemas/ReviewStatusPublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusUnpublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusPending" + } + ] + }, + "verified": { + "description": "The verification status of this review (aka whether or not we have confirmation that the customer bought the product)", + "type": "boolean", + "example": true + }, + "review_type": { + "description": "The type of this review — either a review, question, or rating", + "type": "string", + "example": "review", + "enum": [ + "question", + "rating", + "review", + "store" + ] + }, + "created": { + "description": "The datetime when this review was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "updated": { + "description": "The datetime when this review was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "images": { + "description": "The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://example.com/image1.jpg", + "https://example.com/image2.jpg" + ] + }, + "product": { + "description": "The product associated with this review", + "$ref": "#/components/schemas/ReviewProductDTO", + "nullable": true + }, + "rating": { + "description": "The rating of this review on a scale from 1-5. If the review type is \"question\", this field will be null.", + "type": "integer", + "example": 2, + "nullable": true + }, + "author": { + "description": "The author of this review", + "type": "string", + "example": "John D", + "nullable": true + }, + "content": { + "description": "The content of this review", + "example": "Great product! I love the smell. I will be buying again.", + "nullable": true, + "type": "string" + }, + "title": { + "description": "The title of this review", + "type": "string", + "example": "Smells great, would recommend", + "nullable": true + }, + "smart_quote": { + "description": "A quote from this review that summarizes the content", + "type": "string", + "example": "I love the smell", + "nullable": true + }, + "public_reply": { + "description": "The public reply to this review (if one exists)", + "$ref": "#/components/schemas/ReviewPublicReply", + "nullable": true + } + }, + "required": [ + "verified", + "review_type", + "created", + "updated", + "images" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetReviewResponseDTOCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ReviewResponseDTOObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "events": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "id": { + "description": "Related Events", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "item": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetReviewResponseDTOCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/ReviewResponseDTOObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "events": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "id": { + "description": "Related Events", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "item": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FormVersionABTest": { + "type": "object", + "properties": { + "variation_name": { + "description": "This is the name of the AB test variation.", + "type": "string" + } + }, + "required": [ + "variation_name" + ] + }, + "FormVersionEnum": { + "type": "string", + "enum": [ + "form-version" + ] + }, + "FormVersionResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormVersionEnum" + }, + "id": { + "description": "ID of the form version. Generated by Klaviyo.", + "type": "string", + "example": "1234567" + }, + "attributes": { + "type": "object", + "properties": { + "form_type": { + "description": "The type of form.", + "type": "string", + "enum": [ + "banner", + "embed", + "flyout", + "full_page", + "popup" + ] + }, + "variation_name": { + "description": "The name of the form version.", + "type": "string" + }, + "ab_test": { + "$ref": "#/components/schemas/FormVersionABTest", + "nullable": true + }, + "status": { + "description": "Status of the form version. \"live\" means it's live on site.", + "type": "string", + "enum": [ + "draft", + "live" + ] + }, + "created_at": { + "description": "ISO8601 timestamp when the form version was created.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + }, + "updated_at": { + "description": "ISO8601 timestamp when the form version was last updated.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + } + }, + "required": [ + "form_type", + "variation_name", + "status", + "created_at", + "updated_at" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "FormResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormEnum" + }, + "id": { + "description": "ID of the form. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "Name of the form.", + "type": "string", + "example": "Cyber Monday Deals" + }, + "status": { + "description": "Status of the form. A live form with an in-progress draft is considered \"live\".", + "type": "string", + "enum": [ + "draft", + "live" + ] + }, + "ab_test": { + "description": "Whether the form has an A/B test configured, regardless of its status.", + "type": "boolean" + }, + "created_at": { + "description": "ISO8601 timestamp when the form was created.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + }, + "updated_at": { + "description": "ISO8601 timestamp when the form was last updated.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + } + }, + "required": [ + "name", + "status", + "ab_test", + "created_at", + "updated_at" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetFormResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FormResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "form-versions": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "Padding": { + "type": "object", + "properties": { + "left": { + "type": "integer", + "default": 0 + }, + "right": { + "type": "integer", + "default": 0 + }, + "top": { + "type": "integer", + "default": 0 + }, + "bottom": { + "type": "integer", + "default": 0 + } + } + }, + "BorderStyle": { + "type": "object", + "properties": { + "radius": { + "type": "integer", + "example": 8, + "default": 8 + }, + "color": { + "type": "string", + "nullable": true + }, + "style": { + "description": "Border pattern enumeration.", + "type": "string", + "enum": [ + "dashed", + "dotted", + "solid" + ], + "nullable": true + }, + "thickness": { + "type": "integer", + "nullable": true + } + } + }, + "TextStyle": { + "type": "object", + "properties": { + "font_family": { + "example": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "default": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "oneOf": [ + { + "type": "string", + "enum": [ + "Arial Black,Arial", + "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "Century Gothic,AppleGothic,Arial", + "Comic Sans MS,Comic Sans,cursive", + "Courier", + "Courier New", + "Geneva,Arial", + "Georgia", + "Helvetica,Arial", + "Lucida Grande,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "MS Serif,Georgia", + "New York,Georgia", + "Palatino Linotype,Palatino,Georgia", + "Palatino,Georgia", + "Tahoma,sans-serif", + "Times New Roman", + "Trebuchet MS", + "Verdana" + ], + "description": "Web safe font enumeration." + }, + { + "type": "string" + } + ] + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "font_weight": { + "description": "Font weight enumeration.", + "type": "integer", + "example": 400, + "default": 400, + "enum": [ + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900 + ], + "nullable": true + }, + "text_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "character_spacing": { + "type": "integer", + "default": 0, + "nullable": true + } + } + }, + "ButtonStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "width": { + "description": "Valid button block widths.", + "type": "string", + "example": "fill", + "default": "fill", + "enum": [ + "fill", + "fit" + ] + }, + "height": { + "type": "integer", + "example": 50, + "default": 50 + }, + "hover_background_color": { + "type": "string", + "nullable": true + }, + "hover_text_color": { + "type": "string", + "nullable": true + }, + "border_styles": { + "$ref": "#/components/schemas/BorderStyle" + }, + "text_styles": { + "$ref": "#/components/schemas/TextStyle" + }, + "color": { + "type": "string", + "nullable": true + } + } + }, + "AdditionalField": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + }, + "ButtonProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "label": { + "type": "string" + }, + "additional_fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdditionalField" + }, + "nullable": true + } + }, + "required": [ + "label" + ] + }, + "CloseEnum": { + "type": "string", + "enum": [ + "close" + ] + }, + "CloseProperties": { + "type": "object", + "properties": { + "list_id": { + "type": "string", + "nullable": true + } + } + }, + "Close": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/CloseEnum" + }, + "properties": { + "$ref": "#/components/schemas/CloseProperties", + "nullable": true + } + }, + "required": [ + "submit", + "type" + ] + }, + "Next_stepEnum": { + "type": "string", + "enum": [ + "next_step" + ] + }, + "NextStepProperties": { + "type": "object", + "properties": { + "list_id": { + "type": "string", + "nullable": true + } + } + }, + "NextStep": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/Next_stepEnum" + }, + "properties": { + "$ref": "#/components/schemas/NextStepProperties", + "nullable": true + } + }, + "required": [ + "submit", + "type" + ] + }, + "Open_formEnum": { + "type": "string", + "enum": [ + "open_form" + ] + }, + "OpenFormProperties": { + "type": "object", + "properties": { + "close_form": { + "type": "boolean", + "example": true, + "default": true + }, + "form_id_to_open": { + "type": "string" + } + }, + "required": [ + "form_id_to_open" + ] + }, + "OpenForm": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Open_formEnum" + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "properties": { + "$ref": "#/components/schemas/OpenFormProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Promotional_sms_subscriptionEnum": { + "type": "string", + "enum": [ + "promotional_sms_subscription" + ] + }, + "PromotionalSMSSubscription": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "type": { + "$ref": "#/components/schemas/Promotional_sms_subscriptionEnum" + }, + "properties": { + "enum": [ + null + ] + } + }, + "required": [ + "type" + ] + }, + "RedirectEnum": { + "type": "string", + "enum": [ + "redirect" + ] + }, + "RedirectProperties": { + "type": "object", + "properties": { + "list_id": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string" + }, + "new_window": { + "type": "boolean", + "default": false + } + }, + "required": [ + "url" + ] + }, + "Redirect": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/RedirectEnum" + }, + "properties": { + "$ref": "#/components/schemas/RedirectProperties" + } + }, + "required": [ + "submit", + "type", + "properties" + ] + }, + "Resend_opt_in_codeEnum": { + "type": "string", + "enum": [ + "resend_opt_in_code" + ] + }, + "ResendOptInCode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean", + "default": false, + "enum": [ + false + ] + }, + "type": { + "$ref": "#/components/schemas/Resend_opt_in_codeEnum" + }, + "properties": { + "enum": [ + null + ] + } + }, + "required": [ + "type" + ] + }, + "Submit_opt_in_codeEnum": { + "type": "string", + "enum": [ + "submit_opt_in_code" + ] + }, + "SubmitOptInCode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "type": { + "$ref": "#/components/schemas/Submit_opt_in_codeEnum" + }, + "properties": { + "enum": [ + null + ] + } + }, + "required": [ + "type" + ] + }, + "Subscribe_via_smsEnum": { + "type": "string", + "enum": [ + "subscribe_via_sms" + ] + }, + "SubscribeViaSMSProperties": { + "type": "object", + "properties": { + "opt_in_keyword": { + "type": "string", + "nullable": true + }, + "opt_in_message": { + "type": "string" + }, + "sending_number": { + "type": "string", + "nullable": true + } + }, + "required": [ + "opt_in_keyword", + "opt_in_message", + "sending_number" + ] + }, + "SubscribeViaSMS": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "type": { + "$ref": "#/components/schemas/Subscribe_via_smsEnum" + }, + "properties": { + "$ref": "#/components/schemas/SubscribeViaSMSProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Subscribe_via_whatsappEnum": { + "type": "string", + "enum": [ + "subscribe_via_whatsapp" + ] + }, + "SubscribeViaWhatsAppProperties": { + "type": "object", + "properties": { + "opt_in_keyword": { + "type": "string", + "nullable": true + }, + "opt_in_message": { + "type": "string" + }, + "sending_number": { + "type": "string", + "nullable": true + } + }, + "required": [ + "opt_in_keyword", + "opt_in_message", + "sending_number" + ] + }, + "SubscribeViaWhatsApp": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "type": { + "$ref": "#/components/schemas/Subscribe_via_whatsappEnum" + }, + "properties": { + "$ref": "#/components/schemas/SubscribeViaWhatsAppProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Go_to_inboxEnum": { + "type": "string", + "enum": [ + "go_to_inbox" + ] + }, + "GoToInbox": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "type": { + "$ref": "#/components/schemas/Go_to_inboxEnum" + }, + "properties": { + "enum": [ + null + ] + } + }, + "required": [ + "type" + ] + }, + "Submit_back_in_stockEnum": { + "type": "string", + "enum": [ + "submit_back_in_stock" + ] + }, + "SubmitBackInStockProperties": { + "type": "object", + "properties": { + "list_id": { + "type": "string", + "nullable": true + } + } + }, + "SubmitBackInStock": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Submit_back_in_stockEnum" + }, + "properties": { + "$ref": "#/components/schemas/SubmitBackInStockProperties", + "nullable": true + }, + "submit": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + } + }, + "required": [ + "type" + ] + }, + "Skip_to_successEnum": { + "type": "string", + "enum": [ + "skip_to_success" + ] + }, + "SkipToSuccessProperties": { + "type": "object", + "maxProperties": 0 + }, + "SkipToSuccess": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Skip_to_successEnum" + }, + "submit": { + "type": "boolean", + "default": false, + "enum": [ + false + ] + }, + "properties": { + "$ref": "#/components/schemas/SkipToSuccessProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Button": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ButtonEnum" + }, + "styles": { + "$ref": "#/components/schemas/ButtonStyles" + }, + "properties": { + "$ref": "#/components/schemas/ButtonProperties" + }, + "action": { + "oneOf": [ + { + "$ref": "#/components/schemas/Close" + }, + { + "$ref": "#/components/schemas/NextStep" + }, + { + "$ref": "#/components/schemas/OpenForm" + }, + { + "$ref": "#/components/schemas/PromotionalSMSSubscription" + }, + { + "$ref": "#/components/schemas/Redirect" + }, + { + "$ref": "#/components/schemas/ResendOptInCode" + }, + { + "$ref": "#/components/schemas/SubmitOptInCode" + }, + { + "$ref": "#/components/schemas/SubscribeViaSMS" + }, + { + "$ref": "#/components/schemas/SubscribeViaWhatsApp" + }, + { + "$ref": "#/components/schemas/GoToInbox" + }, + { + "$ref": "#/components/schemas/SubmitBackInStock" + }, + { + "$ref": "#/components/schemas/SkipToSuccess" + } + ] + } + }, + "required": [ + "type", + "properties" + ] + }, + "Age_gateEnum": { + "type": "string", + "enum": [ + "age_gate" + ] + }, + "AgeGateStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "ErrorMessages": { + "type": "object", + "properties": { + "required": { + "type": "string", + "example": "This field is required", + "default": "This field is required" + }, + "invalid": { + "type": "string", + "example": "This field is invalid", + "default": "This field is invalid" + } + } + }, + "DollarSignAge_gated_date_of_birthEnum": { + "type": "string", + "enum": [ + "$age_gated_date_of_birth" + ] + }, + "AgeGateProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "property_name": { + "example": "$age_gated_date_of_birth", + "default": "$age_gated_date_of_birth", + "$ref": "#/components/schemas/DollarSignAge_gated_date_of_birthEnum" + }, + "date_format": { + "type": "string", + "example": "MM/DD/YYYY", + "default": "MM/DD/YYYY" + }, + "sms_country_code": { + "description": "SMS County Code Enum.", + "type": "string", + "example": "US", + "default": "US", + "enum": [ + "AT", + "AU", + "CH", + "DE", + "ES", + "FR", + "GB", + "IE", + "IT", + "PT", + "US" + ] + }, + "required": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + } + } + }, + "AgeGate": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Age_gateEnum" + }, + "styles": { + "$ref": "#/components/schemas/AgeGateStyles" + }, + "properties": { + "$ref": "#/components/schemas/AgeGateProperties" + }, + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + } + }, + "required": [ + "type", + "properties" + ] + }, + "CouponStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "text_styles": { + "$ref": "#/components/schemas/TextStyle" + }, + "border_styles": { + "$ref": "#/components/schemas/BorderStyle", + "nullable": true + }, + "coupon_background_color": { + "type": "string", + "example": "#EEEEEE", + "default": "#EEEEEE", + "nullable": true + } + } + }, + "UniqueEnum": { + "type": "string", + "enum": [ + "unique" + ] + }, + "UniqueCouponConfig": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/UniqueEnum" + }, + "id": { + "type": "integer", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "fallback_coupon_code": { + "type": "string", + "nullable": true + }, + "integration": { + "description": "Coupon integration types for unique coupon blocks.", + "type": "string", + "example": "shopify", + "default": "shopify", + "enum": [ + "api", + "magento_two", + "prestashop", + "shopify", + "uploaded", + "woocommerce" + ] + } + }, + "required": [ + "type" + ] + }, + "StaticCouponConfig": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/StaticEnum" + }, + "text": { + "type": "string", + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "CouponProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "coupon": { + "oneOf": [ + { + "$ref": "#/components/schemas/UniqueCouponConfig" + }, + { + "$ref": "#/components/schemas/StaticCouponConfig" + } + ] + }, + "success_message": { + "type": "string", + "nullable": true + } + }, + "required": [ + "coupon" + ] + }, + "Coupon": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "styles": { + "$ref": "#/components/schemas/CouponStyles" + }, + "properties": { + "$ref": "#/components/schemas/CouponProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "DateStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "DateProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "property_name": { + "type": "string" + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "date_format": { + "type": "string", + "example": "MM/DD", + "default": "MM/DD" + } + }, + "required": [ + "property_name" + ] + }, + "Date": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/DateEnum" + }, + "styles": { + "$ref": "#/components/schemas/DateStyles" + }, + "properties": { + "$ref": "#/components/schemas/DateProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "EmailStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "DollarSignEmailEnum": { + "type": "string", + "enum": [ + "$email" + ] + }, + "EmailProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "property_name": { + "example": "$email", + "default": "$email", + "$ref": "#/components/schemas/DollarSignEmailEnum" + } + } + }, + "Email": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/EmailEnum" + }, + "styles": { + "$ref": "#/components/schemas/EmailStyles" + }, + "properties": { + "$ref": "#/components/schemas/EmailProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Html_textEnum": { + "type": "string", + "enum": [ + "html_text" + ] + }, + "HTMLTextStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "HTMLTextProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "content": { + "default": "", + "type": "string" + } + } + }, + "HTMLText": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Html_textEnum" + }, + "styles": { + "$ref": "#/components/schemas/HTMLTextStyles" + }, + "properties": { + "$ref": "#/components/schemas/HTMLTextProperties" + } + }, + "required": [ + "type" + ] + }, + "Opt_in_codeEnum": { + "type": "string", + "enum": [ + "opt_in_code" + ] + }, + "OptInCodeStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "OptInCodeProperties": { + "type": "object", + "properties": { + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "property_name": { + "example": "opt_in_code", + "default": "opt_in_code", + "$ref": "#/components/schemas/Opt_in_codeEnum" + }, + "required": { + "type": "boolean", + "example": true, + "default": true, + "enum": [ + true + ] + }, + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + } + } + }, + "OptInCode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Opt_in_codeEnum" + }, + "styles": { + "$ref": "#/components/schemas/OptInCodeStyles" + }, + "properties": { + "$ref": "#/components/schemas/OptInCodeProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Phone_numberEnum": { + "type": "string", + "enum": [ + "phone_number" + ] + }, + "PhoneNumberStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "PhoneNumberConsentChannelSettings": { + "type": "object", + "properties": { + "consent_type": { + "description": "Consent Type Enum.", + "type": "string", + "enum": [ + "phone_number_only", + "promotional", + "transactional" + ], + "nullable": true + } + } + }, + "ChannelSettings": { + "type": "object", + "properties": { + "sms": { + "$ref": "#/components/schemas/PhoneNumberConsentChannelSettings" + }, + "whatsapp": { + "$ref": "#/components/schemas/PhoneNumberConsentChannelSettings" + } + } + }, + "PhoneNumberProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "property_name": { + "type": "string", + "example": "$phone_number", + "default": "$phone_number" + }, + "sms_consent_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "phone_number_only", + "promotional", + "transactional" + ], + "description": "Consent Type Enum." + }, + "nullable": true + }, + "channel_settings": { + "$ref": "#/components/schemas/ChannelSettings", + "nullable": true + } + } + }, + "PhoneNumber": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Phone_numberEnum" + }, + "styles": { + "$ref": "#/components/schemas/PhoneNumberStyles" + }, + "properties": { + "$ref": "#/components/schemas/PhoneNumberProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Promotional_sms_checkboxEnum": { + "type": "string", + "enum": [ + "promotional_sms_checkbox" + ] + }, + "SMSConsentCheckboxStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "horizontal_alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "left", + "default": "left", + "enum": [ + "center", + "left", + "right" + ] + } + } + }, + "Opt_in_promotional_smsEnum": { + "type": "string", + "enum": [ + "opt_in_promotional_sms" + ] + }, + "SMSConsentCheckboxProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "required": { + "type": "boolean", + "default": false, + "enum": [ + false + ] + }, + "property_name": { + "example": "opt_in_promotional_sms", + "default": "opt_in_promotional_sms", + "$ref": "#/components/schemas/Opt_in_promotional_smsEnum" + }, + "checkbox_text": { + "type": "string" + }, + "placeholder": { + "enum": [ + null + ] + }, + "channels": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "sms", + "whatsapp" + ], + "description": "Consent channel enumeration." + } + } + }, + "required": [ + "checkbox_text" + ] + }, + "SMSConsentCheckbox": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Promotional_sms_checkboxEnum" + }, + "styles": { + "$ref": "#/components/schemas/SMSConsentCheckboxStyles" + }, + "properties": { + "$ref": "#/components/schemas/SMSConsentCheckboxProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "TextStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "TextProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "property_name": { + "type": "string" + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + } + }, + "required": [ + "property_name" + ] + }, + "Text": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/TextEnum" + }, + "styles": { + "$ref": "#/components/schemas/TextStyles" + }, + "properties": { + "$ref": "#/components/schemas/TextProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "CheckboxesEnum": { + "type": "string", + "enum": [ + "checkboxes" + ] + }, + "CheckboxesStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "arrangement": { + "description": "Arrangement enumeration.", + "type": "string", + "example": "vertical", + "default": "vertical", + "enum": [ + "horizontal", + "vertical" + ] + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "left", + "default": "left", + "enum": [ + "center", + "left", + "right" + ] + } + } + }, + "PropertyOption": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "label", + "value" + ] + }, + "CheckboxesProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "property_name": { + "type": "string" + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyOption" + } + }, + "placeholder": { + "type": "string", + "nullable": true + } + }, + "required": [ + "property_name", + "options" + ] + }, + "Checkboxes": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/CheckboxesEnum" + }, + "styles": { + "$ref": "#/components/schemas/CheckboxesStyles" + }, + "properties": { + "$ref": "#/components/schemas/CheckboxesProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Radio_buttonsEnum": { + "type": "string", + "enum": [ + "radio_buttons" + ] + }, + "RadioButtonsStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "arrangement": { + "description": "Arrangement enumeration.", + "type": "string", + "example": "vertical", + "default": "vertical", + "enum": [ + "horizontal", + "vertical" + ] + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "left", + "default": "left", + "enum": [ + "center", + "left", + "right" + ] + } + } + }, + "RadioButtonsProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "property_name": { + "type": "string" + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyOption" + } + }, + "placeholder": { + "type": "string", + "nullable": true + } + }, + "required": [ + "property_name", + "options" + ] + }, + "RadioButtons": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Radio_buttonsEnum" + }, + "styles": { + "$ref": "#/components/schemas/RadioButtonsStyles" + }, + "properties": { + "$ref": "#/components/schemas/RadioButtonsProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "DropdownEnum": { + "type": "string", + "enum": [ + "dropdown" + ] + }, + "DropdownStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "DropdownProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "property_name": { + "type": "string" + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "required": { + "type": "boolean", + "default": false, + "nullable": true + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyOption" + } + }, + "placeholder": { + "type": "string", + "nullable": true + } + }, + "required": [ + "property_name", + "options" + ] + }, + "Dropdown": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/DropdownEnum" + }, + "styles": { + "$ref": "#/components/schemas/DropdownStyles" + }, + "properties": { + "$ref": "#/components/schemas/DropdownProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "ImageStyles": { + "type": "object", + "properties": { + "horizontal_alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "center", + "left", + "right" + ] + }, + "width": { + "type": "integer", + "nullable": true + }, + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "ImageAssetProperties": { + "type": "object", + "properties": { + "src": { + "type": "string", + "nullable": true + }, + "alt_text": { + "type": "string", + "nullable": true + }, + "original_image_url": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "nullable": true + }, + "asset_id": { + "type": "integer", + "nullable": true + } + } + }, + "ImageProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "image": { + "$ref": "#/components/schemas/ImageAssetProperties", + "nullable": true + }, + "additional_fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdditionalField" + }, + "nullable": true + } + }, + "required": [ + "image" + ] + }, + "Image": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ImageEnum" + }, + "styles": { + "$ref": "#/components/schemas/ImageStyles" + }, + "properties": { + "$ref": "#/components/schemas/ImageProperties" + }, + "action": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/Close" + }, + { + "$ref": "#/components/schemas/NextStep" + }, + { + "$ref": "#/components/schemas/OpenForm" + }, + { + "$ref": "#/components/schemas/PromotionalSMSSubscription" + }, + { + "$ref": "#/components/schemas/Redirect" + }, + { + "$ref": "#/components/schemas/ResendOptInCode" + }, + { + "$ref": "#/components/schemas/SubmitOptInCode" + }, + { + "$ref": "#/components/schemas/SubscribeViaSMS" + }, + { + "$ref": "#/components/schemas/SubscribeViaWhatsApp" + }, + { + "$ref": "#/components/schemas/GoToInbox" + }, + { + "$ref": "#/components/schemas/SubmitBackInStock" + }, + { + "$ref": "#/components/schemas/SkipToSuccess" + } + ] + } + }, + "required": [ + "type", + "properties" + ] + }, + "Countdown_timerEnum": { + "type": "string", + "enum": [ + "countdown_timer" + ] + }, + "CountdownTimerStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "text_styles": { + "$ref": "#/components/schemas/TextStyle" + }, + "card_color": { + "type": "string", + "example": "rgba(100,100,100, 1.0)", + "default": "rgba(100,100,100, 1.0)" + }, + "label_font_size": { + "type": "integer", + "example": 12, + "default": 12 + }, + "label_font_weight": { + "description": "Font weight enumeration.", + "type": "integer", + "example": 400, + "default": 400, + "enum": [ + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900 + ] + } + } + }, + "FixedEnum": { + "type": "string", + "enum": [ + "fixed" + ] + }, + "FixedTimerConfiguration": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FixedEnum" + }, + "timezone": { + "type": "string", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Asmera", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Timbuktu", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/ComodRivadavia", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Atka", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Buenos_Aires", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Catamarca", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Coral_Harbour", + "America/Cordoba", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Ensenada", + "America/Fort_Nelson", + "America/Fort_Wayne", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Indianapolis", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Jujuy", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Knox_IN", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Louisville", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Mendoza", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montreal", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Acre", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Rosario", + "America/Santa_Isabel", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Shiprock", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Virgin", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/South_Pole", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Ashkhabad", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Calcutta", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Chongqing", + "Asia/Chungking", + "Asia/Colombo", + "Asia/Dacca", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Harbin", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kashgar", + "Asia/Kathmandu", + "Asia/Katmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macao", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Rangoon", + "Asia/Riyadh", + "Asia/Saigon", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Tel_Aviv", + "Asia/Thimbu", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ujung_Pandang", + "Asia/Ulaanbaatar", + "Asia/Ulan_Bator", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faeroe", + "Atlantic/Faroe", + "Atlantic/Jan_Mayen", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/ACT", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Canberra", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/LHI", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/NSW", + "Australia/North", + "Australia/Perth", + "Australia/Queensland", + "Australia/South", + "Australia/Sydney", + "Australia/Tasmania", + "Australia/Victoria", + "Australia/West", + "Australia/Yancowinna", + "Brazil/Acre", + "Brazil/DeNoronha", + "Brazil/East", + "Brazil/West", + "CET", + "CST6CDT", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Canada/Saskatchewan", + "Canada/Yukon", + "Chile/Continental", + "Chile/EasterIsland", + "Cuba", + "EET", + "EST", + "EST5EDT", + "Egypt", + "Eire", + "Etc/GMT", + "Etc/GMT+0", + "Etc/GMT+1", + "Etc/GMT+10", + "Etc/GMT+11", + "Etc/GMT+12", + "Etc/GMT+2", + "Etc/GMT+3", + "Etc/GMT+4", + "Etc/GMT+5", + "Etc/GMT+6", + "Etc/GMT+7", + "Etc/GMT+8", + "Etc/GMT+9", + "Etc/GMT-0", + "Etc/GMT-1", + "Etc/GMT-10", + "Etc/GMT-11", + "Etc/GMT-12", + "Etc/GMT-13", + "Etc/GMT-14", + "Etc/GMT-2", + "Etc/GMT-3", + "Etc/GMT-4", + "Etc/GMT-5", + "Etc/GMT-6", + "Etc/GMT-7", + "Etc/GMT-8", + "Etc/GMT-9", + "Etc/GMT0", + "Etc/Greenwich", + "Etc/UCT", + "Etc/UTC", + "Etc/Universal", + "Etc/Zulu", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belfast", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Nicosia", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Tiraspol", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "GB", + "GB-Eire", + "GMT", + "GMT+0", + "GMT-0", + "GMT0", + "Greenwich", + "HST", + "Hongkong", + "Iceland", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Iran", + "Israel", + "Jamaica", + "Japan", + "Kwajalein", + "Libya", + "MET", + "MST", + "MST7MDT", + "Mexico/BajaNorte", + "Mexico/BajaSur", + "Mexico/General", + "NZ", + "NZ-CHAT", + "Navajo", + "PRC", + "PST8PDT", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Johnston", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Ponape", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Samoa", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Truk", + "Pacific/Wake", + "Pacific/Wallis", + "Pacific/Yap", + "Poland", + "Portugal", + "ROC", + "ROK", + "Singapore", + "Turkey", + "UCT", + "US/Alaska", + "US/Aleutian", + "US/Arizona", + "US/Central", + "US/East-Indiana", + "US/Eastern", + "US/Hawaii", + "US/Indiana-Starke", + "US/Michigan", + "US/Mountain", + "US/Pacific", + "US/Samoa", + "UTC", + "Universal", + "W-SU", + "WET", + "Zulu" + ] + }, + "end_time": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + } + }, + "required": [ + "type", + "timezone" + ] + }, + "VariableEnum": { + "type": "string", + "enum": [ + "variable" + ] + }, + "VariableTimerConfiguration": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/VariableEnum" + }, + "days": { + "type": "integer" + }, + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + } + }, + "required": [ + "type", + "days", + "hours", + "minutes" + ] + }, + "CountdownTimerProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "clock_face": { + "description": "Options for displaying a timer.", + "type": "string", + "example": "simple", + "default": "simple", + "enum": [ + "flip", + "simple" + ] + }, + "animation": { + "description": "Options for timer completion animations.", + "type": "string", + "example": "heartbeat", + "default": "heartbeat", + "enum": [ + "flash", + "heartbeat", + "pulse" + ], + "nullable": true + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/components/schemas/FixedTimerConfiguration" + }, + { + "$ref": "#/components/schemas/VariableTimerConfiguration" + } + ] + } + }, + "required": [ + "configuration" + ] + }, + "CountdownTimer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Countdown_timerEnum" + }, + "styles": { + "$ref": "#/components/schemas/CountdownTimerStyles" + }, + "properties": { + "$ref": "#/components/schemas/CountdownTimerProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Signup_counterEnum": { + "type": "string", + "enum": [ + "signup_counter" + ] + }, + "SignupCounterStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "SignupCounterProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "timeframe": { + "description": "Timeframes for the signup counter lookback.", + "type": "string", + "enum": [ + "1_hour", + "24_hours", + "30_days", + "7_days" + ] + }, + "min_submits": { + "type": "integer" + }, + "content": { + "type": "string" + } + }, + "required": [ + "timeframe", + "min_submits", + "content" + ] + }, + "SignupCounter": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Signup_counterEnum" + }, + "styles": { + "$ref": "#/components/schemas/SignupCounterStyles" + }, + "properties": { + "$ref": "#/components/schemas/SignupCounterProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "SpinToWinSliceConfig": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "probability": { + "type": "integer" + }, + "step_id": { + "type": "string" + } + }, + "required": [ + "label", + "probability", + "step_id" + ] + }, + "SpinToWinProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "duplicate_slices": { + "type": "boolean", + "default": false + }, + "slices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpinToWinSliceConfig" + } + } + }, + "required": [ + "slices" + ] + }, + "Spin_to_winEnum": { + "type": "string", + "enum": [ + "spin_to_win" + ] + }, + "SpinToWinSliceStyle": { + "type": "object", + "properties": { + "background_color": { + "type": "string", + "example": "rgba(0,0,0,1)", + "default": "rgba(0,0,0,1)" + }, + "text_color": { + "type": "string", + "example": "rgba(255,255,255,1)", + "default": "rgba(255,255,255,1)" + } + } + }, + "SpinToWinStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "slice_styles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpinToWinSliceStyle" + } + }, + "text_styles": { + "$ref": "#/components/schemas/TextStyle" + }, + "center_color": { + "type": "string", + "example": "rgba(255,255,255,1)", + "default": "rgba(255,255,255,1)" + }, + "outline_color": { + "type": "string", + "example": "rgba(0,0,0,1)", + "default": "rgba(0,0,0,1)" + }, + "outline_thickness": { + "type": "integer", + "example": 12, + "default": 12 + }, + "pin_color": { + "type": "string", + "example": "rgba(255,255,255,1)", + "default": "rgba(255,255,255,1)" + }, + "wheel_size": { + "type": "integer", + "example": 400, + "default": 400 + } + } + }, + "SpinToWin": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/SpinToWinProperties" + }, + "type": { + "$ref": "#/components/schemas/Spin_to_winEnum" + }, + "styles": { + "$ref": "#/components/schemas/SpinToWinStyles" + } + }, + "required": [ + "properties", + "type" + ] + }, + "Sms_disclosureEnum": { + "type": "string", + "enum": [ + "sms_disclosure" + ] + }, + "SMSDisclosureTextStyle": { + "type": "object", + "properties": { + "font_family": { + "example": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "default": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "oneOf": [ + { + "type": "string", + "enum": [ + "Arial Black,Arial", + "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "Century Gothic,AppleGothic,Arial", + "Comic Sans MS,Comic Sans,cursive", + "Courier", + "Courier New", + "Geneva,Arial", + "Georgia", + "Helvetica,Arial", + "Lucida Grande,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "MS Serif,Georgia", + "New York,Georgia", + "Palatino Linotype,Palatino,Georgia", + "Palatino,Georgia", + "Tahoma,sans-serif", + "Times New Roman", + "Trebuchet MS", + "Verdana" + ], + "description": "Web safe font enumeration." + }, + { + "type": "string" + } + ] + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "font_weight": { + "description": "Font weight enumeration.", + "type": "integer", + "example": 400, + "default": 400, + "enum": [ + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900 + ], + "nullable": true + }, + "text_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "character_spacing": { + "type": "integer", + "default": 0, + "nullable": true + } + } + }, + "SMSDisclosureStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "link_styles": { + "$ref": "#/components/schemas/SMSDisclosureTextStyle" + }, + "text_styles": { + "$ref": "#/components/schemas/SMSDisclosureTextStyle" + } + } + }, + "CustomEnum": { + "type": "string", + "enum": [ + "custom" + ] + }, + "SMSDisclosureCustom": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomEnum" + }, + "compliance_company_name": { + "type": "string", + "example": "[company name]", + "default": "[company name]" + }, + "privacy_policy_url": { + "type": "string", + "example": "[link]", + "default": "[link]" + }, + "terms_of_service_url": { + "type": "string", + "example": "[link]", + "default": "[link]" + }, + "html": { + "type": "string", + "default": "" + } + }, + "required": [ + "type" + ] + }, + "Account_defaultEnum": { + "type": "string", + "enum": [ + "account_default" + ] + }, + "SMSDisclosureAccountDefault": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/Account_defaultEnum" + }, + "html": { + "nullable": true + } + }, + "required": [ + "type" + ] + }, + "SMSDisclosureProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "content": { + "oneOf": [ + { + "$ref": "#/components/schemas/SMSDisclosureCustom" + }, + { + "$ref": "#/components/schemas/SMSDisclosureAccountDefault" + } + ] + } + } + }, + "SMSDisclosure": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Sms_disclosureEnum" + }, + "styles": { + "$ref": "#/components/schemas/SMSDisclosureStyles" + }, + "properties": { + "$ref": "#/components/schemas/SMSDisclosureProperties" + } + }, + "required": [ + "type" + ] + }, + "Bis_promotional_email_checkboxEnum": { + "type": "string", + "enum": [ + "bis_promotional_email_checkbox" + ] + }, + "BackInStockEmailConsentCheckboxStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "horizontal_alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "left", + "default": "left", + "enum": [ + "center", + "left", + "right" + ] + } + } + }, + "Opt_in_promotional_emailEnum": { + "type": "string", + "enum": [ + "opt_in_promotional_email" + ] + }, + "BackInStockEmailConsentCheckboxProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "label": { + "type": "string", + "nullable": true + }, + "show_label": { + "type": "boolean", + "default": false + }, + "error_messages": { + "$ref": "#/components/schemas/ErrorMessages", + "nullable": true + }, + "required": { + "type": "boolean", + "default": false, + "enum": [ + false + ] + }, + "property_name": { + "example": "opt_in_promotional_email", + "default": "opt_in_promotional_email", + "$ref": "#/components/schemas/Opt_in_promotional_emailEnum" + }, + "checkbox_text": { + "type": "string" + }, + "placeholder": { + "enum": [ + null + ] + } + }, + "required": [ + "checkbox_text" + ] + }, + "BackInStockEmailConsentCheckbox": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Bis_promotional_email_checkboxEnum" + }, + "styles": { + "$ref": "#/components/schemas/BackInStockEmailConsentCheckboxStyles" + }, + "properties": { + "$ref": "#/components/schemas/BackInStockEmailConsentCheckboxProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "RatingStyle": { + "type": "object", + "properties": { + "color": { + "type": "string", + "example": "#F8BE00", + "default": "#F8BE00" + }, + "empty_color": { + "type": "string", + "example": "#EBEEEF", + "default": "#EBEEEF" + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "shape": { + "description": "Enumeration for review shapes.", + "type": "string", + "example": "star", + "default": "star", + "enum": [ + "circle", + "heart", + "star" + ] + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "center", + "left", + "right" + ] + }, + "character_spacing": { + "type": "number", + "default": 0 + } + } + }, + "QuoteStyle": { + "type": "object", + "properties": { + "font_family": { + "type": "string", + "example": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "default": "Arial, 'Helvetica Neue', Helvetica, sans-serif" + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "text_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "character_spacing": { + "type": "integer", + "default": 0 + }, + "font_weight": { + "type": "integer", + "example": 400, + "default": 400 + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "center", + "left", + "right" + ] + }, + "line_height": { + "type": "number", + "example": 1.5, + "default": 1.5 + } + } + }, + "ReviewerNameStyle": { + "type": "object", + "properties": { + "layout": { + "description": "Enumeration for review name layouts.", + "type": "string", + "example": "stacked", + "default": "stacked", + "enum": [ + "inline", + "stacked" + ] + }, + "font_family": { + "type": "string", + "example": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "default": "Arial, 'Helvetica Neue', Helvetica, sans-serif" + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "text_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "character_spacing": { + "type": "integer", + "default": 0 + }, + "font_weight": { + "type": "integer", + "example": 400, + "default": 400 + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "center", + "left", + "right" + ] + }, + "line_height": { + "type": "number", + "example": 1.5, + "default": 1.5 + } + } + }, + "ReviewStyles": { + "type": "object", + "properties": { + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "background_color": { + "type": "string", + "nullable": true + }, + "rating_style": { + "$ref": "#/components/schemas/RatingStyle" + }, + "quote_style": { + "$ref": "#/components/schemas/QuoteStyle" + }, + "reviewer_name_style": { + "$ref": "#/components/schemas/ReviewerNameStyle" + }, + "block_background_color": { + "type": "string", + "example": "rgba(255, 255, 255, 0)", + "default": "rgba(255, 255, 255, 0)" + } + } + }, + "ReviewProperties": { + "type": "object", + "properties": { + "display_device": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + }, + "author": { + "type": "string", + "nullable": true + }, + "content": { + "nullable": true, + "type": "string" + }, + "rating": { + "type": "integer", + "example": 5, + "default": 5 + }, + "verified": { + "type": "boolean", + "default": false + }, + "review_id": { + "type": "integer", + "nullable": true + }, + "show_rating": { + "type": "boolean", + "example": true, + "default": true + }, + "show_author": { + "type": "boolean", + "example": true, + "default": true + }, + "show_verified": { + "type": "boolean", + "example": true, + "default": true + } + } + }, + "Review": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "styles": { + "$ref": "#/components/schemas/ReviewStyles" + }, + "properties": { + "$ref": "#/components/schemas/ReviewProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Row": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "blocks": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/Button" + }, + { + "$ref": "#/components/schemas/AgeGate" + }, + { + "$ref": "#/components/schemas/Coupon" + }, + { + "$ref": "#/components/schemas/Date" + }, + { + "$ref": "#/components/schemas/Email" + }, + { + "$ref": "#/components/schemas/HTMLText" + }, + { + "$ref": "#/components/schemas/OptInCode" + }, + { + "$ref": "#/components/schemas/PhoneNumber" + }, + { + "$ref": "#/components/schemas/SMSConsentCheckbox" + }, + { + "$ref": "#/components/schemas/Text" + }, + { + "$ref": "#/components/schemas/Checkboxes" + }, + { + "$ref": "#/components/schemas/RadioButtons" + }, + { + "$ref": "#/components/schemas/Dropdown" + }, + { + "$ref": "#/components/schemas/Image" + }, + { + "$ref": "#/components/schemas/CountdownTimer" + }, + { + "$ref": "#/components/schemas/SignupCounter" + }, + { + "$ref": "#/components/schemas/SpinToWin" + }, + { + "$ref": "#/components/schemas/SMSDisclosure" + }, + { + "$ref": "#/components/schemas/BackInStockEmailConsentCheckbox" + }, + { + "$ref": "#/components/schemas/Review" + } + ] + } + } + }, + "required": [ + "blocks" + ] + }, + "BackgroundImageStyles": { + "type": "object", + "properties": { + "horizontal_alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "center", + "left", + "right" + ] + }, + "width": { + "type": "integer", + "nullable": true + }, + "position": { + "description": "Image position enumeration.", + "type": "string", + "example": "contain", + "default": "contain", + "enum": [ + "contain", + "cover", + "custom" + ] + }, + "vertical_alignment": { + "description": "Vertical alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "bottom", + "center", + "top" + ] + }, + "custom_width": { + "type": "integer", + "nullable": true + } + } + }, + "BackgroundImage": { + "type": "object", + "properties": { + "styles": { + "$ref": "#/components/schemas/BackgroundImageStyles" + }, + "properties": { + "$ref": "#/components/schemas/ImageAssetProperties" + } + }, + "required": [ + "properties" + ] + }, + "ColumnStyles": { + "type": "object", + "properties": { + "background_image": { + "$ref": "#/components/schemas/BackgroundImage", + "nullable": true + }, + "background_color": { + "type": "string", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "rows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Row" + } + }, + "styles": { + "$ref": "#/components/schemas/ColumnStyles", + "nullable": true + } + } + }, + "Step": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + } + }, + "name": { + "type": "string", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Step" + }, + "nullable": true + } + }, + "required": [ + "columns" + ] + }, + "After_close_or_submit_timeoutEnum": { + "type": "string", + "enum": [ + "after_close_or_submit_timeout" + ] + }, + "AfterCloseTimeoutProperties": { + "type": "object", + "properties": { + "timeout_days": { + "type": "integer", + "example": 5, + "default": 5 + } + } + }, + "AfterCloseTimeout": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/After_close_or_submit_timeoutEnum" + }, + "properties": { + "$ref": "#/components/schemas/AfterCloseTimeoutProperties" + } + }, + "required": [ + "type" + ] + }, + "Cart_item_countEnum": { + "type": "string", + "enum": [ + "cart_item_count" + ] + }, + "CartItemCountProperties": { + "type": "object", + "properties": { + "comparison": { + "description": "Number comparison enumeration.", + "type": "string", + "enum": [ + "equals", + "greater_than", + "less_than" + ], + "nullable": true + }, + "value": { + "type": "integer", + "nullable": true + } + } + }, + "CartItemCount": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Cart_item_countEnum" + }, + "properties": { + "$ref": "#/components/schemas/CartItemCountProperties" + } + }, + "required": [ + "type" + ] + }, + "Cart_productEnum": { + "type": "string", + "enum": [ + "cart_product" + ] + }, + "CartProductProperties": { + "type": "object", + "properties": { + "type": { + "description": "Product descriptor enumeration.", + "type": "string", + "enum": [ + "brand", + "categories", + "id", + "name" + ], + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + } + }, + "CartProduct": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Cart_productEnum" + }, + "properties": { + "$ref": "#/components/schemas/CartProductProperties" + } + }, + "required": [ + "type" + ] + }, + "Cart_valueEnum": { + "type": "string", + "enum": [ + "cart_value" + ] + }, + "CartValueProperties": { + "type": "object", + "properties": { + "comparison": { + "description": "Number comparison enumeration.", + "type": "string", + "enum": [ + "equals", + "greater_than", + "less_than" + ], + "nullable": true + }, + "value": { + "type": "number", + "nullable": true + } + } + }, + "CartValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Cart_valueEnum" + }, + "properties": { + "$ref": "#/components/schemas/CartValueProperties" + } + }, + "required": [ + "type" + ] + }, + "ChannelEnum": { + "type": "string", + "enum": [ + "channel" + ] + }, + "ChannelProperties": { + "type": "object", + "properties": { + "channel": { + "description": "Channel type enumeration.", + "type": "string", + "enum": [ + "email", + "sms" + ] + } + }, + "required": [ + "channel" + ] + }, + "Channel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ChannelEnum" + }, + "properties": { + "$ref": "#/components/schemas/ChannelProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "TriggerBaseProperties": { + "type": "object", + "maxProperties": 0 + }, + "Custom_javascriptEnum": { + "type": "string", + "enum": [ + "custom_javascript" + ] + }, + "CustomJavascript": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/TriggerBaseProperties" + }, + "type": { + "$ref": "#/components/schemas/Custom_javascriptEnum" + } + }, + "required": [ + "type" + ] + }, + "DelayEnum": { + "type": "string", + "enum": [ + "delay" + ] + }, + "DelayProperties": { + "type": "object", + "properties": { + "seconds": { + "type": "integer", + "example": 5, + "default": 5 + } + } + }, + "Delay": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/DelayEnum" + }, + "properties": { + "$ref": "#/components/schemas/DelayProperties" + } + }, + "required": [ + "type" + ] + }, + "DeviceEnum": { + "type": "string", + "enum": [ + "device" + ] + }, + "DeviceProperties": { + "type": "object", + "properties": { + "device": { + "description": "Enumeration for mobile and desktop.", + "type": "string", + "example": "desktop", + "default": "desktop", + "enum": [ + "both", + "desktop", + "mobile" + ] + } + } + }, + "Device": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/DeviceEnum" + }, + "properties": { + "$ref": "#/components/schemas/DeviceProperties" + } + }, + "required": [ + "type" + ] + }, + "Exit_intentEnum": { + "type": "string", + "enum": [ + "exit_intent" + ] + }, + "ExitIntent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/TriggerBaseProperties" + }, + "type": { + "$ref": "#/components/schemas/Exit_intentEnum" + } + }, + "required": [ + "type" + ] + }, + "Identified_profilesEnum": { + "type": "string", + "enum": [ + "identified_profiles" + ] + }, + "IdentifiedProfiles": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/TriggerBaseProperties" + }, + "type": { + "$ref": "#/components/schemas/Identified_profilesEnum" + } + }, + "required": [ + "type" + ] + }, + "Lists_and_segmentsEnum": { + "type": "string", + "enum": [ + "lists_and_segments" + ] + }, + "ListsAndSegmentsProperties": { + "type": "object", + "properties": { + "allow_list": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "deny_list": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + }, + "ListsAndSegments": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Lists_and_segmentsEnum" + }, + "properties": { + "$ref": "#/components/schemas/ListsAndSegmentsProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "LocationEnum": { + "type": "string", + "enum": [ + "location" + ] + }, + "LocationProperties": { + "type": "object", + "properties": { + "allow_list": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "enum": [ + "con_AF", + "con_AS", + "con_EU", + "con_EUP", + "con_NA", + "con_OC", + "con_SA" + ], + "description": "Geographic Regions." + }, + { + "type": "string", + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AN", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BM", + "BN", + "BO", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SC", + "SD", + "SE", + "SG", + "SI", + "SK", + "SN", + "SR", + "SV", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TH", + "TJ", + "TN", + "TO", + "TR", + "TT", + "TW", + "UA", + "UG", + "UM", + "US", + "UY", + "VA", + "VE", + "VG", + "VI", + "VN", + "YE", + "YT", + "ZA", + "ZM", + "ZW" + ], + "description": "Geographic Country - ISO 3166-1 alpha-2 country codes." + } + ] + }, + "nullable": true + }, + "deny_list": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "enum": [ + "con_AF", + "con_AS", + "con_EU", + "con_EUP", + "con_NA", + "con_OC", + "con_SA" + ], + "description": "Geographic Regions." + }, + { + "type": "string", + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AN", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BM", + "BN", + "BO", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SC", + "SD", + "SE", + "SG", + "SI", + "SK", + "SN", + "SR", + "SV", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TH", + "TJ", + "TN", + "TO", + "TR", + "TT", + "TW", + "UA", + "UG", + "UM", + "US", + "UY", + "VA", + "VE", + "VG", + "VI", + "VN", + "YE", + "YT", + "ZA", + "ZM", + "ZW" + ], + "description": "Geographic Country - ISO 3166-1 alpha-2 country codes." + } + ] + }, + "nullable": true + } + } + }, + "Location": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/LocationEnum" + }, + "properties": { + "$ref": "#/components/schemas/LocationProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Page_visitsEnum": { + "type": "string", + "enum": [ + "page_visits" + ] + }, + "PageVisitsProperties": { + "type": "object", + "properties": { + "pages": { + "type": "integer", + "example": 3, + "default": 3 + } + } + }, + "PageVisits": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Page_visitsEnum" + }, + "properties": { + "$ref": "#/components/schemas/PageVisitsProperties" + } + }, + "required": [ + "type" + ] + }, + "Previously_submittedEnum": { + "type": "string", + "enum": [ + "previously_submitted" + ] + }, + "PreviouslySubmitted": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/TriggerBaseProperties" + }, + "type": { + "$ref": "#/components/schemas/Previously_submittedEnum" + } + }, + "required": [ + "type" + ] + }, + "Profile_event_trackedEnum": { + "type": "string", + "enum": [ + "profile_event_tracked" + ] + }, + "ProfileEventTrackedProperties": { + "type": "object", + "properties": { + "metric": { + "type": "string" + } + }, + "required": [ + "metric" + ] + }, + "ProfileEventTracked": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Profile_event_trackedEnum" + }, + "properties": { + "$ref": "#/components/schemas/ProfileEventTrackedProperties" + } + }, + "required": [ + "type", + "properties" + ] + }, + "Scroll_percentageEnum": { + "type": "string", + "enum": [ + "scroll_percentage" + ] + }, + "ScrollProperties": { + "type": "object", + "properties": { + "percentage": { + "type": "integer", + "example": 30, + "default": 30 + } + } + }, + "Scroll": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Scroll_percentageEnum" + }, + "properties": { + "$ref": "#/components/schemas/ScrollProperties" + } + }, + "required": [ + "type" + ] + }, + "Unidentified_profilesEnum": { + "type": "string", + "enum": [ + "unidentified_profiles" + ] + }, + "UnidentifiedProfiles": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/TriggerBaseProperties" + }, + "type": { + "$ref": "#/components/schemas/Unidentified_profilesEnum" + } + }, + "required": [ + "type" + ] + }, + "Url_patternsEnum": { + "type": "string", + "enum": [ + "url_patterns" + ] + }, + "URLPatternsProperties": { + "type": "object", + "properties": { + "allow_list": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "deny_list": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + }, + "URLPatterns": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Url_patternsEnum" + }, + "properties": { + "$ref": "#/components/schemas/URLPatternsProperties" + } + }, + "required": [ + "type" + ] + }, + "BackInStockProperties": { + "type": "object", + "properties": { + "tag_allowlist": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag_blocklist": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "BackInStock": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Back_in_stockEnum" + }, + "properties": { + "$ref": "#/components/schemas/BackInStockProperties" + } + }, + "required": [ + "type" + ] + }, + "DropShadow": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": false + }, + "blur": { + "type": "integer", + "example": 30, + "default": 30 + }, + "color": { + "type": "string", + "example": "rgba(0,0,0,0.15)", + "default": "rgba(0,0,0,0.15)", + "nullable": true + } + } + }, + "Margin": { + "type": "object", + "properties": { + "left": { + "type": "integer", + "default": 0 + }, + "right": { + "type": "integer", + "default": 0 + }, + "top": { + "type": "integer", + "default": 0 + }, + "bottom": { + "type": "integer", + "default": 0 + } + } + }, + "CloseButtonStyle": { + "type": "object", + "properties": { + "background_color": { + "type": "string", + "example": "rgba(180, 187, 195, 0.65)", + "default": "rgba(180, 187, 195, 0.65)" + }, + "outline_color": { + "type": "string", + "example": "#FFFFFF", + "default": "#FFFFFF" + }, + "color": { + "type": "string", + "example": "#FFFFFF", + "default": "#FFFFFF" + }, + "stroke": { + "type": "number", + "example": 2, + "default": 2 + }, + "size": { + "type": "integer", + "example": 20, + "default": 20 + }, + "margin": { + "$ref": "#/components/schemas/Margin" + } + } + }, + "TeaserStyles": { + "type": "object", + "properties": { + "background_color": { + "type": "string", + "example": "#FFFFFF", + "default": "#FFFFFF" + }, + "drop_shadow": { + "$ref": "#/components/schemas/DropShadow" + }, + "corner_radius": { + "type": "integer", + "example": 4, + "default": 4 + }, + "background_image": { + "$ref": "#/components/schemas/BackgroundImage", + "nullable": true + }, + "close_button": { + "$ref": "#/components/schemas/CloseButtonStyle" + }, + "margin": { + "$ref": "#/components/schemas/Margin" + } + } + }, + "Teaser": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string" + }, + "display_order": { + "description": "Teaser display order enumeration.", + "type": "string", + "example": "after", + "default": "after", + "enum": [ + "after", + "before", + "before_and_after" + ] + }, + "teaser_type": { + "description": "Teaser display order enumeration.", + "type": "string", + "example": "rectangle", + "default": "rectangle", + "enum": [ + "circle", + "corner", + "rectangle" + ] + }, + "location": { + "description": "Display location enumeration.", + "type": "string", + "example": "bottom_left", + "default": "bottom_left", + "enum": [ + "bottom_center", + "bottom_left", + "bottom_right", + "center_left", + "center_right", + "top_center", + "top_left", + "top_right" + ] + }, + "size": { + "description": "Teaser size enumeration.", + "type": "string", + "example": "small", + "default": "small", + "enum": [ + "custom", + "large", + "medium", + "small" + ] + }, + "custom_size": { + "type": "integer", + "nullable": true + }, + "styles": { + "$ref": "#/components/schemas/TeaserStyles" + }, + "close_button": { + "type": "boolean", + "example": true, + "default": true + }, + "device_type": { + "description": "Enumeration for mobile and desktop.", + "type": "string", + "example": "both", + "default": "both", + "enum": [ + "both", + "desktop", + "mobile" + ] + } + }, + "required": [ + "content" + ] + }, + "BackInStockDynamicButtonTextStyles": { + "type": "object", + "properties": { + "font_family": { + "example": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "default": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "oneOf": [ + { + "type": "string", + "enum": [ + "Arial Black,Arial", + "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "Century Gothic,AppleGothic,Arial", + "Comic Sans MS,Comic Sans,cursive", + "Courier", + "Courier New", + "Geneva,Arial", + "Georgia", + "Helvetica,Arial", + "Lucida Grande,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "MS Serif,Georgia", + "New York,Georgia", + "Palatino Linotype,Palatino,Georgia", + "Palatino,Georgia", + "Tahoma,sans-serif", + "Times New Roman", + "Trebuchet MS", + "Verdana" + ], + "description": "Web safe font enumeration." + }, + { + "type": "string" + } + ] + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "font_weight": { + "description": "Font weight enumeration.", + "type": "integer", + "example": 400, + "default": 400, + "enum": [ + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900 + ], + "nullable": true + }, + "font_color": { + "type": "string", + "example": "#FFFFFF", + "default": "#FFFFFF" + }, + "font_style": { + "type": "string", + "nullable": true + }, + "text_decoration": { + "type": "string", + "nullable": true + }, + "letter_spacing": { + "type": "integer", + "default": 0 + } + } + }, + "BackInStockDynamicButtonBorderStyles": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": false + }, + "color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "style": { + "description": "Border pattern enumeration.", + "type": "string", + "example": "solid", + "default": "solid", + "enum": [ + "dashed", + "dotted", + "solid" + ], + "nullable": true + }, + "width": { + "type": "integer", + "example": 1, + "default": 1 + } + } + }, + "BackInStockDynamicButtonDropShadowStyles": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": false + }, + "color": { + "type": "string", + "example": "#000000", + "default": "#000000" + } + } + }, + "BackInStockDynamicButtonStyles": { + "type": "object", + "properties": { + "color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "border_radius": { + "type": "integer", + "default": 0 + }, + "height": { + "type": "integer", + "example": 44, + "default": 44 + }, + "width": { + "description": "Back In Stock Dynamic Button display type enumeration.", + "type": "string", + "example": "fullWidth", + "default": "fullWidth", + "enum": [ + "fitToText", + "fullWidth" + ] + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "center", + "default": "center", + "enum": [ + "center", + "left", + "right" + ] + }, + "border": { + "$ref": "#/components/schemas/BackInStockDynamicButtonBorderStyles" + }, + "drop_shadow": { + "$ref": "#/components/schemas/BackInStockDynamicButtonDropShadowStyles" + } + } + }, + "BackInStockDynamicButtonData": { + "type": "object", + "properties": { + "label": { + "type": "string", + "default": "" + }, + "display": { + "description": "Back In Stock Dynamic Button display type enumeration.", + "type": "string", + "example": "REPLACE", + "default": "REPLACE", + "enum": [ + "NEXT_TO", + "REPLACE" + ] + }, + "text_styles": { + "$ref": "#/components/schemas/BackInStockDynamicButtonTextStyles" + }, + "button_styles": { + "$ref": "#/components/schemas/BackInStockDynamicButtonStyles" + } + } + }, + "DynamicButton": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "type": { + "description": "Dynamic Button type enumeration.", + "type": "string", + "enum": [ + "BACK_IN_STOCK_OPEN" + ] + }, + "data": { + "$ref": "#/components/schemas/BackInStockDynamicButtonData" + } + }, + "required": [ + "type", + "data" + ] + }, + "InputStyles": { + "type": "object", + "properties": { + "text_styles": { + "$ref": "#/components/schemas/TextStyle" + }, + "label_color": { + "type": "string", + "example": "#303B43", + "default": "#303B43" + }, + "text_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "placeholder_color": { + "type": "string", + "example": "#949596", + "default": "#949596" + }, + "background_color": { + "type": "string", + "example": "#FFFFFF", + "default": "#FFFFFF" + }, + "border_color": { + "type": "string", + "example": "#949596", + "default": "#949596" + }, + "border_focus_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "focus_outline_color": { + "type": "string", + "example": "#1C65AD", + "default": "#1C65AD" + }, + "corner_radius": { + "type": "integer", + "example": 2, + "default": 2 + }, + "field_height": { + "type": "integer", + "example": 38, + "default": 38 + } + } + }, + "RichTextMargin": { + "type": "object", + "properties": { + "left": { + "default": 0, + "enum": [ + 0 + ] + }, + "right": { + "default": 0, + "enum": [ + 0 + ] + }, + "top": { + "default": 0, + "enum": [ + 0 + ] + }, + "bottom": { + "type": "integer", + "default": 0 + } + } + }, + "RichTextStyle": { + "type": "object", + "properties": { + "font_family": { + "example": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "default": "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "oneOf": [ + { + "type": "string", + "enum": [ + "Arial Black,Arial", + "Arial, 'Helvetica Neue', Helvetica, sans-serif", + "Century Gothic,AppleGothic,Arial", + "Comic Sans MS,Comic Sans,cursive", + "Courier", + "Courier New", + "Geneva,Arial", + "Georgia", + "Helvetica,Arial", + "Lucida Grande,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "Lucida,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif", + "MS Serif,Georgia", + "New York,Georgia", + "Palatino Linotype,Palatino,Georgia", + "Palatino,Georgia", + "Tahoma,sans-serif", + "Times New Roman", + "Trebuchet MS", + "Verdana" + ], + "description": "Web safe font enumeration." + }, + { + "type": "string" + } + ] + }, + "font_size": { + "type": "integer", + "example": 16, + "default": 16 + }, + "font_weight": { + "description": "Font weight enumeration.", + "type": "integer", + "example": 400, + "default": 400, + "enum": [ + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900 + ], + "nullable": true + }, + "text_color": { + "type": "string", + "example": "#000000", + "default": "#000000" + }, + "line_spacing": { + "type": "number", + "example": 1, + "default": 1 + }, + "character_spacing": { + "type": "integer", + "default": 0, + "nullable": true + }, + "alignment": { + "description": "Horizontal alignment enumeration.", + "type": "string", + "example": "left", + "default": "left", + "enum": [ + "center", + "left", + "right" + ] + }, + "margin": { + "$ref": "#/components/schemas/RichTextMargin" + } + } + }, + "UnderlineEnum": { + "type": "string", + "enum": [ + "underline" + ] + }, + "LinkStyles": { + "type": "object", + "properties": { + "color": { + "type": "string", + "example": "#0066cc", + "default": "#0066cc" + }, + "decoration": { + "example": "underline", + "default": "underline", + "$ref": "#/components/schemas/UnderlineEnum" + } + } + }, + "RichTextStyles": { + "type": "object", + "properties": { + "body": { + "$ref": "#/components/schemas/RichTextStyle" + }, + "link": { + "$ref": "#/components/schemas/LinkStyles" + }, + "h1": { + "$ref": "#/components/schemas/RichTextStyle" + }, + "h2": { + "$ref": "#/components/schemas/RichTextStyle" + }, + "h3": { + "$ref": "#/components/schemas/RichTextStyle" + }, + "h4": { + "$ref": "#/components/schemas/RichTextStyle" + }, + "h5": { + "$ref": "#/components/schemas/RichTextStyle" + }, + "h6": { + "$ref": "#/components/schemas/RichTextStyle" + } + } + }, + "MobileOverlay": { + "type": "object", + "properties": { + "color": { + "type": "string", + "example": "rgba(20, 20, 20, 0.5)", + "default": "rgba(20, 20, 20, 0.5)", + "nullable": true + }, + "enabled": { + "type": "boolean", + "default": false, + "enum": [ + false + ] + } + } + }, + "BannerStyles": { + "type": "object", + "properties": { + "desktop_position": { + "description": "Positioning of banner forms.", + "type": "string", + "example": "top", + "default": "top", + "enum": [ + "bottom", + "top" + ] + }, + "mobile_position": { + "description": "Positioning of banner forms.", + "type": "string", + "example": "top", + "default": "top", + "enum": [ + "bottom", + "top" + ] + }, + "scroll_with_page": { + "type": "boolean", + "example": true, + "default": true + } + } + }, + "VersionStyles": { + "type": "object", + "properties": { + "wrap_content": { + "type": "boolean", + "default": false, + "enum": [ + false + ] + }, + "border_styles": { + "$ref": "#/components/schemas/BorderStyle", + "nullable": true + }, + "close_button": { + "$ref": "#/components/schemas/CloseButtonStyle" + }, + "margin": { + "$ref": "#/components/schemas/Margin" + }, + "padding": { + "$ref": "#/components/schemas/Padding" + }, + "minimum_height": { + "type": "integer", + "example": 250, + "default": 250 + }, + "width": { + "description": "Version width enumeration.", + "type": "string", + "example": "medium", + "default": "medium", + "enum": [ + "custom", + "large", + "medium", + "small" + ] + }, + "custom_width": { + "type": "integer", + "nullable": true + }, + "background_image": { + "$ref": "#/components/schemas/BackgroundImage", + "nullable": true + }, + "background_color": { + "type": "string", + "example": "#FFFFFF", + "default": "#FFFFFF", + "nullable": true + }, + "input_styles": { + "$ref": "#/components/schemas/InputStyles" + }, + "drop_shadow": { + "$ref": "#/components/schemas/DropShadow" + }, + "overlay_color": { + "type": "string", + "example": "rgba(20,20,20,0.6)", + "default": "rgba(20,20,20,0.6)" + }, + "rich_text_styles": { + "$ref": "#/components/schemas/RichTextStyles" + }, + "mobile_overlay": { + "$ref": "#/components/schemas/MobileOverlay", + "nullable": true + }, + "banner_styles": { + "$ref": "#/components/schemas/BannerStyles", + "nullable": true + } + } + }, + "SideImageSettings": { + "type": "object", + "properties": { + "size": { + "description": "Side image size enumeration.", + "type": "string", + "example": "medium", + "default": "medium", + "enum": [ + "large", + "medium", + "small" + ] + }, + "alignment": { + "description": "Side image alignment enumeration.", + "type": "string", + "example": "left", + "default": "left", + "enum": [ + "left", + "right" + ] + }, + "device_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + } + } + } + }, + "VersionProperties": { + "type": "object", + "properties": { + "side_image_settings": { + "$ref": "#/components/schemas/SideImageSettings", + "nullable": true + }, + "click_outside_to_close": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "both", + "desktop", + "mobile" + ], + "description": "Enumeration for mobile and desktop." + }, + "nullable": true + }, + "rule_based_trigger_evaluation": { + "description": "Side image alignment enumeration.", + "type": "string", + "example": "any", + "default": "any", + "enum": [ + "all", + "any" + ], + "nullable": true + }, + "record_utm_params_on_submit": { + "type": "boolean", + "default": false + }, + "show_close_button": { + "type": "boolean", + "example": true, + "default": true + } + } + }, + "Version": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "nullable": true + }, + "steps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Step" + } + }, + "triggers": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/AfterCloseTimeout" + }, + { + "$ref": "#/components/schemas/CartItemCount" + }, + { + "$ref": "#/components/schemas/CartProduct" + }, + { + "$ref": "#/components/schemas/CartValue" + }, + { + "$ref": "#/components/schemas/Channel" + }, + { + "$ref": "#/components/schemas/CustomJavascript" + }, + { + "$ref": "#/components/schemas/Delay" + }, + { + "$ref": "#/components/schemas/Device" + }, + { + "$ref": "#/components/schemas/ExitIntent" + }, + { + "$ref": "#/components/schemas/IdentifiedProfiles" + }, + { + "$ref": "#/components/schemas/ListsAndSegments" + }, + { + "$ref": "#/components/schemas/Location" + }, + { + "$ref": "#/components/schemas/PageVisits" + }, + { + "$ref": "#/components/schemas/PreviouslySubmitted" + }, + { + "$ref": "#/components/schemas/ProfileEventTracked" + }, + { + "$ref": "#/components/schemas/Scroll" + }, + { + "$ref": "#/components/schemas/UnidentifiedProfiles" + }, + { + "$ref": "#/components/schemas/URLPatterns" + }, + { + "$ref": "#/components/schemas/BackInStock" + } + ] + } + }, + "teasers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Teaser" + } + }, + "dynamic_button": { + "$ref": "#/components/schemas/DynamicButton", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "styles": { + "$ref": "#/components/schemas/VersionStyles" + }, + "properties": { + "$ref": "#/components/schemas/VersionProperties" + }, + "type": { + "description": "Form type enumeration.", + "type": "string", + "example": "popup", + "default": "popup", + "enum": [ + "banner", + "embed", + "flyout", + "full_screen", + "popup" + ] + }, + "location": { + "description": "Display location enumeration.", + "type": "string", + "enum": [ + "bottom_center", + "bottom_left", + "bottom_right", + "center_left", + "center_right", + "top_center", + "top_left", + "top_right" + ], + "nullable": true + }, + "status": { + "description": "Form status enumeration.", + "type": "string", + "example": "draft", + "default": "draft", + "enum": [ + "draft", + "live" + ] + }, + "ab_test": { + "type": "boolean", + "default": false + }, + "specialties": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "BACK_IN_STOCK" + ], + "description": "Form specialty enumeration." + } + } + }, + "required": [ + "steps" + ] + }, + "FormDefinition": { + "type": "object", + "properties": { + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Version" + } + } + }, + "required": [ + "versions" + ] + }, + "EncodedFormResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormEnum" + }, + "id": { + "description": "The ID of the form", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "The status of the form.", + "type": "string", + "example": "draft", + "enum": [ + "draft", + "live" + ] + }, + "ab_test": { + "description": "Whether the form has an A/B test configured.", + "type": "boolean" + }, + "name": { + "description": "The name of the form.", + "type": "string", + "example": "Cyber Monday Deals" + }, + "definition": { + "description": "The encoded form definition.", + "$ref": "#/components/schemas/FormDefinition" + }, + "created_at": { + "description": "The ISO8601 timestamp when the form was created.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + }, + "updated_at": { + "description": "The ISO8601 timestamp when the form was last updated.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + } + }, + "required": [ + "status", + "ab_test", + "name", + "definition", + "created_at", + "updated_at" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetEncodedFormResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/EncodedFormResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "MetricPropertyResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricPropertyEnum" + }, + "id": { + "description": "The ID of the metric property", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "label": { + "description": "The label for this metric property", + "type": "string", + "example": "Categories" + }, + "property": { + "description": "The property for this metric property", + "type": "string", + "example": "Categories" + }, + "inferred_type": { + "description": "Inferred type for this metric property", + "type": "string", + "example": "List" + } + }, + "required": [ + "label", + "property", + "inferred_type" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetMetricPropertyResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricPropertyResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "Related Metric", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/MetricPropertyEnum" + }, + "attributes": { + "properties": { + "sample_values": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMetricPropertyResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricPropertyResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metric": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/MetricPropertyEnum" + }, + "attributes": { + "properties": { + "sample_values": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMetricPropertiesRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/MetricPropertyEnum" + }, + "id": { + "description": "The ID of the metric property", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMetricPropertyMetricRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFormVersionResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FormVersionResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFormVersionsRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FormVersionEnum" + }, + "id": { + "description": "ID of the form version. Generated by Klaviyo.", + "type": "string", + "example": "1234567" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFormResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/FormResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "form-versions": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFormVersionFormRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormEnum" + }, + "id": { + "description": "ID of the form. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetFormVersionResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FormVersionResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "TrackingSettingEnum": { + "type": "string", + "enum": [ + "tracking-setting" + ] + }, + "FlowTrackingSettingDynamicParam": { + "type": "object", + "properties": { + "type": { + "description": "The type of the tracking parameter", + "$ref": "#/components/schemas/DynamicEnum" + }, + "value": { + "description": "The value of the tracking parameter", + "type": "string", + "enum": [ + "email_subject", + "flow_id", + "flow_name", + "link_alt_text", + "message_name", + "message_name_id", + "message_type", + "profile_external_id", + "profile_id" + ] + } + }, + "required": [ + "type", + "value" + ] + }, + "FlowTrackingSettingStaticParam": { + "type": "object", + "properties": { + "type": { + "description": "The type of the tracking parameter", + "$ref": "#/components/schemas/StaticEnum" + }, + "value": { + "description": "The value of the tracking parameter", + "type": "string" + } + }, + "required": [ + "type", + "value" + ] + }, + "CampaignTrackingSettingDynamicParam": { + "type": "object", + "properties": { + "type": { + "description": "The type of the tracking parameter", + "$ref": "#/components/schemas/DynamicEnum" + }, + "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" + ] + } + }, + "required": [ + "type", + "value" + ] + }, + "CampaignTrackingSettingStaticParam": { + "type": "object", + "properties": { + "type": { + "description": "The type of the tracking parameter", + "$ref": "#/components/schemas/StaticEnum" + }, + "value": { + "description": "The value of the tracking parameter", + "type": "string" + } + }, + "required": [ + "type", + "value" + ] + }, + "TrackingParamDTO": { + "type": "object", + "properties": { + "flow": { + "description": "The value of the tracking parameter when applied to a flow.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/FlowTrackingSettingDynamicParam" + }, + { + "$ref": "#/components/schemas/FlowTrackingSettingStaticParam" + } + ] + }, + "campaign": { + "description": "The value of the tracking parameter when applied to a campaign.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/CampaignTrackingSettingDynamicParam" + }, + { + "$ref": "#/components/schemas/CampaignTrackingSettingStaticParam" + } + ] + } + } + }, + "CustomTrackingParamDTO": { + "type": "object", + "properties": { + "flow": { + "description": "The value of the tracking parameter when applied to a flow.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/FlowTrackingSettingDynamicParam" + }, + { + "$ref": "#/components/schemas/FlowTrackingSettingStaticParam" + } + ] + }, + "campaign": { + "description": "The value of the tracking parameter when applied to a campaign.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/CampaignTrackingSettingDynamicParam" + }, + { + "$ref": "#/components/schemas/CampaignTrackingSettingStaticParam" + } + ] + }, + "name": { + "description": "The name of the custom tracking parameter", + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "TrackingSettingResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TrackingSettingEnum" + }, + "id": { + "description": "The id of the tracking setting (account ID).", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "auto_add_parameters": { + "description": "Whether tracking parameters are automatically added to campaigns and flows.", + "type": "boolean" + }, + "utm_source": { + "description": "The utm_source tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO" + }, + "utm_medium": { + "description": "The utm_medium tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO" + }, + "utm_campaign": { + "description": "The utm_campaign tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_id": { + "description": "The utm_id tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_term": { + "description": "The utm_term tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "custom_parameters": { + "description": "Additional custom tracking parameters.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomTrackingParamDTO" + }, + "nullable": true + } + }, + "required": [ + "auto_add_parameters", + "utm_source", + "utm_medium" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetTrackingSettingResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TrackingSettingResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetTrackingSettingResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TrackingSettingResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "DataSourceEnum": { + "type": "string", + "enum": [ + "data-source" + ] + }, + "DataSourceResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceEnum" + }, + "id": { + "description": "The ID of the data source", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "title": { + "description": "The title of the data source", + "type": "string", + "example": "My Data Source" + }, + "visibility": { + "description": "The status of this data source", + "type": "string", + "enum": [ + "private", + "shared" + ] + }, + "description": { + "description": "The description of the data source", + "type": "string", + "example": "This is a data source" + } + }, + "required": [ + "title", + "visibility", + "description" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetDataSourceResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataSourceResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetDataSourceResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DataSourceResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "WebFeedEnum": { + "type": "string", + "enum": [ + "web-feed" + ] + }, + "WebFeedResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebFeedEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this web feed. Generated by Klaviyo", + "type": "string", + "example": "925e385b52fb" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of this web feed", + "type": "string", + "example": "Blog_posts" + }, + "url": { + "description": "The URL of the web feed", + "type": "string", + "example": "https://help.klaviyo.com/api/v2/help_center/en-us/articles.json" + }, + "request_method": { + "description": "The HTTP method for requesting the web feed", + "type": "string", + "example": "get", + "enum": [ + "get", + "post" + ] + }, + "content_type": { + "description": "The content-type of the web feed", + "type": "string", + "example": "json", + "enum": [ + "json", + "xml" + ] + }, + "created": { + "description": "Date and time when the web feed 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" + }, + "updated": { + "description": "Date and time when the web feed 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" + }, + "status": { + "description": "The cache status of this web feed if it exists", + "type": "string", + "example": "ok", + "enum": [ + "critical_nightly_refresh_timeout", + "disabled", + "ok", + "warning_nightly_refresh_timeout", + "warning_periodic_refresh_timeout" + ], + "nullable": true + } + }, + "required": [ + "name", + "url", + "request_method", + "content_type", + "created", + "updated" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetWebFeedResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebFeedResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetWebFeedResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/WebFeedResponseObjectResource" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CustomMetricEnum": { + "type": "string", + "enum": [ + "custom-metric" + ] + }, + "StringInArrayFilter": { + "type": "object", + "properties": { + "operator": { + "$ref": "#/components/schemas/InEnum" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "$ref": "#/components/schemas/StringEnum" + } + }, + "required": [ + "operator", + "value", + "type" + ] + }, + "ListRegexOperatorContainsFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "operator": { + "description": "Operators for list regex filters.", + "type": "string", + "enum": [ + "contains-ends-with", + "contains-starts-with", + "not-contains-ends-with", + "not-contains-starts-with" + ] + }, + "value": { + "nullable": true, + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + }, + "required": [ + "type", + "operator", + "value" + ] + }, + "CustomMetricCondition": { + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/NumericOperatorFilter" + }, + { + "$ref": "#/components/schemas/StringInArrayFilter" + }, + { + "$ref": "#/components/schemas/ExistenceOperatorFilter" + }, + { + "$ref": "#/components/schemas/BooleanFilter" + }, + { + "$ref": "#/components/schemas/StringOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListContainsOperatorFilter" + }, + { + "$ref": "#/components/schemas/ListRegexOperatorContainsFilter" + }, + { + "$ref": "#/components/schemas/ListSubstringFilter" + } + ] + } + }, + "required": [ + "property", + "filter" + ] + }, + "CustomMetricGroup": { + "type": "object", + "properties": { + "metric_id": { + "description": "The ID of the metric that composes the custom metric.", + "type": "string" + }, + "metric_filters": { + "description": "An optional array of objects for filtering on properties of the metric.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricCondition" + }, + "nullable": true + }, + "value_property": { + "description": "\nIf the custom metric has a `value` aggregation method, the `value_property` of each `metric_group` of the `definition` should specify the property to calculate the conversion value. If null, the default `$value` property will be used.\n", + "type": "string", + "nullable": true + } + }, + "required": [ + "metric_id" + ] + }, + "CustomMetricDefinition": { + "type": "object", + "properties": { + "aggregation_method": { + "description": "Method of aggregation for custom metric measurements. If a metric has a `value` aggregation method, it will be treated as a revenue metric, such as a Placed Order metric. If a metric has a `count` aggregation method, it will only be able to report on conversions like an Active on Site metric.\n", + "type": "string", + "enum": [ + "count", + "value" + ] + }, + "metric_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + } + } + }, + "required": [ + "aggregation_method", + "metric_groups" + ] + }, + "CustomMetricResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this custom metric. Names must be unique across the account. Attempting to create a metric with a duplicate name will return a 400 status code.", + "type": "string", + "example": "My custom metric" + }, + "created": { + "description": "The datetime when this custom metric was created.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + }, + "updated": { + "description": "The datetime when this custom metric was updated.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + }, + "definition": { + "description": "The definition of a custom metric. It is composed of a list of `metric_groups`. Each group specifies how to query a particular metric with customized filters and the value property to calculate conversion value measurements (if applicable). The groups are combined with `AND` relationships, i.e., conversion and conversion value measurements for each group will be added together to get the final result.", + "example": { + "aggregation_method": "value", + "metric_groups": [ + { + "metric_id": "AAAAAA", + "metric_filters": [ + { + "property": "my_string_property", + "filter": { + "type": "string", + "operator": "starts-with", + "value": "some_substring" + } + }, + { + "property": "my_numeric_property", + "filter": { + "type": "numeric", + "operator": "greater-than-or-equal", + "value": 999 + } + } + ], + "value_property": "$value" + }, + { + "metric_id": "BBBBBB", + "metric_filters": [ + { + "property": "my_boolean_property", + "filter": { + "type": "boolean", + "operator": "equals", + "value": false + } + }, + { + "property": "my_list_property", + "filter": { + "type": "list", + "operator": "contains", + "value": "some_value_in_a_list" + } + } + ], + "value_property": "my_numeric_property" + } + ] + }, + "$ref": "#/components/schemas/CustomMetricDefinition" + } + }, + "required": [ + "name", + "created", + "updated", + "definition" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetCustomMetricResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomMetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "Related metrics", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricResponseObjectResource" + } + } + }, + "required": [ + "data" + ] + }, + "GetCustomMetricResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomMetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "Related metrics", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMetricResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "flow-triggers": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCustomMetricMetricsRelationshipsResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "MappedMetricEnum": { + "type": "string", + "enum": [ + "mapped-metric" + ] + }, + "MappedMetricResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MappedMetricEnum" + }, + "id": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + }, + "attributes": { + "type": "object", + "properties": { + "updated": { + "description": "The datetime when this mapping was last updated.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + } + }, + "required": [ + "updated" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetMappedMetricResponseCollectionCompoundDocument": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/MappedMetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The ID of the metric for this mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "custom-metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric for this mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/CustomMetricResponseObjectResource" + }, + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + } + ] + } + } + }, + "required": [ + "data" + ] + }, + "GetMappedMetricResponseCompoundDocument": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/MappedMetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The ID of the metric for this mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "custom-metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric for this mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "included": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/CustomMetricResponseObjectResource" + }, + { + "$ref": "#/components/schemas/MetricResponseObjectResource" + } + ] + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMappedMetricMetricRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The Metric ID", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetCustomMetricResponse": { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomMetricResponseObjectResource" + }, + { + "properties": { + "relationships": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "properties": { + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + } + } + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "GetMappedMetricCustomMetricRelationshipResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ReviewValuesReportEnum": { + "type": "string", + "enum": [ + "review-values-report" + ] + }, + "GroupingProduct": { + "type": "object", + "properties": { + "product_id": { + "description": "The ID of the product", + "type": "string", + "example": "12345" + } + }, + "required": [ + "product_id" + ] + }, + "GroupingCompany": { + "type": "object", + "properties": { + "company_id": { + "description": "The ID of the company", + "type": "string", + "example": "67890" + } + }, + "required": [ + "company_id" + ] + }, + "StatisticsDTO": { + "type": "object", + "properties": { + "average_rating": { + "description": "The average rating", + "type": "number", + "example": 4.5, + "nullable": true + }, + "total_reviews": { + "description": "The total number of reviews", + "type": "integer", + "example": 100, + "nullable": true + }, + "total_questions": { + "description": "The total number of questions", + "type": "integer", + "example": 50, + "nullable": true + }, + "total_ratings": { + "description": "The total number of ratings", + "type": "integer", + "example": 200, + "nullable": true + }, + "total_store_reviews": { + "description": "The total number of store reviews", + "type": "integer", + "example": 5000, + "nullable": true + }, + "average_store_rating": { + "description": "The average rating of store reviews", + "type": "number", + "example": 2, + "nullable": true + } + } + }, + "ReviewValueReportGrouping": { + "type": "object", + "properties": { + "groupings": { + "description": "Grouping details, either by product or company", + "oneOf": [ + { + "$ref": "#/components/schemas/GroupingProduct" + }, + { + "$ref": "#/components/schemas/GroupingCompany" + } + ] + }, + "statistics": { + "description": "Statistics related to the grouping", + "example": { + "average_rating": 4.5, + "total_reviews": 100, + "total_questions": 50, + "total_ratings": 200, + "total_store_reviews": 5000, + "average_store_rating": 2 + }, + "$ref": "#/components/schemas/StatisticsDTO" + } + }, + "required": [ + "groupings", + "statistics" + ] + }, + "ReviewValuesReportResponseObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ReviewValuesReportEnum" + }, + "id": { + "description": "The unique identifier for the reviews values report", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "The list of groupings and their corresponding statistics in the reviews values report", + "type": "array", + "items": { + "$ref": "#/components/schemas/ReviewValueReportGrouping" + }, + "example": [ + { + "groupings": { + "product_id": "id1" + }, + "statistics": { + "total_ratings": 459, + "average_rating": 4.5 + } + }, + { + "groupings": { + "product_id": "id2" + }, + "statistics": { + "total_ratings": 459, + "average_rating": 2.5 + } + } + ] + } + }, + "required": [ + "results" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetReviewValuesReportResponseCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReviewValuesReportResponseObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "ClientReviewResponseDTOObjectResource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "id": { + "description": "The ID of the review", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "The status of this review", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ReviewStatusRejected" + }, + { + "$ref": "#/components/schemas/ReviewStatusFeatured" + }, + { + "$ref": "#/components/schemas/ReviewStatusPublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusUnpublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusPending" + } + ] + }, + "verified": { + "description": "The verification status of this review (aka whether or not we have confirmation that the customer bought the product)", + "type": "boolean", + "example": true + }, + "review_type": { + "description": "The type of this review — either a review, question, or rating", + "type": "string", + "example": "review", + "enum": [ + "question", + "rating", + "review", + "store" + ] + }, + "created": { + "description": "The datetime when this review was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "updated": { + "description": "The datetime when this review was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "images": { + "description": "The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://example.com/image1.jpg", + "https://example.com/image2.jpg" + ] + }, + "product": { + "description": "The product associated with this review", + "$ref": "#/components/schemas/ReviewProductDTO", + "nullable": true + }, + "rating": { + "description": "The rating of this review on a scale from 1-5. If the review type is \"question\", this field will be null.", + "type": "integer", + "example": 2, + "nullable": true + }, + "author": { + "description": "The author of this review", + "type": "string", + "example": "John D", + "nullable": true + }, + "content": { + "description": "The content of this review", + "example": "Great product! I love the smell. I will be buying again.", + "nullable": true, + "type": "string" + }, + "title": { + "description": "The title of this review", + "type": "string", + "example": "Smells great, would recommend", + "nullable": true + }, + "smart_quote": { + "description": "A quote from this review that summarizes the content", + "type": "string", + "example": "I love the smell", + "nullable": true + }, + "public_reply": { + "description": "The public reply to this review (if one exists)", + "$ref": "#/components/schemas/ReviewPublicReply", + "nullable": true + } + }, + "required": [ + "verified", + "review_type", + "created", + "updated", + "images" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "GetClientReviewResponseDTOCollection": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientReviewResponseDTOObjectResource" + } + }, + "links": { + "$ref": "#/components/schemas/CollectionLinks" + } + }, + "required": [ + "data" + ] + }, + "CouponCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "This is the id that is stored in an integration such as Shopify or Magento.", + "type": "string", + "example": "10OFF" + }, + "description": { + "description": "A description of the coupon.", + "type": "string", + "example": "10% off for purchases over $50", + "nullable": true + }, + "monitor_configuration": { + "description": "The monitor configuration for the coupon.", + "type": "object", + "example": { + "low_balance_threshold": 500 + }, + "nullable": true + } + }, + "required": [ + "external_id" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CouponCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CouponCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCouponResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "This is the id that is stored in an integration such as Shopify or Magento.", + "type": "string", + "example": "10OFF" + }, + "description": { + "description": "A description of the coupon.", + "type": "string", + "example": "10% off for purchases over $50", + "nullable": true + }, + "monitor_configuration": { + "description": "The monitor configuration for the coupon.", + "type": "object", + "example": { + "low_balance_threshold": 500 + }, + "nullable": true + } + }, + "required": [ + "external_id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CouponCodeCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "attributes": { + "type": "object", + "properties": { + "unique_code": { + "description": "This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.", + "type": "string", + "example": "ASD325FHK324UJDOI2M3JNES99" + }, + "expires_at": { + "description": "The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + } + }, + "required": [ + "unique_code" + ] + }, + "relationships": { + "type": "object", + "properties": { + "coupon": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "type": "string", + "example": "10OFF" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + }, + "required": [ + "coupon" + ] + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "CouponCodeCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CouponCodeCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCouponCodeResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + }, + "attributes": { + "type": "object", + "properties": { + "unique_code": { + "description": "This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.", + "type": "string", + "example": "ASD325FHK324UJDOI2M3JNES99", + "nullable": true + }, + "expires_at": { + "description": "The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "status": { + "description": "The current status of the coupon code.", + "type": "string", + "example": "UNASSIGNED", + "enum": [ + "ASSIGNED_TO_PROFILE", + "DELETING", + "PROCESSING", + "UNASSIGNED", + "USED", + "VERSION_NOT_ACTIVE" + ], + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "coupon": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "type": "string", + "example": "10OFF" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profile": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + }, + "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" + ] + }, + "CatalogItemCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1" + }, + "integration_type": { + "description": "The integration type. Currently only \"$custom\" is supported.", + "type": "string", + "example": "$custom", + "default": "$custom", + "enum": [ + "$custom" + ], + "nullable": true + }, + "title": { + "description": "The title of the catalog item.", + "type": "string", + "example": "Ocean Blue Shirt (Sample)" + }, + "price": { + "description": "This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).", + "type": "number", + "example": 42, + "nullable": true + }, + "catalog_type": { + "description": "The type of catalog. Currently only \"$default\" is supported.", + "type": "string", + "example": "$default", + "default": "$default", + "nullable": true + }, + "description": { + "description": "A description of the catalog item.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns." + }, + "url": { + "description": "URL pointing to the location of the catalog item on your website.", + "type": "string", + "example": "https://via.placeholder.com/150" + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item is published.", + "type": "boolean", + "example": true, + "default": true, + "nullable": true + } + }, + "required": [ + "external_id", + "title", + "description", + "url" + ] + }, + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "A list of catalog category IDs representing the categories the item is in", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogItemCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogItemCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogItemResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1", + "nullable": true + }, + "title": { + "description": "The title of the catalog item.", + "type": "string", + "example": "Ocean Blue Shirt (Sample)", + "nullable": true + }, + "description": { + "description": "A description of the catalog item.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item is published.", + "type": "boolean", + "example": true, + "nullable": true + }, + "created": { + "description": "Date and time when the catalog item 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": "Date and time when the catalog item was last 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 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "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" + ] + }, + "CatalogCategoryItemOp": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "A list of catalog item IDs that are in the given category.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item variant in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + }, + "catalog_type": { + "description": "The type of catalog. Currently only \"$default\" is supported.", + "type": "string", + "example": "$default", + "default": "$default", + "nullable": true + }, + "integration_type": { + "description": "The integration type. Currently only \"$custom\" is supported.", + "type": "string", + "example": "$custom", + "default": "$custom", + "enum": [ + "$custom" + ], + "nullable": true + }, + "title": { + "description": "The title of the catalog item variant.", + "type": "string", + "example": "Ocean Blue Shirt (Sample) Variant Medium" + }, + "description": { + "description": "A description of the catalog item variant.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns." + }, + "sku": { + "description": "The SKU of the catalog item variant.", + "type": "string", + "example": "OBS-MD" + }, + "inventory_policy": { + "description": "This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:\n`1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.\n`0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.", + "type": "integer", + "example": 2, + "default": 0, + "enum": [ + 0, + 1, + 2 + ], + "nullable": true + }, + "inventory_quantity": { + "description": "The quantity of the catalog item variant currently in stock.", + "type": "number", + "example": 25 + }, + "price": { + "description": "This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).", + "type": "number", + "example": 42 + }, + "url": { + "description": "URL pointing to the location of the catalog item variant on your website.", + "type": "string", + "example": "https://via.placeholder.com/150" + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item variant.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item variant is published.", + "type": "boolean", + "example": true, + "default": true, + "nullable": true + } + }, + "required": [ + "external_id", + "title", + "description", + "sku", + "inventory_quantity", + "price", + "url" + ] + }, + "relationships": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The original catalog item ID for which this is a variant.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + }, + "required": [ + "item" + ] + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "CatalogVariantCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogVariantCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogVariantResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item variant in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM", + "nullable": true + }, + "title": { + "description": "The title of the catalog item variant.", + "type": "string", + "example": "Ocean Blue Shirt (Sample) Variant Medium", + "nullable": true + }, + "description": { + "description": "A description of the catalog item variant.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "sku": { + "description": "The SKU of the catalog item variant.", + "type": "string", + "example": "OBS-MD", + "nullable": true + }, + "inventory_policy": { + "description": "This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:\n`1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.\n`0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.", + "type": "integer", + "example": 2, + "enum": [ + 0, + 1, + 2 + ], + "nullable": true + }, + "inventory_quantity": { + "description": "The quantity of the catalog item variant currently in stock.", + "type": "number", + "example": 25, + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item variant on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item variant.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item variant is published.", + "type": "boolean", + "example": true, + "nullable": true + }, + "created": { + "description": "Date and time when the catalog item variant 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": "Date and time when the catalog item variant was last 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 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "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" + ] + }, + "CatalogCategoryCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog category in an external system.", + "type": "string", + "example": "SAMPLE-DATA-CATEGORY-APPAREL" + }, + "name": { + "description": "The name of the catalog category.", + "type": "string", + "example": "Sample Data Category Apparel" + }, + "integration_type": { + "description": "The integration type. Currently only \"$custom\" is supported.", + "type": "string", + "example": "$custom", + "default": "$custom", + "enum": [ + "$custom" + ], + "nullable": true + }, + "catalog_type": { + "description": "The type of catalog. Currently only \"$default\" is supported.", + "type": "string", + "example": "$default", + "default": "$default", + "nullable": true + } + }, + "required": [ + "external_id", + "name" + ] + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "A list of catalog item IDs that are in the given category.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogCategoryCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogCategoryCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogCategoryResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog category in an external system.", + "type": "string", + "example": "SAMPLE-DATA-CATEGORY-APPAREL", + "nullable": true + }, + "name": { + "description": "The name of the catalog category.", + "type": "string", + "example": "Sample Data Category Apparel", + "nullable": true + }, + "updated": { + "description": "Date and time when the catalog category was last 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 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "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" + ] + }, + "CouponCodeCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "coupon-codes": { + "description": "Array of coupon codes to create.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CouponCodeCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "coupon-codes" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CouponCodeCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CouponCodeCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCouponCodeCreateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "coupon-codes": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "IDs of the created coupon codes.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemCategoryOp": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "A list of catalog category IDs representing the categories the item is in", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "ProfileIdentifierDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "BackInStockSubscriptionEnum": { + "type": "string", + "enum": [ + "back-in-stock-subscription" + ] + }, + "ServerBISSubscriptionCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/BackInStockSubscriptionEnum" + }, + "attributes": { + "type": "object", + "properties": { + "channels": { + "description": "The channel(s) through which the profile would like to receive the back in stock notification. This can be leveraged within a back in stock flow to notify the subscriber through their preferred channel(s).", + "type": "array", + "items": { + "type": "string", + "enum": [ + "EMAIL", + "PUSH", + "SMS", + "WHATSAPP" + ], + "description": "The different channel types that a profile could subscribe to BIS notifications for" + }, + "example": [ + "EMAIL", + "SMS" + ] + }, + "profile": { + "type": "object", + "example": { + "data": { + "type": "profile", + "attributes": { + "id": "01GDDKASAP8TKDDA2GRZDSVP4H", + "email": "sarah.mason@klaviyo-demo.com", + "phone_number": "+15005550006", + "external_id": "63f64a2b-c6bf-40c7-b81f-bed08162edbe" + } + } + }, + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileIdentifierDTOResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "channels" + ] + }, + "relationships": { + "type": "object", + "properties": { + "variant": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID for which the profile is subscribing to back in stock notifications. This ID is made up of the integration type, catalog ID, and and the external ID of the variant like so: `integrationType:::catalogId:::externalId`. If the integration you are using is not set up for multi-catalog storage, the 'catalogId' will be `$default`. For Shopify `$shopify:::$default:::33001893429341`", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + }, + "required": [ + "variant" + ] + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "ServerBISSubscriptionCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ServerBISSubscriptionCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "MetricCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "Name of the event. Must be less than 128 characters.", + "type": "string", + "example": "Viewed Product" + }, + "service": { + "description": "This is for advanced usage. For api requests, this should use the default, which is set to api.", + "type": "string", + "nullable": true + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ProfileMetaPatchProperties": { + "type": "object", + "properties": { + "append": { + "description": "Append a simple value or values to this property array", + "type": "object", + "example": { + "skus": "92538" + }, + "nullable": true + }, + "unappend": { + "description": "Remove a simple value or values from this property array", + "type": "object", + "example": { + "skus": "40571" + }, + "nullable": true + }, + "unset": { + "description": "Remove a key or keys (and their values) completely from properties", + "example": "skus", + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + } + }, + "OnsiteProfileMeta": { + "type": "object", + "properties": { + "patch_properties": { + "description": "Specify one or more patch operations to apply to existing property data", + "example": { + "append": { + "skus": "92538" + } + }, + "$ref": "#/components/schemas/ProfileMetaPatchProperties", + "nullable": true + } + } + }, + "EventProfileCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "anonymous_id": { + "type": "string", + "nullable": true + }, + "_kx": { + "description": "Also known as the `exchange_id`, this is an encrypted identifier used for identifying a\nprofile by Klaviyo's web tracking.\n\nYou can use this field as a filter when retrieving profiles via the Get Profiles endpoint.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "meta": { + "$ref": "#/components/schemas/OnsiteProfileMeta", + "nullable": true + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "EventCreateQueryV2ResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "attributes": { + "type": "object", + "properties": { + "properties": { + "description": "Properties of this event (must not exceed 400 properties). The size of the event payload must not exceed 5 MB,\nand each string cannot be larger than 100 KB. For a full list of data limits on event payloads,\nsee [Limitations](https://developers.klaviyo.com/en/reference/events_api_overview#limitations).\n\nNote any top-level property that is not an object can be\nused to create segments. The `$extra` property records any\nnon-segmentable values that can be referenced later, e.g., HTML templates are\nuseful on a segment but are not used to create a segment.", + "type": "object", + "example": { + "Brand": "Kids Book", + "ProductID": 1111, + "ProductName": "Winnie the Pooh" + } + }, + "time": { + "description": "When this event occurred. By default, the time the request was received will be used.\nThe time is truncated to the second. The time must be after the year 2000 and can only\nbe up to 1 year in the future.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "value": { + "description": "A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.", + "type": "number", + "example": 9.99, + "nullable": true + }, + "value_currency": { + "description": "The ISO 4217 currency code of the value associated with the event.", + "type": "string", + "example": "USD", + "nullable": true + }, + "unique_id": { + "description": "A unique identifier for an event. If the unique_id is repeated for the same\nprofile and metric, only the first processed event will be recorded. If this is not\npresent, this will use the time to the second. Using the default, this limits only one\nevent per profile per second.", + "type": "string", + "nullable": true + }, + "metric": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MetricCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "profile": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/EventProfileCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "properties", + "metric", + "profile" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "EventCreateQueryV2": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/EventCreateQueryV2ResourceObject" + } + }, + "required": [ + "data" + ] + }, + "OnsiteProfileCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "anonymous_id": { + "type": "string", + "nullable": true + }, + "_kx": { + "description": "Also known as the `exchange_id`, this is an encrypted identifier used for identifying a\nprofile by Klaviyo's web tracking.\n\nYou can use this field as a filter when retrieving profiles via the Get Profiles endpoint.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + } + } + }, + "meta": { + "$ref": "#/components/schemas/OnsiteProfileMeta", + "nullable": true + } + }, + "required": [ + "type", + "attributes" + ] + }, + "BaseEventCreateQueryBulkEntryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "attributes": { + "type": "object", + "properties": { + "properties": { + "description": "Properties of this event (must not exceed 400 properties). The size of the event payload must not exceed 5 MB,\nand each string cannot be larger than 100 KB. For a full list of data limits on event payloads,\nsee [Limitations](https://developers.klaviyo.com/en/reference/events_api_overview#limitations).\n\nNote any top-level property that is not an object can be\nused to create segments. The `$extra` property records any\nnon-segmentable values that can be referenced later, e.g., HTML templates are\nuseful on a segment but are not used to create a segment.", + "type": "object", + "example": { + "Brand": "Kids Book", + "ProductID": 1111, + "ProductName": "Winnie the Pooh" + } + }, + "time": { + "description": "When this event occurred. By default, the time the request was received will be used.\nThe time is truncated to the second. The time must be after the year 2000 and can only\nbe up to 1 year in the future.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "value": { + "description": "A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.", + "type": "number", + "example": 9.99, + "nullable": true + }, + "value_currency": { + "description": "The ISO 4217 currency code of the value associated with the event.", + "type": "string", + "example": "USD", + "nullable": true + }, + "metric": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MetricCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "unique_id": { + "description": "A unique identifier for an event. If a unique_id is repeated for the same profile and metric,\nthe request will fail and no events will be processed. If this field is not\npresent, this field will use the time to the second. Using the default, this limits only one\nevent per profile per second.", + "type": "string", + "nullable": true + } + }, + "required": [ + "properties", + "metric" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "EventBulkCreateEnum": { + "type": "string", + "enum": [ + "event-bulk-create" + ] + }, + "EventsBulkCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventBulkCreateEnum" + }, + "attributes": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/OnsiteProfileCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "events": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseEventCreateQueryBulkEntryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "profile", + "events" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "EventBulkCreateJobEnum": { + "type": "string", + "enum": [ + "event-bulk-create-job" + ] + }, + "EventsBulkCreateJobResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "events-bulk-create": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventsBulkCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "events-bulk-create" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "EventsBulkCreateJob": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/EventsBulkCreateJobResourceObject" + } + }, + "required": [ + "data" + ] + }, + "MetricAggregateEnum": { + "type": "string", + "enum": [ + "metric-aggregate" + ] + }, + "MetricAggregateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricAggregateEnum" + }, + "attributes": { + "type": "object", + "properties": { + "metric_id": { + "description": "The metric ID used in the aggregation.", + "type": "string", + "example": "0rG4eQ" + }, + "page_cursor": { + "description": "Optional pagination cursor to iterate over large result sets", + "type": "string" + }, + "measurements": { + "description": "Measurement key, e.g. `unique`, `sum_value`, `count`", + "type": "array", + "items": { + "type": "string", + "enum": [ + "count", + "sum_value", + "unique" + ], + "description": "Supported measurements for aggregation" + }, + "example": [ + "count" + ] + }, + "interval": { + "description": "Aggregation interval, e.g. \"hour\", \"day\", \"week\", \"month\"", + "type": "string", + "example": "day", + "default": "day", + "enum": [ + "day", + "hour", + "month", + "week" + ], + "nullable": true + }, + "page_size": { + "description": "Alter the maximum number of returned rows in a single page of aggregation results", + "type": "integer", + "example": 500, + "default": 500, + "nullable": true + }, + "by": { + "description": "Optional attribute(s) used for partitioning by the aggregation function", + "type": "array", + "items": { + "type": "string", + "enum": [ + "$attributed_channel", + "$attributed_flow", + "$attributed_message", + "$attributed_variation", + "$campaign_channel", + "$flow", + "$flow_channel", + "$message", + "$message_send_cohort", + "$usage_amount", + "$value_currency", + "$variation", + "$variation_send_cohort", + "Bot Click", + "Bounce Type", + "Campaign Name", + "Client Canonical", + "Client Name", + "Client Type", + "Email Domain", + "Failure Source", + "Failure Type", + "From Number", + "From Phone Region", + "Inbox Provider", + "List", + "Message Name", + "Message Type", + "Method", + "Segment Count", + "Subject", + "To Number", + "To Phone Region", + "URL", + "form_id" + ], + "description": "Supported dimensions for grouping and filtering.\n\nIf adding a new dimension, the following will also need to be updated:\n - adding the key in keys.py\n - adding an AppMetricDimension to library.py\n - adding a new entry to the dict in the __init__ method of StaticSchema using the key from keys.py and the\n AppMetricDimension from library.py" + }, + "example": [ + "$message" + ], + "nullable": true + }, + "return_fields": { + "description": "Provide fields to limit the returned data", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "filter": { + "description": "List of filters, must include time range using ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).\n These filters follow a similar format to those in `GET` requests, the primary difference is that this endpoint asks for a list.\n The time range can be filtered by providing a `greater-or-equal` and a `less-than` filter on the `datetime` field.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "greater-or-equal(datetime,2022-12-01T00:00:00)", + "less-than(datetime,2022-12-08T00:00:00" + ] + }, + "timezone": { + "description": "The timezone used for processing the query, e.g. `'America/New_York'`.\n This field is validated against a list of common timezones from the [IANA Time Zone Database](https://www.iana.org/time-zones).\n While most are supported, a few notable exceptions are `Factory`, `Europe/Kyiv` and `Pacific/Kanton`. This field is case-sensitive.", + "type": "string", + "example": "America/New_York", + "default": "UTC", + "nullable": true + }, + "sort": { + "description": "Provide a sort key (e.g. -$message)", + "type": "string", + "enum": [ + "$attributed_channel", + "-$attributed_channel", + "$attributed_flow", + "-$attributed_flow", + "$attributed_message", + "-$attributed_message", + "$attributed_variation", + "-$attributed_variation", + "$campaign_channel", + "-$campaign_channel", + "$flow", + "-$flow", + "$flow_channel", + "-$flow_channel", + "$message", + "-$message", + "$message_send_cohort", + "-$message_send_cohort", + "$usage_amount", + "-$usage_amount", + "$value_currency", + "-$value_currency", + "$variation", + "-$variation", + "$variation_send_cohort", + "-$variation_send_cohort", + "Bot Click", + "-Bot Click", + "Bounce Type", + "-Bounce Type", + "Campaign Name", + "-Campaign Name", + "Client Canonical", + "-Client Canonical", + "Client Name", + "-Client Name", + "Client Type", + "-Client Type", + "Email Domain", + "-Email Domain", + "Failure Source", + "-Failure Source", + "Failure Type", + "-Failure Type", + "From Number", + "-From Number", + "From Phone Region", + "-From Phone Region", + "Inbox Provider", + "-Inbox Provider", + "List", + "-List", + "Message Name", + "-Message Name", + "Message Type", + "-Message Type", + "Method", + "-Method", + "Segment Count", + "-Segment Count", + "Subject", + "-Subject", + "To Number", + "-To Number", + "To Phone Region", + "-To Phone Region", + "URL", + "-URL", + "count", + "-count", + "form_id", + "-form_id", + "sum_value", + "-sum_value", + "unique", + "-unique" + ] + } + }, + "required": [ + "metric_id", + "measurements", + "filter" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "MetricAggregateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MetricAggregateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "MetricAggregateRowDTO": { + "type": "object", + "properties": { + "dimensions": { + "description": "List of dimensions associated with this set of measurements", + "type": "array", + "items": { + "type": "string" + } + }, + "measurements": { + "description": "Dictionary of measurement_key, values", + "type": "object" + } + }, + "required": [ + "dimensions", + "measurements" + ] + }, + "PostMetricAggregateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricAggregateEnum" + }, + "id": { + "description": "Ephemeral ID associated with the aggregation query", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "dates": { + "description": "The dates of the query range", + "type": "array", + "items": { + "type": "string", + "format": "date-time" + } + }, + "data": { + "description": "Aggregation result data", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricAggregateRowDTO" + } + } + }, + "required": [ + "dates", + "data" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ListCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter" + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'. If not provided, uses account default.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ListCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ListCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostListCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter", + "nullable": true + }, + "created": { + "description": "Date and time when the list 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": "Date and time when the list was last 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 + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "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" + } + } + }, + "flow-triggers": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ListMembersAddQuery": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "type": "string" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "SegmentCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "definition": { + "$ref": "#/components/schemas/SegmentDefinition" + }, + "is_starred": { + "type": "boolean", + "default": false, + "nullable": true + } + }, + "required": [ + "name", + "definition" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SegmentCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SegmentCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostSegmentCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the segment", + "type": "string", + "example": "Repeat Purchasers", + "nullable": true + }, + "definition": { + "$ref": "#/components/schemas/SegmentDefinition", + "nullable": true + }, + "created": { + "description": "Date and time when the segment 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": "Date and time when the segment was last 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 + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "is_starred": { + "type": "boolean" + } + }, + "required": [ + "is_active", + "is_processing", + "is_starred" + ] + }, + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "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" + } + } + }, + "flow-triggers": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ProfileCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostProfileResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "created": { + "description": "Date and time when the profile 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": "Date and time when the profile was last 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 + }, + "last_event_date": { + "description": "Date and time of the most recent event the triggered an update to the profile, 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 + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "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" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileMeta": { + "type": "object", + "properties": { + "patch_properties": { + "description": "Specify one or more patch operations to apply to existing property data", + "example": { + "append": { + "skus": "92538" + } + }, + "$ref": "#/components/schemas/ProfileMetaPatchProperties", + "nullable": true + } + } + }, + "ProfileUpsertQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "_kx": { + "description": "Also known as the `exchange_id`, this is an encrypted identifier used for identifying a\nprofile by Klaviyo's web tracking.\n\nYou can use this field as a filter when retrieving profiles via the Get Profiles endpoint.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + } + } + }, + "meta": { + "$ref": "#/components/schemas/ProfileMeta", + "nullable": true + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ProfileImportJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileBulkImportJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "profiles": { + "description": "Array of profiles to create or update", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileUpsertQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "profiles" + ] + }, + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Optional list to add the profiles to", + "type": "string", + "example": "VRgFBd" + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ProfileImportJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileImportJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostProfileImportJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileBulkImportJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "expires_at": { + "description": "Date and time the job expires 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 + }, + "started_at": { + "description": "Date and time the job started processing 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "List to add the profiles to", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profiles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "IDs of the created/updated profiles", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "import-errors": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ImportErrorEnum" + }, + "id": { + "description": "Errors encountering during import", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/OnlyRelatedLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileUpsertQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileUpsertQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "ProfileMergeEnum": { + "type": "string", + "enum": [ + "profile-merge" + ] + }, + "ProfileMergeQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileMergeEnum" + }, + "id": { + "description": "The ID of the destination profile to merge into", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + }, + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "The ID of a source profile to merge into the destination profile", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4I" + } + } + } + } + } + } + }, + "required": [ + "profiles" + ] + } + }, + "required": [ + "type", + "id", + "relationships" + ] + }, + "ProfileMergeQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileMergeQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostProfileMergeResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "The ID of the destination profile that was merged into", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FlowCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of the Flow", + "type": "string", + "example": "Welcome Flow" + }, + "definition": { + "description": "The encoded flow definition. New objects that do not yet exist, such as actions, need to use a `temporary_id`, not an `id`.", + "$ref": "#/components/schemas/FlowDefinition" + } + }, + "required": [ + "name", + "definition" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "FlowCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FlowCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostFlowV2Response": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "trigger_type": { + "description": "Corresponds to the object which triggered the flow.", + "type": "string", + "enum": [ + "Added to List", + "Date Based", + "Low Inventory", + "Metric", + "Price Drop", + "Unconfigured" + ], + "nullable": true + }, + "definition": { + "description": "The encoded flow definition. Unsupported objects (triggers, actions, etc.) will be included but labeled as unsupported.", + "$ref": "#/components/schemas/FlowDefinition", + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "flow-actions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "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" + ] + }, + "SMSContentCreate": { + "type": "object", + "properties": { + "body": { + "description": "The message body", + "type": "string", + "example": "My preview sms", + "nullable": true + } + } + }, + "SMSMessageDefinitionCreate": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/SmsEnum" + }, + "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" + ] + }, + "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 + } + }, + "required": [ + "body" + ] + }, + "MobilePushMessageStandardDefinitionCreate": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/Mobile_pushEnum" + }, + "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", + "example": "standard", + "default": "standard", + "$ref": "#/components/schemas/StandardEnum" + } + }, + "required": [ + "channel", + "content" + ] + }, + "MobilePushMessageSilentDefinitionCreate": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/Mobile_pushEnum" + }, + "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", + "example": "silent", + "default": "silent", + "$ref": "#/components/schemas/SilentEnum" + } + }, + "required": [ + "channel" + ] + }, + "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" + ] + }, + "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" + ] + }, + "CampaignCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "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: Internal Error", + "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" + ] + }, + "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" + ] + }, + "CampaignCloneQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignCloneQueryResourceObject" + } + }, + "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" + ] + }, + "CampaignMessageAssignTemplateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignMessageAssignTemplateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "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 + } + } + }, + "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 + } + } + }, + "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" + ] + }, + "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 + } + } + }, + "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" + ] + }, + "CampaignSendJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignSendJobEnum" + }, + "id": { + "description": "The ID of the campaign to send", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "CampaignSendJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignSendJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "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" + ] + }, + "CampaignRecipientEstimationJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignRecipientEstimationJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "TemplateCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of the template", + "type": "string", + "example": "Monthly Newsletter Template" + }, + "editor_type": { + "description": "Restricted to CODE and USER_DRAGGABLE", + "type": "string" + }, + "html": { + "description": "The HTML contents of the template", + "type": "string", + "example": "\n \n \n hello world\n \n \n ", + "nullable": true + }, + "text": { + "description": "The plaintext version of the template", + "type": "string", + "example": "hello world", + "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 + } + }, + "required": [ + "name", + "editor_type" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "TemplateCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TemplateCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostTemplateResponse": { + "type": "object", + "properties": { + "data": { + "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:\n* SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template\n* SIMPLE: A rich text editor template\n* CODE: A custom HTML template\n* 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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "TemplateRenderQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateEnum" + }, + "id": { + "description": "The ID of template", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "context": { + "description": "The context for the template render. This must be a JSON object which has values for any tags used in the template. See [this doc](https://help.klaviyo.com/hc/en-us/articles/4408802648731) for more details.", + "type": "object", + "example": { + "first_name": "Jane", + "last_name": "Smith" + } + } + }, + "required": [ + "context" + ] + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "TemplateRenderQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TemplateRenderQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "TemplateCloneQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateEnum" + }, + "id": { + "description": "The ID of template to be cloned", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of the template", + "type": "string", + "example": "Clone of Monthly Newsletter Template", + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "TemplateCloneQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TemplateCloneQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "items": { + "description": "Array of catalog items to create.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogItemCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogItemCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogItemCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogItemCreateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the created catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + }, + "attributes": { + "type": "object", + "properties": { + "title": { + "description": "The title of the catalog item.", + "type": "string", + "example": "Ocean Blue Shirt (Sample)", + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).", + "type": "number", + "example": 42, + "nullable": true + }, + "description": { + "description": "A description of the catalog item.", + "type": "string", + "example": "A description of the catalog item.", + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item is published.", + "type": "boolean", + "example": true, + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "A list of catalog category IDs representing the categories the item is in", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "CatalogItemUpdateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkUpdateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "items": { + "description": "Array of catalog items to update.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogItemUpdateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogItemUpdateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogItemUpdateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogItemUpdateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkUpdateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the updated catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogItemDeleteQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + }, + "required": [ + "type", + "id" + ] + }, + "CatalogItemDeleteJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkDeleteJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "items": { + "description": "Array of catalog items to delete.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogItemDeleteQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogItemDeleteJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogItemDeleteJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogItemDeleteJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "IDs of the deleted catalog items.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "variants": { + "description": "Array of catalog variants to create.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "variants" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogVariantCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogVariantCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogVariantCreateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the created catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + }, + "attributes": { + "type": "object", + "properties": { + "title": { + "description": "The title of the catalog item variant.", + "type": "string", + "example": "Ocean Blue Shirt (Sample) Variant Medium", + "nullable": true + }, + "description": { + "description": "A description of the catalog item variant.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "sku": { + "description": "The SKU of the catalog item variant.", + "type": "string", + "example": "OBS-MD", + "nullable": true + }, + "inventory_policy": { + "description": "This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:\n`1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.\n`0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.", + "type": "integer", + "example": 2, + "enum": [ + 0, + 1, + 2 + ], + "nullable": true + }, + "inventory_quantity": { + "description": "The quantity of the catalog item variant currently in stock.", + "type": "number", + "example": 25, + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item variant on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item variant.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item variant is published.", + "type": "boolean", + "example": true, + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "CatalogVariantUpdateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkUpdateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "variants": { + "description": "Array of catalog variants to update.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantUpdateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "variants" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogVariantUpdateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogVariantUpdateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogVariantUpdateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkUpdateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the updated catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogVariantDeleteQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + }, + "required": [ + "type", + "id" + ] + }, + "CatalogVariantDeleteJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkDeleteJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "variants": { + "description": "Array of catalog variants to delete.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogVariantDeleteQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "variants" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogVariantDeleteJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogVariantDeleteJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogVariantDeleteJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "IDs of the deleted catalog variants.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "categories": { + "description": "Array of catalog categories to create.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogCategoryCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "categories" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogCategoryCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogCategoryCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogCategoryCreateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the created catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of the catalog category.", + "type": "string", + "example": "Sample Data Category Apparel", + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "A list of catalog item IDs that are in the given category.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "CatalogCategoryUpdateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkUpdateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "categories": { + "description": "Array of catalog categories to update.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogCategoryUpdateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "categories" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogCategoryUpdateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogCategoryUpdateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogCategoryUpdateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkUpdateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the updated catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CatalogCategoryDeleteQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + }, + "required": [ + "type", + "id" + ] + }, + "CatalogCategoryDeleteJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkDeleteJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "categories": { + "description": "Array of catalog categories to delete.", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogCategoryDeleteQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "categories" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CatalogCategoryDeleteJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogCategoryDeleteJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCatalogCategoryDeleteJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "failed_count": { + "description": "The total number of operations that have failed as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "errors": { + "description": "Array of errors encountered during the processing of the job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/APIJobErrorPayload" + }, + "nullable": true + }, + "expires_at": { + "description": "Date and time the job expires 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": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "categories": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "IDs of the deleted catalog categories.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "TagCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagEnum" + }, + "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": { + "description": "The ID of the Tag Group to associate the Tag with. If this field is not specified, the Tag will be associated with the company's Default Tag Group.", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "TagCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TagCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostTagResponse": { + "type": "object", + "properties": { + "data": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "TagGroupCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The Tag Group name", + "type": "string", + "example": "My Tag Group" + }, + "exclusive": { + "type": "boolean", + "default": false, + "nullable": true + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "TagGroupCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TagGroupCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostTagGroupResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "id": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The Tag Group name", + "type": "string", + "example": "My Tag Group" + }, + "exclusive": { + "description": "If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.", + "type": "boolean" + }, + "default": { + "description": "Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.", + "type": "boolean" + } + }, + "required": [ + "name", + "exclusive", + "default" + ] + }, + "relationships": { + "type": "object", + "properties": { + "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" + ] + }, + "TagFlowOp": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "description": "The IDs of the flows to link or unlink with the given Tag ID", + "type": "string" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "TagCampaignOp": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignEnum" + }, + "id": { + "description": "The IDs of the campaigns to link or unlink with the given Tag ID", + "type": "string" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "TagListOp": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "The IDs of the lists to link or unlink with the given Tag ID", + "type": "string" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "TagSegmentOp": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "description": "The IDs of the segments to link or unlink with the given Tag ID", + "type": "string" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "WebhookCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the webhook.", + "type": "string", + "example": "My Webhook" + }, + "description": { + "description": "A description for the webhook.", + "type": "string", + "example": "A webhook for sms events", + "nullable": true + }, + "endpoint_url": { + "description": "A url to send webhook calls to. Must be https.", + "type": "string", + "example": "https://www.example.com/example/path" + }, + "secret_key": { + "description": "A secret key, that will be used for webhook request signing.", + "type": "string", + "example": "INSERT_SECRET_KEY" + } + }, + "required": [ + "name", + "endpoint_url", + "secret_key" + ] + }, + "relationships": { + "type": "object", + "properties": { + "webhook-topics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "A list of topics to subscribe to.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + } + } + } + } + } + }, + "required": [ + "webhook-topics" + ] + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "WebhookCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/WebhookCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostWebhookResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookEnum" + }, + "id": { + "description": "The ID of the webhook.", + "type": "string", + "example": "01HF7AYTK76RHR4F17G6DGTRGF" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the webhook.", + "type": "string", + "example": "My Webhook" + }, + "description": { + "description": "A description for the webhook.", + "type": "string", + "example": "A webhook for sms events", + "nullable": true + }, + "endpoint_url": { + "description": "The url to send webhook requests to, truncated for security.", + "type": "string", + "example": "https://www.example.com" + }, + "enabled": { + "description": "Is the webhook enabled.", + "type": "boolean" + }, + "created_at": { + "description": "Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + }, + "updated_at": { + "description": "Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + } + }, + "required": [ + "name", + "endpoint_url", + "enabled" + ] + }, + "relationships": { + "type": "object", + "properties": { + "webhook-topics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "A topic the webhook is subscribed to.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileSuppressionCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "The email of the profile to suppress.", + "type": "string", + "example": "matt-kemp@klaviyo-demo.com" + } + }, + "required": [ + "email" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SuppressionCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSuppressionBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "profiles": { + "description": "The profile(s) to create suppressions for.", + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileSuppressionCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + } + }, + "relationships": { + "type": "object", + "properties": { + "list": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Suppress all profiles in this list", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "segment": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "description": "Suppress all profiles in this segment", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SuppressionCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SuppressionCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostBulkProfileSuppressionsCreateJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSuppressionBulkCreateJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "skipped_count": { + "description": "The total number of profiles that have been skipped as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + } + }, + "required": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Suppress/Unsuppress all profiles in this list", + "type": "string", + "example": "Y6nRLr" + } + } + } + }, + "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": { + "description": "Suppress/Unsuppress all profiles in this segment", + "type": "string", + "example": "Y6nRLr" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileSuppressionDeleteQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "The email of the profile to unsuppress.", + "type": "string", + "example": "matt-kemp@klaviyo-demo.com" + } + }, + "required": [ + "email" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SuppressionDeleteJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSuppressionBulkDeleteJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "profiles": { + "description": "The profile(s) to remove suppressions for.", + "type": "object", + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileSuppressionDeleteQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + } + }, + "relationships": { + "type": "object", + "properties": { + "list": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "The list to pull the profiles to remove suppressions from", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "segment": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "description": "The segment to pull the profiles to remove suppressions from", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SuppressionDeleteJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SuppressionDeleteJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostBulkProfileSuppressionsRemoveJobResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSuppressionBulkDeleteJobEnum" + }, + "id": { + "description": "Unique identifier for retrieving the job. Generated by Klaviyo.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status of the asynchronous job.", + "type": "string", + "example": "processing", + "enum": [ + "cancelled", + "complete", + "processing", + "queued" + ] + }, + "created_at": { + "description": "The date and time the job 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" + }, + "total_count": { + "description": "The total number of operations to be processed by the job. See `completed_count` for the job's current progress.", + "type": "integer", + "example": 10 + }, + "completed_count": { + "description": "The total number of operations that have been completed by the job.", + "type": "integer", + "example": 9, + "default": 0, + "nullable": true + }, + "completed_at": { + "description": "Date and time the job was completed 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 + }, + "skipped_count": { + "description": "The total number of profiles that have been skipped as part of the job.", + "type": "integer", + "example": 1, + "default": 0, + "nullable": true + } + }, + "required": [ + "status", + "created_at", + "total_count" + ] + }, + "relationships": { + "type": "object", + "properties": { + "lists": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Suppress/Unsuppress all profiles in this list", + "type": "string", + "example": "Y6nRLr" + } + } + } + }, + "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": { + "description": "Suppress/Unsuppress all profiles in this segment", + "type": "string", + "example": "Y6nRLr" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "SubscriptionParameters": { + "type": "object", + "properties": { + "consent": { + "description": "The Consent status to be set as part of the subscribe call. Currently supports \"SUBSCRIBED\".", + "type": "string", + "example": "SUBSCRIBED", + "enum": [ + "SUBSCRIBED" + ] + }, + "consented_at": { + "description": "The timestamp of when the profile's consent was gathered. This should only be used when syncing over historical consent info to Klaviyo; if the `historical_import` flag is not included, providing any value for this field will raise an error.", + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "consent" + ] + }, + "EmailSubscriptionParameters": { + "type": "object", + "properties": { + "marketing": { + "description": "The parameters to subscribe to on the \"EMAIL\" Channel. Currently supports \"MARKETING\".", + "$ref": "#/components/schemas/SubscriptionParameters" + } + }, + "required": [ + "marketing" + ] + }, + "SMSSubscriptionParameters": { + "type": "object", + "properties": { + "marketing": { + "description": "The parameters to subscribe to marketing on the \"SMS\" Channel.", + "$ref": "#/components/schemas/SubscriptionParameters", + "nullable": true + }, + "transactional": { + "description": "The parameters to subscribe to transactional messaging on the \"SMS\" Channel.", + "$ref": "#/components/schemas/SubscriptionParameters", + "nullable": true + } + } + }, + "WhatsAppSubscriptionParameters": { + "type": "object", + "properties": { + "marketing": { + "description": "The parameters to subscribe to marketing on the \"WhatsApp\" Channel.", + "$ref": "#/components/schemas/SubscriptionParameters", + "nullable": true + }, + "transactional": { + "description": "The parameters to subscribe to transactional messaging on the \"WhatsApp\" Channel.", + "$ref": "#/components/schemas/SubscriptionParameters", + "nullable": true + } + } + }, + "SubscriptionChannels": { + "type": "object", + "properties": { + "email": { + "description": "The subscription parameters to subscribe to on the \"EMAIL\" Channel.", + "$ref": "#/components/schemas/EmailSubscriptionParameters", + "nullable": true + }, + "sms": { + "description": "The subscription parameters to subscribe to on the \"SMS\" Channel.", + "$ref": "#/components/schemas/SMSSubscriptionParameters", + "nullable": true + }, + "whatsapp": { + "description": "The subscription parameters to subscribe to on the \"WhatsApp\" Channel.", + "$ref": "#/components/schemas/WhatsAppSubscriptionParameters", + "nullable": true + } + } + }, + "ProfileSubscriptionCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "The ID of the profile to subscribe. If provided, this will be used to perform the lookup.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "The email address relating to the email subscription included in `subscriptions`. If the email channel is omitted from `subscriptions`, this will be set on the profile.", + "type": "string", + "example": "matt-kemp@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "The phone number relating to the SMS subscription included in `subscriptions`. If the SMS channel is omitted from `subscriptions`, this will be set on the profile. This must be in E.164 format.", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "subscriptions": { + "description": "Specifies the channel and message types that the profile will be consented to.", + "$ref": "#/components/schemas/SubscriptionChannels" + }, + "age_gated_date_of_birth": { + "description": "The profile's date of birth. This field is required to update SMS consent for accounts using age-gating: https://help.klaviyo.com/hc/en-us/articles/17252552814875", + "type": "string", + "format": "date", + "nullable": true + } + }, + "required": [ + "subscriptions" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ProfileSubscriptionBulkCreateJobEnum": { + "type": "string", + "enum": [ + "profile-subscription-bulk-create-job" + ] + }, + "SubscriptionCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSubscriptionBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "custom_source": { + "description": "A custom method detail or source to store on the consent records.", + "type": "string", + "example": "Marketing Event", + "nullable": true + }, + "profiles": { + "description": "The profile(s) to subscribe", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileSubscriptionCreateQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + }, + "historical_import": { + "description": "Whether this subscription is part of a historical import. If true, the consented_at field must be provided for each profile.", + "type": "boolean", + "default": false, + "nullable": true + } + }, + "required": [ + "profiles" + ] + }, + "relationships": { + "type": "object", + "properties": { + "list": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "The list to add the newly subscribed profiles to", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SubscriptionCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SubscriptionCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "UnsubscriptionParameters": { + "type": "object", + "properties": { + "consent": { + "description": "The Consent status to be set as part of the unsubscribe call. Currently supports \"UNSUBSCRIBED\".", + "type": "string", + "example": "UNSUBSCRIBED", + "enum": [ + "UNSUBSCRIBED" + ] + } + }, + "required": [ + "consent" + ] + }, + "EmailUnsubscriptionParameters": { + "type": "object", + "properties": { + "marketing": { + "description": "The parameters to unsubscribe from marketing on the \"EMAIL\" channel.", + "$ref": "#/components/schemas/UnsubscriptionParameters" + } + }, + "required": [ + "marketing" + ] + }, + "SMSUnsubscriptionParameters": { + "type": "object", + "properties": { + "marketing": { + "description": "The parameters to unsubscribe from marketing on the \"SMS\" channel.", + "$ref": "#/components/schemas/UnsubscriptionParameters", + "nullable": true + }, + "transactional": { + "description": "The parameters to unsubscribe from transactional messaging on the \"SMS\" channel.", + "$ref": "#/components/schemas/UnsubscriptionParameters", + "nullable": true + } + } + }, + "WhatsAppUnsubscriptionParameters": { + "type": "object", + "properties": { + "marketing": { + "description": "The parameters to unsubscribe from marketing on the \"WhatsApp\" channel.", + "$ref": "#/components/schemas/UnsubscriptionParameters", + "nullable": true + }, + "transactional": { + "description": "The parameters to unsubscribe from transactional messaging on the \"WhatsApp\" channel.", + "$ref": "#/components/schemas/UnsubscriptionParameters", + "nullable": true + }, + "conversational": { + "description": "The parameters to unsubscribe from conversational messaging on the \"WhatsApp\" channel.", + "$ref": "#/components/schemas/UnsubscriptionParameters", + "nullable": true + } + } + }, + "UnsubscriptionChannels": { + "type": "object", + "properties": { + "email": { + "description": "The subscription parameters to unsubscribe from the \"EMAIL\" Channel.", + "$ref": "#/components/schemas/EmailUnsubscriptionParameters", + "nullable": true + }, + "sms": { + "description": "The subscription parameters to unsubscribe from the \"SMS\" Channel.", + "$ref": "#/components/schemas/SMSUnsubscriptionParameters", + "nullable": true + }, + "whatsapp": { + "description": "The subscription parameters to unsubscribe from the \"WhatsApp\" Channel.", + "$ref": "#/components/schemas/WhatsAppUnsubscriptionParameters", + "nullable": true + } + } + }, + "ProfileSubscriptionDeleteQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "The email address to unsubscribe.", + "type": "string", + "example": "matt-kemp@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "The phone number to unsubscribe. This must be in E.164 format.", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "subscriptions": { + "description": "Specifies the channel and message types that the profile will have consent revoked from.", + "$ref": "#/components/schemas/UnsubscriptionChannels" + } + }, + "required": [ + "subscriptions" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ProfileSubscriptionBulkDeleteJobEnum": { + "type": "string", + "enum": [ + "profile-subscription-bulk-delete-job" + ] + }, + "SubscriptionDeleteJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileSubscriptionBulkDeleteJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "profiles": { + "description": "The profile(s) to unsubscribe", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileSubscriptionDeleteQueryResourceObject" + } + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "profiles" + ] + }, + "relationships": { + "type": "object", + "properties": { + "list": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "The list to remove the profiles from", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SubscriptionDeleteJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SubscriptionDeleteJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "DataPrivacyProfileQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "DataPrivacyDeletionJobEnum": { + "type": "string", + "enum": [ + "data-privacy-deletion-job" + ] + }, + "DataPrivacyCreateDeletionJobQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataPrivacyDeletionJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "profile": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DataPrivacyProfileQueryResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "profile" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "DataPrivacyCreateDeletionJobQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DataPrivacyCreateDeletionJobQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PushProfileUpsertQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "_kx": { + "description": "Also known as the `exchange_id`, this is an encrypted identifier used for identifying a\nprofile by Klaviyo's web tracking.\n\nYou can use this field as a filter when retrieving profiles via the Get Profiles endpoint.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "meta": { + "$ref": "#/components/schemas/ProfileMeta", + "nullable": true + }, + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "PushTokenCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "attributes": { + "type": "object", + "properties": { + "token": { + "description": "A push token from APNS or FCM.", + "type": "string", + "example": "1234567890" + }, + "platform": { + "description": "The platform on which the push token was created.", + "type": "string", + "enum": [ + "android", + "ios" + ] + }, + "enablement_status": { + "description": "This is the enablement status for the individual push token.", + "type": "string", + "example": "AUTHORIZED", + "default": "AUTHORIZED", + "enum": [ + "AUTHORIZED", + "DENIED", + "NOT_DETERMINED", + "PROVISIONAL", + "UNAUTHORIZED" + ], + "nullable": true + }, + "vendor": { + "description": "The vendor of the push token.", + "type": "string", + "example": "apns", + "enum": [ + "apns", + "fcm" + ] + }, + "background": { + "description": "The background state of the push token.", + "type": "string", + "example": "AVAILABLE", + "default": "AVAILABLE", + "enum": [ + "AVAILABLE", + "DENIED", + "RESTRICTED" + ], + "nullable": true + }, + "device_metadata": { + "description": "Metadata about the device that created the push token", + "$ref": "#/components/schemas/DeviceMetadata", + "nullable": true + }, + "profile": { + "description": "The profile associated with the push token to create/update", + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PushProfileUpsertQueryResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "token", + "platform", + "vendor", + "profile" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "PushTokenCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PushTokenCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "ImageCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ImageEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the image. Defaults to the filename if not provided. If the name matches an existing image, a suffix will be added.", + "type": "string", + "nullable": true + }, + "import_from_url": { + "description": "An existing image url to import the image from. Alternatively, you may specify a base-64 encoded data-uri (`data:image/...`). Supported image formats: jpeg,png,gif. Maximum image size: 5MB.", + "type": "string", + "example": "https://www.example.com/example.jpg" + }, + "hidden": { + "description": "If true, this image is not shown in the asset library.", + "type": "boolean", + "default": false, + "nullable": true + } + }, + "required": [ + "import_from_url" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ImageCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ImageCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostImageResponse": { + "type": "object", + "properties": { + "data": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ImageUploadQuery": { + "type": "object", + "properties": { + "file": { + "description": "The image file to upload. Supported image formats: jpeg,png,gif. Maximum image size: 5MB.", + "type": "string", + "format": "binary" + }, + "name": { + "description": "A name for the image. Defaults to the filename if not provided. If the name matches an existing image, a suffix will be added.", + "type": "string" + }, + "hidden": { + "description": "If true, this image is not shown in the asset library.", + "type": "boolean", + "default": false + } + }, + "required": [ + "file" + ] + }, + "Timeframe": { + "type": "object", + "properties": { + "key": { + "description": "Pre-defined key that represents a set timeframe", + "type": "string", + "enum": [ + "last_12_months", + "last_30_days", + "last_365_days", + "last_3_months", + "last_7_days", + "last_90_days", + "last_month", + "last_week", + "last_year", + "this_month", + "this_week", + "this_year", + "today", + "yesterday" + ] + } + }, + "required": [ + "key" + ] + }, + "CustomTimeframe": { + "type": "object", + "properties": { + "start": { + "description": "A datetime that represents the start of a custom time frame. Offset is ignored and the company timezone is used.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "end": { + "description": "A datetime that represents the end of a custom time frame. Offset is ignored and the company timezone is used.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + } + }, + "required": [ + "start", + "end" + ] + }, + "CampaignValuesReportEnum": { + "type": "string", + "enum": [ + "campaign-values-report" + ] + }, + "CampaignValuesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "average_order_value", + "bounce_rate", + "bounced", + "bounced_or_failed", + "bounced_or_failed_rate", + "click_rate", + "click_to_open_rate", + "clicks", + "clicks_unique", + "conversion_rate", + "conversion_uniques", + "conversion_value", + "conversions", + "delivered", + "delivery_rate", + "failed", + "failed_rate", + "message_segment_count_sum", + "open_rate", + "opens", + "opens_unique", + "recipients", + "revenue_per_recipient", + "spam_complaint_rate", + "spam_complaints", + "text_message_credit_usage_amount", + "text_message_roi", + "text_message_spend", + "unsubscribe_rate", + "unsubscribe_uniques", + "unsubscribes" + ], + "description": "Defined reporting metric" + }, + "example": [ + "opens", + "open_rate" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "conversion_metric_id": { + "description": "ID of the metric to be used for conversion statistics", + "type": "string", + "example": "RESQ6t" + }, + "group_by": { + "description": "List of attributes to group the data by.\nAllowed group-bys are campaign_id, campaign_message_id, group, send_channel, tag_id, tag_name, text_message_format, variation.\nIf not passed in, the data will be grouped by campaign_id, campaign_message_id, send_channel.\nThe following group by attributes are required: campaign_id, campaign_message_id", + "type": "array", + "items": { + "type": "string", + "enum": [ + "campaign_id", + "campaign_message_id", + "group", + "send_channel", + "tag_id", + "tag_name", + "text_message_format", + "variation" + ], + "description": "Attributes to represent what is being grouped by / filtered on for Campaigns" + }, + "nullable": true + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are send_channel, campaign_id, campaign_message_id, variation, text_message_format.\nAllowed operators are equals, contains-any.\nOnly one filter can be used per attribute, only AND can be used as a combination operator.\nMax of 100 messages per ANY filter.\nWhen filtering on send_channel, allowed values are email, sms, push-notification, whatsapp.", + "type": "string", + "example": "and(equals(campaign_id,\"abc123\"),contains-any(send_channel,[\"email\",\"sms\"]))", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe", + "conversion_metric_id" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CampaignValuesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignValuesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "ValuesData": { + "type": "object", + "properties": { + "groupings": { + "description": "Applied groupings and the values for this object", + "type": "object" + }, + "statistics": { + "description": "Requested statistics and their values results", + "type": "object" + } + }, + "required": [ + "groupings", + "statistics" + ] + }, + "PostCampaignValuesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CampaignValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValuesData" + }, + "example": [ + { + "groupings": { + "send_channel": "email", + "campaign_id": "01GMRWDSA0ARTAKE1SFX8JGXAY", + "campaign_message_id": "01GMRWDSA0ARTAKE1SFX8JGXAY" + }, + "statistics": { + "opens": 123, + "open_rate": 0.8253 + } + }, + { + "groupings": { + "send_channel": "email", + "campaign_id": "01GJTHNWVG93F3KNX71SJ4FDBB", + "campaign_message_id": "01GJTHNWVG93F3KNX71SJ4FDBB" + }, + "statistics": { + "opens": 97, + "open_rate": 0.7562 + } + } + ] + } + }, + "required": [ + "results" + ] + }, + "relationships": { + "type": "object", + "properties": { + "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" + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FlowValuesReportEnum": { + "type": "string", + "enum": [ + "flow-values-report" + ] + }, + "FlowValuesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "average_order_value", + "bounce_rate", + "bounced", + "bounced_or_failed", + "bounced_or_failed_rate", + "click_rate", + "click_to_open_rate", + "clicks", + "clicks_unique", + "conversion_rate", + "conversion_uniques", + "conversion_value", + "conversions", + "delivered", + "delivery_rate", + "failed", + "failed_rate", + "message_segment_count_sum", + "open_rate", + "opens", + "opens_unique", + "recipients", + "revenue_per_recipient", + "spam_complaint_rate", + "spam_complaints", + "text_message_credit_usage_amount", + "text_message_roi", + "text_message_spend", + "unsubscribe_rate", + "unsubscribe_uniques", + "unsubscribes" + ], + "description": "Defined reporting metric" + }, + "example": [ + "opens", + "open_rate" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "conversion_metric_id": { + "description": "ID of the metric to be used for conversion statistics", + "type": "string", + "example": "RESQ6t" + }, + "group_by": { + "description": "List of attributes to group the data by.\nAllowed group-bys are flow_id, flow_message_id, send_channel, tag_id, tag_name, text_message_format, variation.\nIf not passed in, the data will be grouped by flow_id, flow_message_id, send_channel.\nThe following group by attributes are required: flow_message_id, flow_id.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow_id", + "flow_message_id", + "send_channel", + "tag_id", + "tag_name", + "text_message_format", + "variation" + ], + "description": "Attributes to represent what is being grouped by for Flows" + }, + "nullable": true + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are flow_id, send_channel, flow_message_id, text_message_format.\nAllowed operators are equals, contains-any.\nOnly one filter can be used per attribute, only AND can be used as a combination operator.\nMax of 100 messages per ANY filter.\nWhen filtering on send_channel, allowed values are email, sms, push-notification, whatsapp.", + "type": "string", + "example": "and(equals(flow_id,\"abc123\"),contains-any(send_channel,[\"email\",\"sms\"]))", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe", + "conversion_metric_id" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "FlowValuesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FlowValuesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostFlowValuesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValuesData" + }, + "example": [ + { + "groupings": { + "flow_id": "XVTP5Q", + "send_channel": "email", + "flow_message_id": "01GMRWDSA0ARTAKE1SFX8JGXAY" + }, + "statistics": { + "opens": 123, + "open_rate": 0.8253 + } + }, + { + "groupings": { + "flow_id": "XVTP5Q", + "send_channel": "email", + "flow_message_id": "01GJTHNWVG93F3KNX71SJ4FDBB" + }, + "statistics": { + "opens": 97, + "open_rate": 0.7562 + } + } + ] + } + }, + "required": [ + "results" + ] + }, + "relationships": { + "type": "object", + "properties": { + "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" + } + } + }, + "flow-messages": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FlowSeriesReportEnum": { + "type": "string", + "enum": [ + "flow-series-report" + ] + }, + "FlowSeriesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowSeriesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "average_order_value", + "bounce_rate", + "bounced", + "bounced_or_failed", + "bounced_or_failed_rate", + "click_rate", + "click_to_open_rate", + "clicks", + "clicks_unique", + "conversion_rate", + "conversion_uniques", + "conversion_value", + "conversions", + "delivered", + "delivery_rate", + "failed", + "failed_rate", + "message_segment_count_sum", + "open_rate", + "opens", + "opens_unique", + "recipients", + "revenue_per_recipient", + "spam_complaint_rate", + "spam_complaints", + "text_message_credit_usage_amount", + "text_message_roi", + "text_message_spend", + "unsubscribe_rate", + "unsubscribe_uniques", + "unsubscribes" + ], + "description": "Defined reporting metric" + }, + "example": [ + "opens", + "open_rate" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "interval": { + "description": "The interval used to aggregate data within the series request.\nIf hourly is used, the timeframe cannot be longer than 7 days.\nIf daily is used, the timeframe cannot be longer than 60 days.\nIf monthly is used, the timeframe cannot be longer than 52 weeks.", + "type": "string", + "example": "weekly", + "enum": [ + "daily", + "hourly", + "monthly", + "weekly" + ] + }, + "conversion_metric_id": { + "description": "ID of the metric to be used for conversion statistics", + "type": "string", + "example": "RESQ6t" + }, + "group_by": { + "description": "List of attributes to group the data by.\nAllowed group-bys are flow_id, flow_message_id, send_channel, tag_id, tag_name, text_message_format, variation.\nIf not passed in, the data will be grouped by flow_id, flow_message_id, send_channel.\nThe following group by attributes are required: flow_message_id, flow_id.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "flow_id", + "flow_message_id", + "send_channel", + "tag_id", + "tag_name", + "text_message_format", + "variation" + ], + "description": "Attributes to represent what is being grouped by for Flows" + }, + "nullable": true + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are flow_id, send_channel, flow_message_id, text_message_format.\nAllowed operators are equals, contains-any.\nOnly one filter can be used per attribute, only AND can be used as a combination operator.\nMax of 100 messages per ANY filter.\nWhen filtering on send_channel, allowed values are email, sms, push-notification, whatsapp.", + "type": "string", + "example": "and(equals(flow_id,\"abc123\"),contains-any(send_channel,[\"email\",\"sms\"]))", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe", + "interval", + "conversion_metric_id" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "FlowSeriesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FlowSeriesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "SeriesData": { + "type": "object", + "properties": { + "groupings": { + "description": "Applied groupings and the values for this object", + "type": "object" + }, + "statistics": { + "description": "Requested statistics and their series result", + "type": "object" + } + }, + "required": [ + "groupings", + "statistics" + ] + }, + "PostFlowSeriesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowSeriesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.\nEach value in the results array corresponds to the date time at the same index.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesData" + }, + "example": [ + { + "groupings": { + "flow_id": "XVTP5Q", + "send_channel": "email", + "flow_message_id": "01GMRWDSA0ARTAKE1SFX8JGXAY" + }, + "statistics": { + "opens": [ + 123, + 156, + 144 + ], + "open_rate": [ + 0.8253, + 0.8722, + 0.8398 + ] + } + }, + { + "groupings": { + "flow_id": "XVTP5Q", + "send_channel": "email", + "flow_message_id": "01GJTHNWVG93F3KNX71SJ4FDBB" + }, + "statistics": { + "opens": [ + 97, + 98, + 65 + ], + "open_rate": [ + 0.7562, + 0.761, + 0.688 + ] + } + } + ] + }, + "date_times": { + "description": "An array of date times which correspond to the equivalent index in the results data.", + "type": "array", + "items": { + "type": "string", + "format": "date-time" + }, + "example": [ + "2024-01-05T00:00:00+00:00", + "2024-01-06T00:00:00+00:00", + "2024-01-07T00:00:00+00:00" + ] + } + }, + "required": [ + "results", + "date_times" + ] + }, + "relationships": { + "type": "object", + "properties": { + "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" + } + } + }, + "flow-messages": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FormValuesReportEnum": { + "type": "string", + "enum": [ + "form-values-report" + ] + }, + "FormValuesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "closed_form", + "closed_form_uniques", + "qualified_form", + "qualified_form_uniques", + "submit_rate", + "submits", + "submitted_form_step", + "submitted_form_step_uniques", + "viewed_form", + "viewed_form_step", + "viewed_form_step_uniques", + "viewed_form_uniques" + ], + "description": "Defined form reporting metric" + }, + "example": [ + "viewed_form", + "submit_rate" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "group_by": { + "description": "List of attributes to group the data by.\nAllowed group-bys are form_id, form_version_id.\nIf not passed in, the data will be grouped by form_id.\nIf a group by has prerequisites, they must be passed in together. The prerequisites for form_version_id is form_id", + "type": "array", + "items": { + "type": "string", + "enum": [ + "form_id", + "form_version_id" + ], + "description": "Attributes to represent what is being grouped by for Forms" + }, + "nullable": true + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are form_id, form_version_id.\nAllowed operators are equals, any.\nOnly one filter can be used per attribute, only AND can be used as a combination operator.\nMax of 100 messages per ANY filter.", + "type": "string", + "example": "and(equals(form_id,\"abc123\"),any(form_version_id,[\"xyz123\",\"ghi456\"]))", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "FormValuesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FormValuesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostFormValuesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValuesData" + }, + "example": [ + { + "groupings": { + "form_id": "abc123", + "form_version_id": "012tuy" + }, + "statistics": { + "viewed_form": 90, + "submits": 9, + "submit_rate": 0.1 + } + }, + { + "groupings": { + "form_id": "abc123", + "form_version_id": "756ghi" + }, + "statistics": { + "viewed_form": 10, + "submits": 1, + "submit_rate": 0.1 + } + } + ] + } + }, + "required": [ + "results" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FormSeriesReportEnum": { + "type": "string", + "enum": [ + "form-series-report" + ] + }, + "FormSeriesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormSeriesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "closed_form", + "closed_form_uniques", + "qualified_form", + "qualified_form_uniques", + "submit_rate", + "submits", + "submitted_form_step", + "submitted_form_step_uniques", + "viewed_form", + "viewed_form_step", + "viewed_form_step_uniques", + "viewed_form_uniques" + ], + "description": "Defined form reporting metric" + }, + "example": [ + "viewed_form", + "submit_rate" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "interval": { + "description": "The interval used to aggregate data within the series request.\nIf hourly is used, the timeframe cannot be longer than 7 days.\nIf daily is used, the timeframe cannot be longer than 60 days.\nIf monthly is used, the timeframe cannot be longer than 52 weeks.", + "type": "string", + "example": "weekly", + "enum": [ + "daily", + "hourly", + "monthly", + "weekly" + ] + }, + "group_by": { + "description": "List of attributes to group the data by.\nAllowed group-bys are form_id, form_version_id.\nIf not passed in, the data will be grouped by form_id.\nIf a group by has prerequisites, they must be passed in together. The prerequisites for form_version_id is form_id", + "type": "array", + "items": { + "type": "string", + "enum": [ + "form_id", + "form_version_id" + ], + "description": "Attributes to represent what is being grouped by for Forms" + }, + "nullable": true + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are form_id, form_version_id.\nAllowed operators are equals, any.\nOnly one filter can be used per attribute, only AND can be used as a combination operator.\nMax of 100 messages per ANY filter.", + "type": "string", + "example": "and(equals(form_id,\"abc123\"),any(form_version_id,[\"xyz123\",\"ghi456\"]))", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe", + "interval" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "FormSeriesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FormSeriesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostFormSeriesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormSeriesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.\nEach value in the results array corresponds to the date time at the same index.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesData" + }, + "example": [ + { + "groupings": { + "form_id": "abc123" + }, + "statistics": { + "viewed_form": [ + 100, + 120, + 140 + ], + "submits": [ + 20, + 22, + 28 + ] + } + }, + { + "groupings": { + "form_id": "def456" + }, + "statistics": { + "viewed_form": [ + 200, + 300, + 400 + ], + "submits": [ + 20, + 25, + 30 + ] + } + } + ] + }, + "date_times": { + "description": "An array of date times which correspond to the equivalent index in the results data.", + "type": "array", + "items": { + "type": "string", + "format": "date-time" + }, + "example": [ + "2024-01-05T00:00:00+00:00", + "2024-01-06T00:00:00+00:00", + "2024-01-07T00:00:00+00:00" + ] + } + }, + "required": [ + "results", + "date_times" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "SegmentValuesReportEnum": { + "type": "string", + "enum": [ + "segment-values-report" + ] + }, + "SegmentValuesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "members_added", + "members_removed", + "net_members_changed", + "total_members" + ], + "description": "Defined segment reporting metric" + }, + "example": [ + "total_members", + "net_members_changed" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). Data is unavailable before June 1st, 2023. Please use a time frame after this date. See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are segment_id.\nAllowed operators are equals, any.\nOnly one filter can be used per attribute.\nMax of 100 messages per ANY filter.", + "type": "string", + "example": "any(segment_id,[\"xyz123\",\"ghi456\"])", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SegmentValuesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SegmentValuesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostSegmentValuesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentValuesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValuesData" + }, + "example": [ + { + "groupings": { + "segment_id": "abc123" + }, + "statistics": { + "total_members": 120, + "net_members_changed": 53 + } + }, + { + "groupings": { + "segment_id": "def123" + }, + "statistics": { + "total_members": 250, + "net_members_changed": 113 + } + } + ] + } + }, + "required": [ + "results" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "SegmentSeriesReportEnum": { + "type": "string", + "enum": [ + "segment-series-report" + ] + }, + "SegmentSeriesRequestDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentSeriesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "statistics": { + "description": "List of statistics to query for.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "members_added", + "members_removed", + "net_members_changed", + "total_members" + ], + "description": "Defined segment reporting metric" + }, + "example": [ + "total_members", + "net_members_changed" + ] + }, + "timeframe": { + "description": "The time frame to pull data from (Max length: 1 year). Data is unavailable before June 1st, 2023. Please use a time frame after this date. See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).", + "oneOf": [ + { + "$ref": "#/components/schemas/Timeframe" + }, + { + "$ref": "#/components/schemas/CustomTimeframe" + } + ] + }, + "interval": { + "description": "The interval used to aggregate data within the series request.\nIf hourly is used, the timeframe cannot be longer than 7 days.\nIf daily is used, the timeframe cannot be longer than 60 days.\nIf monthly is used, the timeframe cannot be longer than 52 weeks.", + "type": "string", + "example": "weekly", + "enum": [ + "daily", + "hourly", + "monthly", + "weekly" + ] + }, + "filter": { + "description": "API filter string used to filter the query.\nAllowed filters are segment_id.\nAllowed operators are equals, any.\nOnly one filter can be used per attribute.\nMax of 100 messages per ANY filter.", + "type": "string", + "example": "any(segment_id,[\"xyz123\",\"ghi456\"])", + "nullable": true + } + }, + "required": [ + "statistics", + "timeframe", + "interval" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SegmentSeriesRequestDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SegmentSeriesRequestDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostSegmentSeriesResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentSeriesReportEnum" + }, + "attributes": { + "type": "object", + "properties": { + "results": { + "description": "An array of all the returned values data.\nEach object in the array represents one unique grouping and the results for that grouping.\nEach value in the results array corresponds to the date time at the same index.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesData" + }, + "example": [ + { + "groupings": { + "segment_id": "abc123" + }, + "statistics": { + "total_members": [ + 120, + 185, + 240 + ], + "net_members_changed": [ + 40, + 62, + 88 + ] + } + }, + { + "groupings": { + "segment_id": "def456" + }, + "statistics": { + "total_members": [ + 103, + 163, + 213 + ], + "net_members_changed": [ + 36, + 66, + 86 + ] + } + } + ] + }, + "date_times": { + "description": "An array of date times which correspond to the equivalent index in the results data.", + "type": "array", + "items": { + "type": "string", + "format": "date-time" + }, + "example": [ + "2024-01-05T00:00:00+00:00", + "2024-01-06T00:00:00+00:00", + "2024-01-07T00:00:00+00:00" + ] + } + }, + "required": [ + "results", + "date_times" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "UniversalContentCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateUniversalContentEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this universal content", + "type": "string" + }, + "definition": { + "oneOf": [ + { + "$ref": "#/components/schemas/ButtonBlock" + }, + { + "$ref": "#/components/schemas/DropShadowBlock" + }, + { + "$ref": "#/components/schemas/HorizontalRuleBlock" + }, + { + "$ref": "#/components/schemas/HTMLBlock" + }, + { + "$ref": "#/components/schemas/ImageBlock" + }, + { + "$ref": "#/components/schemas/SpacerBlock" + }, + { + "$ref": "#/components/schemas/TextBlock" + } + ] + } + }, + "required": [ + "name", + "definition" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "UniversalContentCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/UniversalContentCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostUniversalContentResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateUniversalContentEnum" + }, + "id": { + "description": "The ID of the universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this universal content", + "type": "string" + }, + "definition": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ButtonBlock" + }, + { + "$ref": "#/components/schemas/CouponBlock" + }, + { + "$ref": "#/components/schemas/DropShadowBlock" + }, + { + "$ref": "#/components/schemas/HeaderBlock" + }, + { + "$ref": "#/components/schemas/HorizontalRuleBlock" + }, + { + "$ref": "#/components/schemas/HTMLBlock" + }, + { + "$ref": "#/components/schemas/ImageBlock" + }, + { + "$ref": "#/components/schemas/ProductBlock" + }, + { + "$ref": "#/components/schemas/ReviewBlock" + }, + { + "$ref": "#/components/schemas/SocialBlock" + }, + { + "$ref": "#/components/schemas/SpacerBlock" + }, + { + "$ref": "#/components/schemas/SplitBlock" + }, + { + "$ref": "#/components/schemas/TableBlock" + }, + { + "$ref": "#/components/schemas/TextBlock" + }, + { + "$ref": "#/components/schemas/UnsupportedBlock" + }, + { + "$ref": "#/components/schemas/VideoBlock" + }, + { + "$ref": "#/components/schemas/Section" + } + ] + }, + "created": { + "description": "The datetime when this universal content was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "updated": { + "description": "The datetime when this universal content was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "screenshot_status": { + "description": "The status of a universal content screenshot.", + "type": "string", + "enum": [ + "completed", + "failed", + "generating", + "never_generated", + "not_renderable", + "stale" + ] + }, + "screenshot_url": { + "type": "string" + } + }, + "required": [ + "name", + "created", + "updated", + "screenshot_status", + "screenshot_url" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FormCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormEnum" + }, + "attributes": { + "type": "object", + "properties": { + "definition": { + "description": "The encoded form definition.", + "$ref": "#/components/schemas/FormDefinition" + }, + "status": { + "description": "The status of the form.", + "type": "string", + "example": "draft", + "enum": [ + "draft", + "live" + ] + }, + "ab_test": { + "description": "Whether the form has an A/B test configured.", + "type": "boolean" + }, + "name": { + "description": "The name of the form.", + "type": "string", + "example": "Cyber Monday Deals" + } + }, + "required": [ + "definition", + "status", + "ab_test", + "name" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "FormCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FormCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostEncodedFormResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FormEnum" + }, + "id": { + "description": "The ID of the form", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "The status of the form.", + "type": "string", + "example": "draft", + "enum": [ + "draft", + "live" + ] + }, + "ab_test": { + "description": "Whether the form has an A/B test configured.", + "type": "boolean" + }, + "name": { + "description": "The name of the form.", + "type": "string", + "example": "Cyber Monday Deals" + }, + "definition": { + "description": "The encoded form definition.", + "$ref": "#/components/schemas/FormDefinition" + }, + "created_at": { + "description": "The ISO8601 timestamp when the form was created.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + }, + "updated_at": { + "description": "The ISO8601 timestamp when the form was last updated.", + "type": "string", + "format": "date-time", + "example": "2024-03-04T00:00:00Z" + } + }, + "required": [ + "status", + "ab_test", + "name", + "definition", + "created_at", + "updated_at" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "DataSourceRecordEnum": { + "type": "string", + "enum": [ + "data-source-record" + ] + }, + "DataSourceRecordResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceRecordEnum" + }, + "attributes": { + "type": "object", + "properties": { + "record": { + "type": "object" + } + }, + "required": [ + "record" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "DataSourceRecordBulkCreateJobEnum": { + "type": "string", + "enum": [ + "data-source-record-bulk-create-job" + ] + }, + "DataSourceRecordBulkCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceRecordBulkCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "data-source-records": { + "description": "The records to ingest.", + "type": "object", + "example": { + "data": [ + { + "type": "data-source-record", + "attributes": { + "record": { + "key1": "value1", + "key2": "value2" + } + } + } + ] + }, + "nullable": true, + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataSourceRecordResourceObject" + } + } + }, + "required": [ + "data" + ] + } + } + }, + "relationships": { + "type": "object", + "properties": { + "data-source": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceEnum" + }, + "id": { + "description": "The data source to which the records belong.", + "type": "string", + "example": "01J7C23V8XWMRG13FMD7VZN6GW" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "DataSourceRecordBulkCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DataSourceRecordBulkCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "DataSourceRecordCreateJobEnum": { + "type": "string", + "enum": [ + "data-source-record-create-job" + ] + }, + "DataSourceRecordCreateJobCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceRecordCreateJobEnum" + }, + "attributes": { + "type": "object", + "properties": { + "data-source-record": { + "description": "The records to ingest.", + "type": "object", + "example": { + "data": { + "type": "data-source-record", + "attributes": { + "record": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "properties": { + "data": { + "$ref": "#/components/schemas/DataSourceRecordResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "data-source-record" + ] + }, + "relationships": { + "type": "object", + "properties": { + "data-source": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceEnum" + }, + "id": { + "description": "The data source to which the records belong.", + "type": "string", + "example": "01J7C23V8XWMRG13FMD7VZN6GW" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "DataSourceRecordCreateJobCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DataSourceRecordCreateJobCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "DataSourceCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceEnum" + }, + "attributes": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "visibility": { + "description": "Visibility of data source.", + "type": "string", + "enum": [ + "private", + "shared" + ] + }, + "description": { + "type": "string", + "default": "", + "nullable": true + } + }, + "required": [ + "title", + "visibility" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "DataSourceCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DataSourceCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostDataSourceResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataSourceEnum" + }, + "id": { + "description": "The ID of the data source", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "title": { + "description": "The title of the data source", + "type": "string", + "example": "My Data Source" + }, + "visibility": { + "description": "The status of this data source", + "type": "string", + "enum": [ + "private", + "shared" + ] + }, + "description": { + "description": "The description of the data source", + "type": "string", + "example": "This is a data source" + } + }, + "required": [ + "title", + "visibility", + "description" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "WebFeedCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebFeedEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this web feed", + "type": "string", + "example": "Blog_posts" + }, + "url": { + "description": "The URL of the web feed", + "type": "string", + "example": "https://help.klaviyo.com/api/v2/help_center/en-us/articles.json" + }, + "request_method": { + "description": "The HTTP method for requesting the web feed", + "type": "string", + "example": "get", + "enum": [ + "get", + "post" + ] + }, + "content_type": { + "description": "The content-type of the web feed", + "type": "string", + "example": "json", + "enum": [ + "json", + "xml" + ] + } + }, + "required": [ + "name", + "url", + "request_method", + "content_type" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "WebFeedCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/WebFeedCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostWebFeedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebFeedEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this web feed. Generated by Klaviyo", + "type": "string", + "example": "925e385b52fb" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of this web feed", + "type": "string", + "example": "Blog_posts" + }, + "url": { + "description": "The URL of the web feed", + "type": "string", + "example": "https://help.klaviyo.com/api/v2/help_center/en-us/articles.json" + }, + "request_method": { + "description": "The HTTP method for requesting the web feed", + "type": "string", + "example": "get", + "enum": [ + "get", + "post" + ] + }, + "content_type": { + "description": "The content-type of the web feed", + "type": "string", + "example": "json", + "enum": [ + "json", + "xml" + ] + }, + "created": { + "description": "Date and time when the web feed 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" + }, + "updated": { + "description": "Date and time when the web feed 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" + }, + "status": { + "description": "The cache status of this web feed if it exists", + "type": "string", + "example": "ok", + "enum": [ + "critical_nightly_refresh_timeout", + "disabled", + "ok", + "warning_nightly_refresh_timeout", + "warning_periodic_refresh_timeout" + ], + "nullable": true + } + }, + "required": [ + "name", + "url", + "request_method", + "content_type", + "created", + "updated" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CustomMetricCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this custom metric. Names must be unique across the account. Attempting to create a metric with a duplicate name will return a 400 status code.", + "type": "string", + "example": "My custom metric" + }, + "definition": { + "description": "The definition of a custom metric. It is composed of a list of `metric_groups`. Each group specifies how to query a particular metric with customized filters and the value property to calculate conversion value measurements (if applicable). The groups are combined with `AND` relationships, i.e., conversion and conversion value measurements for each group will be added together to get the final result.", + "example": { + "aggregation_method": "value", + "metric_groups": [ + { + "metric_id": "AAAAAA", + "metric_filters": [ + { + "property": "my_string_property", + "filter": { + "type": "string", + "operator": "starts-with", + "value": "some_substring" + } + }, + { + "property": "my_numeric_property", + "filter": { + "type": "numeric", + "operator": "greater-than-or-equal", + "value": 999 + } + } + ], + "value_property": "$value" + }, + { + "metric_id": "BBBBBB", + "metric_filters": [ + { + "property": "my_boolean_property", + "filter": { + "type": "boolean", + "operator": "equals", + "value": false + } + }, + { + "property": "my_list_property", + "filter": { + "type": "list", + "operator": "contains", + "value": "some_value_in_a_list" + } + } + ], + "value_property": "my_numeric_property" + } + ] + }, + "$ref": "#/components/schemas/CustomMetricDefinition" + } + }, + "required": [ + "name", + "definition" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "CustomMetricCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CustomMetricCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PostCustomMetricResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this custom metric. Names must be unique across the account. Attempting to create a metric with a duplicate name will return a 400 status code.", + "type": "string", + "example": "My custom metric" + }, + "created": { + "description": "The datetime when this custom metric was created.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + }, + "updated": { + "description": "The datetime when this custom metric was updated.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + }, + "definition": { + "description": "The definition of a custom metric. It is composed of a list of `metric_groups`. Each group specifies how to query a particular metric with customized filters and the value property to calculate conversion value measurements (if applicable). The groups are combined with `AND` relationships, i.e., conversion and conversion value measurements for each group will be added together to get the final result.", + "example": { + "aggregation_method": "value", + "metric_groups": [ + { + "metric_id": "AAAAAA", + "metric_filters": [ + { + "property": "my_string_property", + "filter": { + "type": "string", + "operator": "starts-with", + "value": "some_substring" + } + }, + { + "property": "my_numeric_property", + "filter": { + "type": "numeric", + "operator": "greater-than-or-equal", + "value": 999 + } + } + ], + "value_property": "$value" + }, + { + "metric_id": "BBBBBB", + "metric_filters": [ + { + "property": "my_boolean_property", + "filter": { + "type": "boolean", + "operator": "equals", + "value": false + } + }, + { + "property": "my_list_property", + "filter": { + "type": "list", + "operator": "contains", + "value": "some_value_in_a_list" + } + } + ], + "value_property": "my_numeric_property" + } + ] + }, + "$ref": "#/components/schemas/CustomMetricDefinition" + } + }, + "required": [ + "name", + "created", + "updated", + "definition" + ] + }, + "relationships": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "Related metrics", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfileUpsertQueryWithSubscriptionsResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "_kx": { + "description": "Also known as the `exchange_id`, this is an encrypted identifier used for identifying a\nprofile by Klaviyo's web tracking.\n\nYou can use this field as a filter when retrieving profiles via the Get Profiles endpoint.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "meta": { + "$ref": "#/components/schemas/ProfileMeta", + "nullable": true + }, + "subscriptions": { + "$ref": "#/components/schemas/SubscriptionChannels", + "nullable": true + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "SubscriptionEnum": { + "type": "string", + "enum": [ + "subscription" + ] + }, + "OnsiteSubscriptionCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SubscriptionEnum" + }, + "attributes": { + "type": "object", + "properties": { + "custom_source": { + "description": "A custom method detail or source to store on the consent records for this subscription.", + "type": "string", + "example": "Homepage footer signup form", + "nullable": true + }, + "profile": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileUpsertQueryWithSubscriptionsResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "profile" + ] + }, + "relationships": { + "type": "object", + "properties": { + "list": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "The list ID to add the newly subscribed profile to.", + "type": "string", + "example": "Y6nRLr" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + }, + "required": [ + "list" + ] + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "OnsiteSubscriptionCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/OnsiteSubscriptionCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PushTokenUnregisterEnum": { + "type": "string", + "enum": [ + "push-token-unregister" + ] + }, + "PushTokenUnregisterQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenUnregisterEnum" + }, + "attributes": { + "type": "object", + "properties": { + "token": { + "description": "A push token from APNS or FCM.", + "type": "string", + "example": "1234567890" + }, + "platform": { + "description": "The platform on which the push token was created.", + "type": "string", + "enum": [ + "android", + "ios" + ] + }, + "vendor": { + "description": "The vendor of the push token.", + "type": "string", + "example": "apns", + "enum": [ + "apns", + "fcm" + ], + "nullable": true + }, + "profile": { + "description": "The profile associated with the push token to create/update", + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileUpsertQueryResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "token", + "platform", + "profile" + ] + } + }, + "required": [ + "type", + "attributes" + ] + }, + "PushTokenUnregisterQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PushTokenUnregisterQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "OnsiteProfileCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/OnsiteProfileCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "EventsBulkCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/EventsBulkCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "ClientBISSubscriptionCreateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/BackInStockSubscriptionEnum" + }, + "attributes": { + "type": "object", + "properties": { + "channels": { + "description": "The channel(s) through which the profile would like to receive the back in stock notification. This can be leveraged within a back in stock flow to notify the subscriber through their preferred channel(s).", + "type": "array", + "items": { + "type": "string", + "enum": [ + "EMAIL", + "PUSH", + "SMS", + "WHATSAPP" + ], + "description": "The different channel types that a profile could subscribe to BIS notifications for" + }, + "example": [ + "EMAIL", + "SMS" + ] + }, + "profile": { + "type": "object", + "example": { + "data": { + "type": "profile", + "attributes": { + "id": "01GDDKASAP8TKDDA2GRZDSVP4H", + "email": "sarah.mason@klaviyo-demo.com", + "phone_number": "+15005550006", + "external_id": "63f64a2b-c6bf-40c7-b81f-bed08162edbe" + } + } + }, + "properties": { + "data": { + "$ref": "#/components/schemas/ProfileIdentifierDTOResourceObject" + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "channels", + "profile" + ] + }, + "relationships": { + "type": "object", + "properties": { + "variant": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID for which the profile is subscribing to back in stock notifications. This ID is made up of the integration type, catalog ID, and and the external ID of the variant like so: `integrationType:::catalogId:::externalId`. If the integration you are using is not set up for multi-catalog storage, the 'catalogId' will be `$default`. For Shopify `$shopify:::$default:::33001893429341`", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + }, + "required": [ + "variant" + ] + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "ClientBISSubscriptionCreateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ClientBISSubscriptionCreateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "ReviewProductExternalId": { + "type": "object", + "properties": { + "external_id": { + "description": "The external ID of the product", + "type": "string", + "example": "7549950034135" + }, + "integration_key": { + "description": "The integration key of the product in lowercase", + "type": "string", + "example": "shopify", + "enum": [ + "shopify", + "woocommerce" + ] + } + }, + "required": [ + "external_id", + "integration_key" + ] + }, + "CustomQuestionDTO": { + "type": "object", + "properties": { + "id": { + "description": "The ID of the custom question", + "type": "string", + "example": "9ff0d32e-0edb-4513-a6a5-12814a6cb755" + }, + "answers": { + "description": "The answers to the custom question", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "M", + "L" + ] + } + }, + "required": [ + "id", + "answers" + ] + }, + "OrderEnum": { + "type": "string", + "enum": [ + "order" + ] + }, + "ReviewCreateDTOResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "attributes": { + "type": "object", + "properties": { + "review_type": { + "description": "The type of this review -- either a review or a question", + "type": "string", + "example": "review", + "enum": [ + "question", + "rating", + "review", + "store" + ] + }, + "email": { + "description": "The email of the author of this review", + "type": "string", + "example": "random.123@gmail.com" + }, + "author": { + "description": "The author of this review", + "type": "string", + "example": "John Doe" + }, + "content": { + "description": "The content of this review", + "example": "This was an absolutely amazing t-shirt. I loved the color and the fit.", + "type": "string" + }, + "incentive_type": { + "description": "The incentive type for the review", + "type": "string", + "enum": [ + "coupon_or_discount", + "employee_review", + "free_product", + "loyalty_points", + "other", + "paid_promotion", + "sweepstakes_entry" + ], + "nullable": true + }, + "product": { + "description": "The product associated with this review", + "$ref": "#/components/schemas/ReviewProductExternalId", + "nullable": true + }, + "rating": { + "description": "The rating of this review on a scale from 1-5. If the review type is \"question\", this field will be null.", + "type": "integer", + "example": 2, + "enum": [ + 1, + 2, + 3, + 4, + 5 + ], + "nullable": true + }, + "title": { + "description": "The title of this review", + "type": "string", + "example": "Great product!", + "nullable": true + }, + "custom_questions": { + "description": "Custom question and answers for the review", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomQuestionDTO" + }, + "example": [ + { + "id": "9ff0d32e-0edb-4513-a6a5-12814a6cb755", + "answers": [ + "M", + "L" + ] + } + ], + "nullable": true + }, + "images": { + "description": "The list of images submitted with this review (represented as a list of urls or base-64 encoded data-uri). If there are no images, this field will be an empty list.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://example.com/image1.jpg", + "https://example.com/image2.jpg" + ], + "nullable": true + } + }, + "required": [ + "review_type", + "email", + "author", + "content" + ] + }, + "relationships": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/OrderEnum" + }, + "id": { + "description": "The Order ID related to the review", + "type": "string", + "example": "42439497119686" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "ReviewCreateDTO": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ReviewCreateDTOResourceObject" + } + }, + "required": [ + "data" + ] + }, + "CouponUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + }, + "attributes": { + "type": "object", + "properties": { + "description": { + "description": "A description of the coupon.", + "type": "string", + "example": "10% off for purchases over $50", + "nullable": true + }, + "monitor_configuration": { + "description": "The monitor configuration for the coupon.", + "type": "object", + "example": { + "low_balance_threshold": 500 + }, + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "CouponUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CouponUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchCouponResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "description": "The internal id of a Coupon is equivalent to its external id stored within an integration.", + "type": "string", + "example": "10OFF" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "This is the id that is stored in an integration such as Shopify or Magento.", + "type": "string", + "example": "10OFF" + }, + "description": { + "description": "A description of the coupon.", + "type": "string", + "example": "10% off for purchases over $50", + "nullable": true + }, + "monitor_configuration": { + "description": "The monitor configuration for the coupon.", + "type": "object", + "example": { + "low_balance_threshold": 500 + }, + "nullable": true + } + }, + "required": [ + "external_id" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CouponCodeUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "The API status of our coupon codes.", + "type": "string", + "enum": [ + "ASSIGNED_TO_PROFILE", + "DELETING", + "PROCESSING", + "UNASSIGNED", + "USED", + "VERSION_NOT_ACTIVE" + ], + "nullable": true + }, + "expires_at": { + "description": "The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "CouponCodeUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CouponCodeUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchCouponCodeResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponCodeEnum" + }, + "id": { + "description": "The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.", + "type": "string", + "example": "10OFF-ASD325FHK324UJDOI2M3JNES99" + }, + "attributes": { + "type": "object", + "properties": { + "unique_code": { + "description": "This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.", + "type": "string", + "example": "ASD325FHK324UJDOI2M3JNES99", + "nullable": true + }, + "expires_at": { + "description": "The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "status": { + "description": "The current status of the coupon code.", + "type": "string", + "example": "UNASSIGNED", + "enum": [ + "ASSIGNED_TO_PROFILE", + "DELETING", + "PROCESSING", + "UNASSIGNED", + "USED", + "VERSION_NOT_ACTIVE" + ], + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "coupon": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CouponEnum" + }, + "id": { + "type": "string", + "example": "10OFF" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "profile": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + } + }, + "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" + ] + }, + "CatalogItemUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogItemUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchCatalogItemResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1", + "nullable": true + }, + "title": { + "description": "The title of the catalog item.", + "type": "string", + "example": "Ocean Blue Shirt (Sample)", + "nullable": true + }, + "description": { + "description": "A description of the catalog item.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item is published.", + "type": "boolean", + "example": true, + "nullable": true + }, + "created": { + "description": "Date and time when the catalog item 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": "Date and time when the catalog item was last 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 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "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" + ] + }, + "CatalogVariantUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogVariantUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchCatalogVariantResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogVariantEnum" + }, + "id": { + "description": "The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog item variant in an external system.", + "type": "string", + "example": "SAMPLE-DATA-ITEM-1-VARIANT-MEDIUM", + "nullable": true + }, + "title": { + "description": "The title of the catalog item variant.", + "type": "string", + "example": "Ocean Blue Shirt (Sample) Variant Medium", + "nullable": true + }, + "description": { + "description": "A description of the catalog item variant.", + "type": "string", + "example": "Ocean blue cotton shirt with a narrow collar and buttons down the front and long sleeves. Comfortable fit and titled kaleidoscope patterns.", + "nullable": true + }, + "sku": { + "description": "The SKU of the catalog item variant.", + "type": "string", + "example": "OBS-MD", + "nullable": true + }, + "inventory_policy": { + "description": "This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:\n`1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.\n`0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.", + "type": "integer", + "example": 2, + "enum": [ + 0, + 1, + 2 + ], + "nullable": true + }, + "inventory_quantity": { + "description": "The quantity of the catalog item variant currently in stock.", + "type": "number", + "example": 25, + "nullable": true + }, + "price": { + "description": "This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).", + "type": "number", + "example": 42, + "nullable": true + }, + "url": { + "description": "URL pointing to the location of the catalog item variant on your website.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "image_full_url": { + "description": "URL pointing to the location of a full image of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/300", + "nullable": true + }, + "image_thumbnail_url": { + "description": "URL pointing to the location of an image thumbnail of the catalog item variant.", + "type": "string", + "example": "https://via.placeholder.com/150", + "nullable": true + }, + "images": { + "description": "List of URLs pointing to the locations of images of the catalog item variant.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://via.placeholder.com/150" + ], + "nullable": true + }, + "custom_metadata": { + "description": "Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.", + "type": "object", + "example": { + "Top Pick": true + }, + "nullable": true + }, + "published": { + "description": "Boolean value indicating whether the catalog item variant is published.", + "type": "boolean", + "example": true, + "nullable": true + }, + "created": { + "description": "Date and time when the catalog item variant 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": "Date and time when the catalog item variant was last 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 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "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" + ] + }, + "CatalogCategoryUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CatalogCategoryUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchCatalogCategoryResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogCategoryEnum" + }, + "id": { + "description": "The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.", + "type": "string", + "example": "$custom:::$default:::SAMPLE-DATA-CATEGORY-APPAREL" + }, + "attributes": { + "type": "object", + "properties": { + "external_id": { + "description": "The ID of the catalog category in an external system.", + "type": "string", + "example": "SAMPLE-DATA-CATEGORY-APPAREL", + "nullable": true + }, + "name": { + "description": "The name of the catalog category.", + "type": "string", + "example": "Sample Data Category Apparel", + "nullable": true + }, + "updated": { + "description": "Date and time when the catalog category was last 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 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "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" + ] + }, + "ListPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter", + "nullable": true + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "ListPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ListPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchListPartialUpdateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ListEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this list. Generated by Klaviyo.", + "type": "string", + "example": "Y6nRLr" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the list", + "type": "string", + "example": "Newsletter", + "nullable": true + }, + "created": { + "description": "Date and time when the list 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": "Date and time when the list was last 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 + }, + "opt_in_process": { + "description": "The opt-in process for this list. Valid values: 'double_opt_in', 'single_opt_in'.", + "type": "string", + "example": "double_opt_in", + "enum": [ + "double_opt_in", + "single_opt_in" + ], + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "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" + } + } + }, + "flow-triggers": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "SegmentPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "definition": { + "$ref": "#/components/schemas/SegmentDefinition", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "is_starred": { + "type": "boolean", + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "SegmentPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/SegmentPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchSegmentPartialUpdateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/SegmentEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A helpful name to label the segment", + "type": "string", + "example": "Repeat Purchasers", + "nullable": true + }, + "definition": { + "$ref": "#/components/schemas/SegmentDefinition", + "nullable": true + }, + "created": { + "description": "Date and time when the segment 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": "Date and time when the segment was last 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 + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "is_starred": { + "type": "boolean" + } + }, + "required": [ + "is_active", + "is_processing", + "is_starred" + ] + }, + "relationships": { + "type": "object", + "properties": { + "profiles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "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" + } + } + }, + "flow-triggers": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ProfilePartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + } + } + }, + "meta": { + "$ref": "#/components/schemas/ProfileMeta", + "nullable": true + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "ProfilePartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ProfilePartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchProfileResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", + "type": "string", + "example": "01GDDKASAP8TKDDA2GRZDSVP4H", + "nullable": true + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "Individual's email address", + "type": "string", + "example": "sarah.mason@klaviyo-demo.com", + "nullable": true + }, + "phone_number": { + "description": "Individual's phone number in E.164 format", + "type": "string", + "example": "+15005550006", + "nullable": true + }, + "external_id": { + "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", + "type": "string", + "nullable": true + }, + "first_name": { + "description": "Individual's first name", + "type": "string", + "example": "Sarah", + "nullable": true + }, + "last_name": { + "description": "Individual's last name", + "type": "string", + "example": "Mason", + "nullable": true + }, + "organization": { + "description": "Name of the company or organization within the company for whom the individual works", + "type": "string", + "example": "Example Corporation", + "nullable": true + }, + "locale": { + "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", + "type": "string", + "example": "en-US", + "nullable": true + }, + "title": { + "description": "Individual's job title", + "type": "string", + "example": "Regional Manager", + "nullable": true + }, + "image": { + "description": "URL pointing to the location of a profile image", + "type": "string", + "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", + "nullable": true + }, + "created": { + "description": "Date and time when the profile 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": "Date and time when the profile was last 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 + }, + "last_event_date": { + "description": "Date and time of the most recent event the triggered an update to the profile, 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 + }, + "location": { + "$ref": "#/components/schemas/ProfileLocation", + "nullable": true + }, + "properties": { + "description": "An object containing key/value pairs for any custom properties assigned to this profile", + "type": "object", + "example": { + "pseudonym": "Dr. Octopus" + }, + "nullable": true + }, + "subscriptions": { + "$ref": "#/components/schemas/Subscriptions", + "nullable": true + }, + "predictive_analytics": { + "$ref": "#/components/schemas/PredictiveAnalytics", + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "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" + } + } + }, + "push-tokens": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/PushTokenEnum" + }, + "id": { + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "FlowUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "description": "ID of the Flow to update. Ex: XVTP5Q", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "Status you want to update the flow to. ['draft', 'manual', or 'live']", + "type": "string" + } + }, + "required": [ + "status" + ] + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "FlowUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FlowUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchFlowResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "trigger_type": { + "description": "Corresponds to the object which triggered the flow.", + "type": "string", + "enum": [ + "Added to List", + "Date Based", + "Low Inventory", + "Metric", + "Price Drop", + "Unconfigured" + ], + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "flow-actions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "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" + ] + }, + "FlowActionUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "definition": { + "description": "The encoded flow action definition.", + "oneOf": [ + { + "$ref": "#/components/schemas/ActionOutputSplitAction" + }, + { + "$ref": "#/components/schemas/BackInStockDelayAction" + }, + { + "$ref": "#/components/schemas/ConditionalBranchAction" + }, + { + "$ref": "#/components/schemas/ContentExperimentAction" + }, + { + "$ref": "#/components/schemas/SendEmailAction" + }, + { + "$ref": "#/components/schemas/SendPushNotificationAction" + }, + { + "$ref": "#/components/schemas/SendSmsAction" + }, + { + "$ref": "#/components/schemas/SendWebhookAction" + }, + { + "$ref": "#/components/schemas/SendInternalAlertAction" + }, + { + "$ref": "#/components/schemas/SendWhatsAppAction" + }, + { + "$ref": "#/components/schemas/TimeDelayAction" + }, + { + "$ref": "#/components/schemas/TriggerBranchAction" + }, + { + "$ref": "#/components/schemas/UpdateProfileAction" + }, + { + "$ref": "#/components/schemas/TargetDateAction" + }, + { + "$ref": "#/components/schemas/CountdownDelayAction" + }, + { + "$ref": "#/components/schemas/AbTestAction" + }, + { + "$ref": "#/components/schemas/InternalServiceAction" + }, + { + "$ref": "#/components/schemas/CodeAction" + }, + { + "$ref": "#/components/schemas/SplitAction" + }, + { + "$ref": "#/components/schemas/BranchAction" + }, + { + "$ref": "#/components/schemas/ListUpdateAction" + } + ] + } + }, + "required": [ + "definition" + ] + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "FlowActionUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/FlowActionUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchFlowActionEncodedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowActionEnum" + }, + "id": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "created": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "updated": { + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00", + "nullable": true + }, + "definition": { + "description": "The encoded flow action definition.", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ActionOutputSplitAction" + }, + { + "$ref": "#/components/schemas/BackInStockDelayAction" + }, + { + "$ref": "#/components/schemas/ConditionalBranchAction" + }, + { + "$ref": "#/components/schemas/ContentExperimentAction" + }, + { + "$ref": "#/components/schemas/SendEmailAction" + }, + { + "$ref": "#/components/schemas/SendPushNotificationAction" + }, + { + "$ref": "#/components/schemas/SendSmsAction" + }, + { + "$ref": "#/components/schemas/SendWebhookAction" + }, + { + "$ref": "#/components/schemas/SendInternalAlertAction" + }, + { + "$ref": "#/components/schemas/SendWhatsAppAction" + }, + { + "$ref": "#/components/schemas/TimeDelayAction" + }, + { + "$ref": "#/components/schemas/TriggerBranchAction" + }, + { + "$ref": "#/components/schemas/UpdateProfileAction" + }, + { + "$ref": "#/components/schemas/TargetDateAction" + }, + { + "$ref": "#/components/schemas/CountdownDelayAction" + }, + { + "$ref": "#/components/schemas/AbTestAction" + }, + { + "$ref": "#/components/schemas/InternalServiceAction" + }, + { + "$ref": "#/components/schemas/CodeAction" + }, + { + "$ref": "#/components/schemas/SplitAction" + }, + { + "$ref": "#/components/schemas/BranchAction" + }, + { + "$ref": "#/components/schemas/ListUpdateAction" + } + ] + } + } + }, + "relationships": { + "type": "object", + "properties": { + "flow": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/FlowEnum" + }, + "id": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "flow-messages": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/FlowMessageEnum" + }, + "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" + ] + }, + "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 + } + } + }, + "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" + ] + }, + "CampaignPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignPartialUpdateQueryResourceObject" + } + }, + "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: Internal Error", + "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" + ] + }, + "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 + } + } + }, + "MobilePushMessageStandardDefinitionUpdate": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/Mobile_pushEnum" + }, + "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", + "example": "standard", + "default": "standard", + "$ref": "#/components/schemas/StandardEnum" + } + }, + "required": [ + "channel" + ] + }, + "MobilePushMessageSilentDefinitionUpdate": { + "type": "object", + "properties": { + "channel": { + "$ref": "#/components/schemas/Mobile_pushEnum" + }, + "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", + "example": "silent", + "default": "silent", + "$ref": "#/components/schemas/SilentEnum" + } + }, + "required": [ + "channel" + ] + }, + "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" + ] + }, + "CampaignMessagePartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignMessagePartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "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" + ] + }, + "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" + ] + }, + "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" + ] + }, + "CampaignSendJobPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CampaignSendJobPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "TemplateUpdateQueryResourceObject": { + "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", + "example": "Monthly Newsletter Template", + "nullable": true + }, + "html": { + "description": "The HTML of the template", + "type": "string", + "example": "\n \n \n hello world\n \n \n ", + "nullable": true + }, + "text": { + "description": "The plaintext of the template", + "type": "string", + "example": "hello world", + "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 + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "TemplateUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TemplateUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchTemplateResponse": { + "type": "object", + "properties": { + "data": { + "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:\n* SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template\n* SIMPLE: A rich text editor template\n* CODE: A custom HTML template\n* 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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "TagUpdateQueryResourceObject": { + "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" + ] + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "TagUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TagUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "TagGroupUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "id": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The Tag Group name", + "type": "string", + "example": "My Tag Group" + }, + "return_fields": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "TagGroupUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TagGroupUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchTagGroupResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "id": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The Tag Group name", + "type": "string", + "example": "My Tag Group" + }, + "exclusive": { + "description": "If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.", + "type": "boolean" + }, + "default": { + "description": "Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.", + "type": "boolean" + } + }, + "required": [ + "name", + "exclusive", + "default" + ] + }, + "relationships": { + "type": "object", + "properties": { + "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" + ] + }, + "WebhookPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookEnum" + }, + "id": { + "description": "The ID of the webhook.", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the webhook.", + "type": "string", + "nullable": true + }, + "description": { + "description": "A description for the webhook.", + "type": "string", + "nullable": true + }, + "endpoint_url": { + "description": "A url to send webhook calls to. Must be https.", + "type": "string", + "example": "https://www.example.com/example/path", + "nullable": true + }, + "secret_key": { + "description": "A secret key, that will be used for webhook request signing.", + "type": "string", + "nullable": true + }, + "enabled": { + "description": "Is the webhook enabled.", + "type": "boolean", + "nullable": true + } + } + }, + "relationships": { + "type": "object", + "properties": { + "webhook-topics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "A list of topics to subscribe to.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "WebhookPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/WebhookPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchWebhookResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookEnum" + }, + "id": { + "description": "The ID of the webhook.", + "type": "string", + "example": "01HF7AYTK76RHR4F17G6DGTRGF" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the webhook.", + "type": "string", + "example": "My Webhook" + }, + "description": { + "description": "A description for the webhook.", + "type": "string", + "example": "A webhook for sms events", + "nullable": true + }, + "endpoint_url": { + "description": "The url to send webhook requests to, truncated for security.", + "type": "string", + "example": "https://www.example.com" + }, + "enabled": { + "description": "Is the webhook enabled.", + "type": "boolean" + }, + "created_at": { + "description": "Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + }, + "updated_at": { + "description": "Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", + "type": "string", + "format": "date-time", + "example": "2022-11-08T01:23:45+00:00", + "nullable": true + } + }, + "required": [ + "name", + "endpoint_url", + "enabled" + ] + }, + "relationships": { + "type": "object", + "properties": { + "webhook-topics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/WebhookTopicEnum" + }, + "id": { + "description": "A topic the webhook is subscribed to.", + "type": "string", + "example": "event:klaviyo.sent_sms" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ImagePartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ImageEnum" + }, + "id": { + "description": "The ID of the image", + "type": "string", + "example": "7" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "A name for the image.", + "type": "string", + "nullable": true + }, + "hidden": { + "description": "If true, this image is not shown in the asset library.", + "type": "boolean", + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "ImagePartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ImagePartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchImageResponse": { + "type": "object", + "properties": { + "data": { + "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" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "UniversalContentPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateUniversalContentEnum" + }, + "id": { + "description": "The ID of the template universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this template universal content", + "type": "string", + "nullable": true + }, + "definition": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ButtonBlock" + }, + { + "$ref": "#/components/schemas/DropShadowBlock" + }, + { + "$ref": "#/components/schemas/HorizontalRuleBlock" + }, + { + "$ref": "#/components/schemas/HTMLBlock" + }, + { + "$ref": "#/components/schemas/ImageBlock" + }, + { + "$ref": "#/components/schemas/SpacerBlock" + }, + { + "$ref": "#/components/schemas/TextBlock" + } + ] + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "UniversalContentPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/UniversalContentPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchUniversalContentResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TemplateUniversalContentEnum" + }, + "id": { + "description": "The ID of the universal content", + "type": "string", + "example": "01HWWWKAW4RHXQJCMW4R2KRYR4" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this universal content", + "type": "string" + }, + "definition": { + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ButtonBlock" + }, + { + "$ref": "#/components/schemas/CouponBlock" + }, + { + "$ref": "#/components/schemas/DropShadowBlock" + }, + { + "$ref": "#/components/schemas/HeaderBlock" + }, + { + "$ref": "#/components/schemas/HorizontalRuleBlock" + }, + { + "$ref": "#/components/schemas/HTMLBlock" + }, + { + "$ref": "#/components/schemas/ImageBlock" + }, + { + "$ref": "#/components/schemas/ProductBlock" + }, + { + "$ref": "#/components/schemas/ReviewBlock" + }, + { + "$ref": "#/components/schemas/SocialBlock" + }, + { + "$ref": "#/components/schemas/SpacerBlock" + }, + { + "$ref": "#/components/schemas/SplitBlock" + }, + { + "$ref": "#/components/schemas/TableBlock" + }, + { + "$ref": "#/components/schemas/TextBlock" + }, + { + "$ref": "#/components/schemas/UnsupportedBlock" + }, + { + "$ref": "#/components/schemas/VideoBlock" + }, + { + "$ref": "#/components/schemas/Section" + } + ] + }, + "created": { + "description": "The datetime when this universal content was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "updated": { + "description": "The datetime when this universal content was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "screenshot_status": { + "description": "The status of a universal content screenshot.", + "type": "string", + "enum": [ + "completed", + "failed", + "generating", + "never_generated", + "not_renderable", + "stale" + ] + }, + "screenshot_url": { + "type": "string" + } + }, + "required": [ + "name", + "created", + "updated", + "screenshot_status", + "screenshot_url" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "ReviewPatchQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "id": { + "description": "The id of the review (review ID).", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "status": { + "description": "The updated status intended for the review with this ID", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ReviewStatusRejected" + }, + { + "$ref": "#/components/schemas/ReviewStatusFeatured" + }, + { + "$ref": "#/components/schemas/ReviewStatusPublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusUnpublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusPending" + } + ] + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "ReviewPatchQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ReviewPatchQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchReviewResponseDTO": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ReviewEnum" + }, + "id": { + "description": "The ID of the review", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "email": { + "description": "The email of the author of this review", + "type": "string", + "example": "john@doe.com", + "nullable": true + }, + "status": { + "description": "The status of this review", + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/ReviewStatusRejected" + }, + { + "$ref": "#/components/schemas/ReviewStatusFeatured" + }, + { + "$ref": "#/components/schemas/ReviewStatusPublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusUnpublished" + }, + { + "$ref": "#/components/schemas/ReviewStatusPending" + } + ] + }, + "verified": { + "description": "The verification status of this review (aka whether or not we have confirmation that the customer bought the product)", + "type": "boolean", + "example": true + }, + "review_type": { + "description": "The type of this review — either a review, question, or rating", + "type": "string", + "example": "review", + "enum": [ + "question", + "rating", + "review", + "store" + ] + }, + "created": { + "description": "The datetime when this review was created", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "updated": { + "description": "The datetime when this review was updated", + "type": "string", + "format": "date-time", + "example": "2022-11-08T00:00:00+00:00" + }, + "images": { + "description": "The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list.", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "https://example.com/image1.jpg", + "https://example.com/image2.jpg" + ] + }, + "product": { + "description": "The product associated with this review", + "$ref": "#/components/schemas/ReviewProductDTO", + "nullable": true + }, + "rating": { + "description": "The rating of this review on a scale from 1-5. If the review type is \"question\", this field will be null.", + "type": "integer", + "example": 2, + "nullable": true + }, + "author": { + "description": "The author of this review", + "type": "string", + "example": "John D", + "nullable": true + }, + "content": { + "description": "The content of this review", + "example": "Great product! I love the smell. I will be buying again.", + "nullable": true, + "type": "string" + }, + "title": { + "description": "The title of this review", + "type": "string", + "example": "Smells great, would recommend", + "nullable": true + }, + "smart_quote": { + "description": "A quote from this review that summarizes the content", + "type": "string", + "example": "I love the smell", + "nullable": true + }, + "public_reply": { + "description": "The public reply to this review (if one exists)", + "$ref": "#/components/schemas/ReviewPublicReply", + "nullable": true + } + }, + "required": [ + "verified", + "review_type", + "created", + "updated", + "images" + ] + }, + "relationships": { + "type": "object", + "properties": { + "events": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/EventEnum" + }, + "id": { + "description": "Related Events", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "item": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CatalogItemEnum" + }, + "id": { + "description": "Related Catalog Item", + "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" + ] + }, + "TrackingSettingPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TrackingSettingEnum" + }, + "id": { + "description": "The id of the tracking setting (account ID).", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "auto_add_parameters": { + "description": "Whether tracking parameters are automatically added to campaigns and flows.", + "type": "boolean", + "nullable": true + }, + "utm_source": { + "description": "The utm_source tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_medium": { + "description": "The utm_medium tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_campaign": { + "description": "The utm_campaign tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_id": { + "description": "The utm_id tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_term": { + "description": "The utm_term tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "custom_parameters": { + "description": "List of custom tracking parameters.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomTrackingParamDTO" + }, + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "TrackingSettingPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/TrackingSettingPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchTrackingSettingResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TrackingSettingEnum" + }, + "id": { + "description": "The id of the tracking setting (account ID).", + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "auto_add_parameters": { + "description": "Whether tracking parameters are automatically added to campaigns and flows.", + "type": "boolean" + }, + "utm_source": { + "description": "The utm_source tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO" + }, + "utm_medium": { + "description": "The utm_medium tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO" + }, + "utm_campaign": { + "description": "The utm_campaign tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_id": { + "description": "The utm_id tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "utm_term": { + "description": "The utm_term tracking parameter.", + "$ref": "#/components/schemas/TrackingParamDTO", + "nullable": true + }, + "custom_parameters": { + "description": "Additional custom tracking parameters.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomTrackingParamDTO" + }, + "nullable": true + } + }, + "required": [ + "auto_add_parameters", + "utm_source", + "utm_medium" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "WebFeedPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebFeedEnum" + }, + "id": { + "description": "The ID of the web feed", + "type": "string", + "example": "925e385b52fb" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of this web feed", + "type": "string", + "example": "Blog_posts", + "nullable": true + }, + "url": { + "description": "The URL of the web feed", + "type": "string", + "example": "https://help.klaviyo.com/api/v2/help_center/en-us/articles.json", + "nullable": true + }, + "request_method": { + "description": "The HTTP method for requesting the web feed", + "type": "string", + "example": "get", + "enum": [ + "get", + "post" + ], + "nullable": true + }, + "content_type": { + "description": "The content-type of the web feed", + "type": "string", + "example": "json", + "enum": [ + "json", + "xml" + ], + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "WebFeedPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/WebFeedPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchWebFeedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/WebFeedEnum" + }, + "id": { + "description": "Primary key that uniquely identifies this web feed. Generated by Klaviyo", + "type": "string", + "example": "925e385b52fb" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name of this web feed", + "type": "string", + "example": "Blog_posts" + }, + "url": { + "description": "The URL of the web feed", + "type": "string", + "example": "https://help.klaviyo.com/api/v2/help_center/en-us/articles.json" + }, + "request_method": { + "description": "The HTTP method for requesting the web feed", + "type": "string", + "example": "get", + "enum": [ + "get", + "post" + ] + }, + "content_type": { + "description": "The content-type of the web feed", + "type": "string", + "example": "json", + "enum": [ + "json", + "xml" + ] + }, + "created": { + "description": "Date and time when the web feed 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" + }, + "updated": { + "description": "Date and time when the web feed 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" + }, + "status": { + "description": "The cache status of this web feed if it exists", + "type": "string", + "example": "ok", + "enum": [ + "critical_nightly_refresh_timeout", + "disabled", + "ok", + "warning_nightly_refresh_timeout", + "warning_periodic_refresh_timeout" + ], + "nullable": true + } + }, + "required": [ + "name", + "url", + "request_method", + "content_type", + "created", + "updated" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "CustomMetricPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this custom metric. Names must be unique across the account. Attempting to create a metric with a duplicate name will return a 400 status code.", + "type": "string", + "example": "My custom metric", + "nullable": true + }, + "definition": { + "description": "The definition of a custom metric. It is composed of a list of `metric_groups`. Each group specifies how to query a particular metric with customized filters and the value property to calculate conversion value measurements (if applicable). The groups are combined with `AND` relationships, i.e., conversion and conversion value measurements for each group will be added together to get the final result.", + "example": { + "aggregation_method": "value", + "metric_groups": [ + { + "metric_id": "AAAAAA", + "metric_filters": [ + { + "property": "my_string_property", + "filter": { + "type": "string", + "operator": "starts-with", + "value": "some_substring" + } + }, + { + "property": "my_numeric_property", + "filter": { + "type": "numeric", + "operator": "greater-than-or-equal", + "value": 999 + } + } + ], + "value_property": "$value" + }, + { + "metric_id": "BBBBBB", + "metric_filters": [ + { + "property": "my_boolean_property", + "filter": { + "type": "boolean", + "operator": "equals", + "value": false + } + }, + { + "property": "my_list_property", + "filter": { + "type": "list", + "operator": "contains", + "value": "some_value_in_a_list" + } + } + ], + "value_property": "my_numeric_property" + } + ] + }, + "$ref": "#/components/schemas/CustomMetricDefinition", + "nullable": true + } + } + } + }, + "required": [ + "type", + "id", + "attributes" + ] + }, + "CustomMetricPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/CustomMetricPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchCustomMetricResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric", + "type": "string", + "example": "925e385b52fb405715f3616c337cc65c" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The name for this custom metric. Names must be unique across the account. Attempting to create a metric with a duplicate name will return a 400 status code.", + "type": "string", + "example": "My custom metric" + }, + "created": { + "description": "The datetime when this custom metric was created.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + }, + "updated": { + "description": "The datetime when this custom metric was updated.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + }, + "definition": { + "description": "The definition of a custom metric. It is composed of a list of `metric_groups`. Each group specifies how to query a particular metric with customized filters and the value property to calculate conversion value measurements (if applicable). The groups are combined with `AND` relationships, i.e., conversion and conversion value measurements for each group will be added together to get the final result.", + "example": { + "aggregation_method": "value", + "metric_groups": [ + { + "metric_id": "AAAAAA", + "metric_filters": [ + { + "property": "my_string_property", + "filter": { + "type": "string", + "operator": "starts-with", + "value": "some_substring" + } + }, + { + "property": "my_numeric_property", + "filter": { + "type": "numeric", + "operator": "greater-than-or-equal", + "value": 999 + } + } + ], + "value_property": "$value" + }, + { + "metric_id": "BBBBBB", + "metric_filters": [ + { + "property": "my_boolean_property", + "filter": { + "type": "boolean", + "operator": "equals", + "value": false + } + }, + { + "property": "my_list_property", + "filter": { + "type": "list", + "operator": "contains", + "value": "some_value_in_a_list" + } + } + ], + "value_property": "my_numeric_property" + } + ] + }, + "$ref": "#/components/schemas/CustomMetricDefinition" + } + }, + "required": [ + "name", + "created", + "updated", + "definition" + ] + }, + "relationships": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "Related metrics", + "type": "string" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + } + } + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "type", + "id", + "attributes", + "links" + ] + }, + "links": { + "$ref": "#/components/schemas/ObjectLinks" + } + }, + "required": [ + "data" + ] + }, + "MappedMetricPartialUpdateQueryResourceObject": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MappedMetricEnum" + }, + "id": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + }, + "relationships": { + "type": "object", + "properties": { + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The ID of the metric for this mapping. A null value will unset the mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + }, + "custom-metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric for this mapping. A null value will unset the mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + } + } + } + } + }, + "required": [ + "type", + "id" + ] + }, + "MappedMetricPartialUpdateQuery": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MappedMetricPartialUpdateQueryResourceObject" + } + }, + "required": [ + "data" + ] + }, + "PatchMappedMetricResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MappedMetricEnum" + }, + "id": { + "description": "The type of mapping.", + "type": "string", + "example": "revenue", + "enum": [ + "added_to_cart", + "cancelled_sales", + "ordered_product", + "refunded_sales", + "revenue", + "started_checkout", + "viewed_product" + ] + }, + "attributes": { + "type": "object", + "properties": { + "updated": { + "description": "The datetime when this mapping was last updated.", + "type": "string", + "format": "date-time", + "example": "2025-04-15T00:00:00Z" + } + }, + "required": [ + "updated" + ] + }, + "relationships": { + "type": "object", + "properties": { + "metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MetricEnum" + }, + "id": { + "description": "The ID of the metric for this mapping.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "links": { + "$ref": "#/components/schemas/RelationshipLinks" + } + } + }, + "custom-metric": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CustomMetricEnum" + }, + "id": { + "description": "The ID of the custom metric for this mapping.", + "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" + ] + }, + "ListMembersDeleteQuery": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/ProfileEnum" + }, + "id": { + "type": "string" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "DeleteTagGroupResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/TagGroupEnum" + }, + "id": { + "description": "The Tag Group ID", + "type": "string", + "example": "zyxw9876-vu54-ts32-rq10-zyxwvu654321" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "description": "The Tag Group name", + "type": "string", + "example": "My Tag Group" + }, + "exclusive": { + "description": "If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.", + "type": "boolean" + }, + "default": { + "description": "Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.", + "type": "boolean" + } + }, + "required": [ + "name", + "exclusive", + "default" + ] + }, + "relationships": { + "type": "object", + "properties": { + "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" + ] + }, + "RelationshipLinks": { + "type": "object", + "properties": { + "self": { + "type": "string", + "format": "uri" + }, + "related": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "self", + "related" + ] + }, + "OnlyRelatedLinks": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "related" + ] + }, + "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" + ] + }, + "ObjectLinks": { + "type": "object", + "properties": { + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "self" + ] + } + }, + "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-01-15/reference/api-overview#authentication", + "x-default": "Klaviyo-API-Key your-private-api-key" + } + } + }, + "tags": [ + { + "name": "Accounts", + "description": "accounts" + }, + { + "name": "Campaigns", + "description": "campaigns" + }, + { + "name": "Catalogs", + "description": "catalogs" + }, + { + "name": "Coupons", + "description": "coupons" + }, + { + "name": "Custom Objects", + "description": "custom objects" + }, + { + "name": "Data Privacy", + "description": "data privacy" + }, + { + "name": "Events", + "description": "events" + }, + { + "name": "Flows", + "description": "flows" + }, + { + "name": "Forms", + "description": "forms" + }, + { + "name": "Images", + "description": "images" + }, + { + "name": "Lists", + "description": "lists" + }, + { + "name": "Metrics", + "description": "metrics" + }, + { + "name": "Profiles", + "description": "profiles" + }, + { + "name": "Reporting", + "description": "reporting" + }, + { + "name": "Reviews", + "description": "reviews" + }, + { + "name": "Segments", + "description": "segments" + }, + { + "name": "Tags", + "description": "tags" + }, + { + "name": "Templates", + "description": "templates" + }, + { + "name": "Tracking Settings", + "description": "tracking settings" + }, + { + "name": "Web Feeds", + "description": "web feeds" + }, + { + "name": "Webhooks", + "description": "webhooks" + }, + { + "name": "Client", + "description": "client" + } + ], + "security": [ + { + "Klaviyo-API-Key": [] + } + ], + "x-readme": { + "explorer-enabled": false, + "proxy-enabled": true, + "samples-enabled": true + } +} \ No newline at end of file diff --git a/inventory-server/src/routes/import.js b/inventory-server/src/routes/import.js index 4280e9d..e26a23f 100644 --- a/inventory-server/src/routes/import.js +++ b/inventory-server/src/routes/import.js @@ -1254,6 +1254,251 @@ router.get('/search-products', async (req, res) => { } }); +// Shared SELECT for product queries (matches search-products fields) +const PRODUCT_SELECT = ` + SELECT + p.pid, + p.description AS title, + p.notes AS description, + p.itemnumber AS sku, + p.upc AS barcode, + p.harmonized_tariff_code, + pcp.price_each AS price, + p.sellingprice AS regular_price, + CASE + WHEN EXISTS (SELECT 1 FROM product_inventory WHERE pid = p.pid AND count > 0) + THEN (SELECT ROUND(AVG(costeach), 5) FROM product_inventory WHERE pid = p.pid AND count > 0) + ELSE (SELECT costeach FROM product_inventory WHERE pid = p.pid ORDER BY daterec DESC LIMIT 1) + END AS cost_price, + s.companyname AS vendor, + sid.supplier_itemnumber AS vendor_reference, + sid.notions_itemnumber AS notions_reference, + sid.supplier_id AS supplier, + sid.notions_case_pack AS case_qty, + pc1.name AS brand, + p.company AS brand_id, + pc2.name AS line, + p.line AS line_id, + pc3.name AS subline, + p.subline AS subline_id, + pc4.name AS artist, + p.artist AS artist_id, + COALESCE(CASE + WHEN sid.supplier_id = 92 THEN sid.notions_qty_per_unit + ELSE sid.supplier_qty_per_unit + END, sid.notions_qty_per_unit) AS moq, + p.weight, + p.length, + p.width, + p.height, + p.country_of_origin, + ci.totalsold AS total_sold, + p.datein AS first_received, + pls.date_sold AS date_last_sold, + IF(p.tax_code IS NULL, '', CAST(p.tax_code AS CHAR)) AS tax_code, + CAST(p.size_cat AS CHAR) AS size_cat, + CAST(p.shipping_restrictions AS CHAR) AS shipping_restrictions + FROM products p + LEFT JOIN product_current_prices pcp ON p.pid = pcp.pid AND pcp.active = 1 + LEFT JOIN supplier_item_data sid ON p.pid = sid.pid + LEFT JOIN suppliers s ON sid.supplier_id = s.supplierid + LEFT JOIN product_categories pc1 ON p.company = pc1.cat_id + LEFT JOIN product_categories pc2 ON p.line = pc2.cat_id + LEFT JOIN product_categories pc3 ON p.subline = pc3.cat_id + LEFT JOIN product_categories pc4 ON p.artist = pc4.cat_id + LEFT JOIN product_last_sold pls ON p.pid = pls.pid + LEFT JOIN current_inventory ci ON p.pid = ci.pid`; + +// Load products for a specific line (company + line + optional subline) +router.get('/line-products', async (req, res) => { + const { company, line, subline } = req.query; + if (!company || !line) { + return res.status(400).json({ error: 'company and line are required' }); + } + try { + const { connection } = await getDbConnection(); + let where = 'WHERE p.company = ? AND p.line = ?'; + const params = [Number(company), Number(line)]; + if (subline) { + where += ' AND p.subline = ?'; + params.push(Number(subline)); + } + const query = `${PRODUCT_SELECT} ${where} GROUP BY p.pid ORDER BY p.description`; + const [results] = await connection.query(query, params); + res.json(results); + } catch (error) { + console.error('Error loading line products:', error); + res.status(500).json({ error: 'Failed to load line products' }); + } +}); + +// Load new products (last 45 days by release date, excluding preorders) +router.get('/new-products', async (req, res) => { + try { + const { connection } = await getDbConnection(); + const query = `${PRODUCT_SELECT} + LEFT JOIN shop_inventory si2 ON p.pid = si2.pid AND si2.store = 0 + WHERE DATEDIFF(NOW(), p.date_ol) <= 45 + AND p.notnew = 0 + AND (si2.all IS NULL OR si2.all != 2) + GROUP BY p.pid + ORDER BY IF(p.date_ol != '0000-00-00', p.date_ol, p.date_created) DESC`; + const [results] = await connection.query(query); + res.json(results); + } catch (error) { + console.error('Error loading new products:', error); + res.status(500).json({ error: 'Failed to load new products' }); + } +}); + +// Load preorder products +router.get('/preorder-products', async (req, res) => { + try { + const { connection } = await getDbConnection(); + const query = `${PRODUCT_SELECT} + LEFT JOIN shop_inventory si2 ON p.pid = si2.pid AND si2.store = 0 + WHERE si2.all = 2 + GROUP BY p.pid + ORDER BY IF(p.date_ol != '0000-00-00', p.date_ol, p.date_created) DESC`; + const [results] = await connection.query(query); + res.json(results); + } catch (error) { + console.error('Error loading preorder products:', error); + res.status(500).json({ error: 'Failed to load preorder products' }); + } +}); + +// Load hidden recently-created products from local PG, enriched from MySQL +router.get('/hidden-new-products', async (req, res) => { + try { + const pool = req.app.locals.pool; + const pgResult = await pool.query( + `SELECT pid FROM products WHERE visible = false AND created_at > NOW() - INTERVAL '90 days' ORDER BY created_at DESC LIMIT 500` + ); + const pids = pgResult.rows.map(r => r.pid); + if (pids.length === 0) return res.json([]); + + const { connection } = await getDbConnection(); + const placeholders = pids.map(() => '?').join(','); + const query = `${PRODUCT_SELECT} WHERE p.pid IN (${placeholders}) GROUP BY p.pid ORDER BY FIELD(p.pid, ${placeholders})`; + const [results] = await connection.query(query, [...pids, ...pids]); + res.json(results); + } catch (error) { + console.error('Error loading hidden new products:', error); + res.status(500).json({ error: 'Failed to load hidden new products' }); + } +}); + +// Load landing page extras (featured lines) for new/preorder pages +router.get('/landing-extras', async (req, res) => { + const { catId, sid } = req.query; + if (!catId) { + return res.status(400).json({ error: 'catId is required' }); + } + try { + const { connection } = await getDbConnection(); + const [results] = await connection.query( + `SELECT extra_id, image, extra_cat_id, path, name, top_text, is_new + FROM product_category_landing_extras + WHERE cat_id = ? AND sid = ? AND section_cat_id = 0 AND hidden = 0 + ORDER BY \`order\` DESC, name ASC`, + [Number(catId), Number(sid) || 0] + ); + res.json(results); + } catch (error) { + console.error('Error loading landing extras:', error); + res.status(500).json({ error: 'Failed to load landing extras' }); + } +}); + +// Load products by shop path (resolves category names to IDs) +router.get('/path-products', async (req, res) => { + res.set('Cache-Control', 'no-store'); + const { path: shopPath } = req.query; + if (!shopPath) { + return res.status(400).json({ error: 'path is required' }); + } + + try { + const { connection } = await getDbConnection(); + + // Strip common URL prefixes (full URLs, /shop/, leading slash) + const cleanPath = String(shopPath) + .replace(/^https?:\/\/[^/]+/, '') + .replace(/^\/shop\//, '/') + .replace(/^\//, ''); + const parts = cleanPath.split('/'); + const filters = {}; + for (let i = 0; i < parts.length - 1; i += 2) { + filters[parts[i]] = decodeURIComponent(parts[i + 1]).replace(/_/g, ' '); + } + + if (Object.keys(filters).length === 0) { + return res.status(400).json({ error: 'No valid filters found in path' }); + } + + // Resolve category names to IDs (order matters: company -> line -> subline) + const typeMap = { company: 1, line: 2, subline: 3, section: 10, cat: 11, subcat: 12, subsubcat: 13 }; + const resolvedIds = {}; + const resolveOrder = ['company', 'line', 'subline', 'section', 'cat', 'subcat', 'subsubcat']; + + for (const key of resolveOrder) { + const value = filters[key]; + if (!value) continue; + const type = typeMap[key]; + if (!type) continue; + const types = key === 'cat' ? [11, 20] : key === 'subcat' ? [12, 21] : [type]; + + // For line/subline, filter by parent (master_cat_id) to disambiguate + let parentFilter = ''; + const qParams = [value]; + if (key === 'line' && resolvedIds.company != null) { + parentFilter = ' AND master_cat_id = ?'; + qParams.push(resolvedIds.company); + } else if (key === 'subline' && resolvedIds.line != null) { + parentFilter = ' AND master_cat_id = ?'; + qParams.push(resolvedIds.line); + } + + const [rows] = await connection.query( + `SELECT cat_id FROM product_categories WHERE LOWER(name) = LOWER(?) AND type IN (${types.join(',')})${parentFilter} LIMIT 1`, + qParams + ); + if (rows.length > 0) { + resolvedIds[key] = rows[0].cat_id; + } else { + return res.json([]); + } + } + + // Build WHERE using resolved IDs + const whereParts = []; + const params = []; + const directFields = { company: 'p.company', line: 'p.line', subline: 'p.subline' }; + + for (const [key, catId] of Object.entries(resolvedIds)) { + if (directFields[key]) { + whereParts.push(`${directFields[key]} = ?`); + params.push(catId); + } else { + whereParts.push('EXISTS (SELECT 1 FROM product_category_index pci2 WHERE pci2.pid = p.pid AND pci2.cat_id = ?)'); + params.push(catId); + } + } + + if (whereParts.length === 0) { + return res.status(400).json({ error: 'No valid filters found in path' }); + } + + const query = `${PRODUCT_SELECT} WHERE ${whereParts.join(' AND ')} GROUP BY p.pid ORDER BY p.description`; + const [results] = await connection.query(query, params); + res.json(results); + } catch (error) { + console.error('Error loading path products:', error); + res.status(500).json({ error: 'Failed to load products by path' }); + } +}); + // Get product images for a given PID from production DB router.get('/product-images/:pid', async (req, res) => { const pid = parseInt(req.params.pid, 10); diff --git a/inventory/src/components/product-editor/ImageManager.tsx b/inventory/src/components/product-editor/ImageManager.tsx index 67264f1..9e290af 100644 --- a/inventory/src/components/product-editor/ImageManager.tsx +++ b/inventory/src/components/product-editor/ImageManager.tsx @@ -47,14 +47,16 @@ import type { ProductImage } from "./types"; // ── Helper: get best image URL ───────────────────────────────────────── -export function getImageSrc(img: ProductImage): string | null { +export function getImageSrc(img: ProductImage, preferLarge = false): string | null { if (img.imageUrl) return img.imageUrl; + if (preferLarge) { + return ( + img.sizes["600x600"]?.url ?? + null + ); + } return ( - img.sizes["600x600"]?.url ?? - img.sizes["500x500"]?.url ?? img.sizes["300x300"]?.url ?? - img.sizes["l"]?.url ?? - img.sizes["o"]?.url ?? null ); } @@ -456,13 +458,7 @@ export function ImageManager({ Product image preview {zoomImage && ( {`Image @@ -472,3 +468,71 @@ export function ImageManager({ ); } + +// ── Mini Image Preview (for minimal layout) ───────────────────────────── + +export function MiniImagePreview({ + images, + isLoading, +}: { + images: ProductImage[]; + isLoading: boolean; +}) { + const [zoomImage, setZoomImage] = useState(null); + + // Match the full ImageManager grid width (CELL * 3 + GAP * 2) + // Match the main image cell size (CELL * 2 + GAP) + const SIZE = 206; + + if (isLoading) { + return ( +
+ +
+ ); + } + + const first = images[0]; + if (!first) return null; + + const src = getImageSrc(first); + if (!src) return null; + + const extra = images.length - 1; + + return ( + <> +
setZoomImage(first)} + > + Product + {extra > 0 && ( + + +{extra} + + )} +
+ !open && setZoomImage(null)}> + + Product image preview + {zoomImage && ( + {`Image + )} + + + + ); +} diff --git a/inventory/src/components/product-editor/ProductEditForm.tsx b/inventory/src/components/product-editor/ProductEditForm.tsx index f6a089c..73a4f96 100644 --- a/inventory/src/components/product-editor/ProductEditForm.tsx +++ b/inventory/src/components/product-editor/ProductEditForm.tsx @@ -6,14 +6,13 @@ import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; -import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { Loader2, X, Copy, Maximize2, Minus, Store, Terminal, ExternalLink } from "lucide-react"; import { submitProductEdit, type ImageChanges } from "@/services/productEditor"; import { EditableComboboxField } from "./EditableComboboxField"; import { EditableInput } from "./EditableInput"; import { EditableMultiSelect } from "./EditableMultiSelect"; -import { ImageManager } from "./ImageManager"; +import { ImageManager, MiniImagePreview } from "./ImageManager"; import type { SearchProduct, FieldOptions, @@ -23,6 +22,38 @@ import type { ProductFormValues, } from "./types"; +// Simple in-memory cache for lines/sublines to avoid duplicate requests across forms +const linesCache = new Map>(); +const sublinesCache = new Map>(); + +function fetchLinesCached(companyId: string, signal?: AbortSignal): Promise { + const cached = linesCache.get(companyId); + if (cached) return cached; + const p = axios + .get(`/api/import/product-lines/${companyId}`, { signal }) + .then((res) => res.data as LineOption[]) + .catch(() => { + linesCache.delete(companyId); + return [] as LineOption[]; + }); + linesCache.set(companyId, p); + return p; +} + +function fetchSublinesCached(lineId: string, signal?: AbortSignal): Promise { + const cached = sublinesCache.get(lineId); + if (cached) return cached; + const p = axios + .get(`/api/import/sublines/${lineId}`, { signal }) + .then((res) => res.data as LineOption[]) + .catch(() => { + sublinesCache.delete(lineId); + return [] as LineOption[]; + }); + sublinesCache.set(lineId, p); + return p; +} + // --- Field configuration types --- type FieldType = "input" | "combobox" | "multiselect" | "textarea"; @@ -54,9 +85,9 @@ interface FieldGroup { // --- Layout modes --- -type LayoutMode = "full" | "minimal" | "shop" | "backend"; +export type LayoutMode = "full" | "minimal" | "shop" | "backend"; -const LAYOUT_ICONS: { mode: LayoutMode; label: string; icon: React.ComponentType<{ className?: string }> }[] = [ +export const LAYOUT_ICONS: { mode: LayoutMode; label: string; icon: React.ComponentType<{ className?: string }> }[] = [ { mode: "full", label: "Full", icon: Maximize2 }, { mode: "minimal", label: "Minimal", icon: Minus }, { mode: "shop", label: "Shop", icon: Store }, @@ -142,7 +173,7 @@ const MODE_LAYOUTS: Record = { minimal: { sidebarGroups: 3, imageRows: 2.2, - descriptionRows: 6, + descriptionRows: 5, groups: [ { cols: 2, fields: [F.company, F.msrp, F.line, F.subline] }, { label: "Description", cols: 1, fields: [F.description] }, @@ -153,13 +184,14 @@ const MODE_LAYOUTS: Record = { export function ProductEditForm({ product, fieldOptions, + layoutMode, onClose, }: { product: SearchProduct; fieldOptions: FieldOptions; + layoutMode: LayoutMode; onClose: () => void; }) { - const [layoutMode, setLayoutMode] = useState("full"); const [lineOptions, setLineOptions] = useState([]); const [sublineOptions, setSublineOptions] = useState([]); const [productImages, setProductImages] = useState([]); @@ -217,20 +249,22 @@ export function ProductEditForm({ originalValuesRef.current = { ...formValues }; reset(formValues); - // Fetch images + // Fetch images and categories with abort support + const controller = new AbortController(); + const { signal } = controller; + setIsLoadingImages(true); axios - .get(`/api/import/product-images/${product.pid}`) + .get(`/api/import/product-images/${product.pid}`, { signal }) .then((res) => { setProductImages(res.data); originalImagesRef.current = res.data; }) - .catch(() => toast.error("Failed to load product images")) + .catch((e) => { if (!axios.isCancel(e)) toast.error("Failed to load product images"); }) .finally(() => setIsLoadingImages(false)); - // Fetch product categories (categories, themes, colors) axios - .get(`/api/import/product-categories/${product.pid}`) + .get(`/api/import/product-categories/${product.pid}`, { signal }) .then((res) => { const cats: string[] = []; const themes: string[] = []; @@ -250,30 +284,30 @@ export function ProductEditForm({ .catch(() => { // Non-critical — just leave arrays empty }); + + return () => controller.abort(); }, [product, reset]); - // Load lines when company changes + // Load lines when company changes (cached across forms) useEffect(() => { if (!watchCompany) { setLineOptions([]); return; } - axios - .get(`/api/import/product-lines/${watchCompany}`) - .then((res) => setLineOptions(res.data)) - .catch(() => setLineOptions([])); + const controller = new AbortController(); + fetchLinesCached(watchCompany, controller.signal).then(setLineOptions); + return () => controller.abort(); }, [watchCompany]); - // Load sublines when line changes + // Load sublines when line changes (cached across forms) useEffect(() => { if (!watchLine) { setSublineOptions([]); return; } - axios - .get(`/api/import/sublines/${watchLine}`) - .then((res) => setSublineOptions(res.data)) - .catch(() => setSublineOptions([])); + const controller = new AbortController(); + fetchSublinesCached(watchLine, controller.signal).then(setSublineOptions); + return () => controller.abort(); }, [watchLine]); const computeImageChanges = useCallback((): ImageChanges | null => { @@ -462,29 +496,6 @@ export function ProductEditForm({ return ( - {/* Layout toggle */} -
- { if (v) setLayoutMode(v as LayoutMode); }} - > - {LAYOUT_ICONS.map(({ mode, label, icon: Icon }) => ( - - - - - {label} - - - {label} - - ))} - - -
@@ -505,18 +516,33 @@ export function ProductEditForm({
- - - + + + + View in Backend
+
+ + + + + Hide this product + +
- + {layoutMode === "minimal" ? ( + + ) : ( + + )}
{MODE_LAYOUTS[layoutMode].sidebarGroups > 0 && (
diff --git a/inventory/src/components/product-editor/types.ts b/inventory/src/components/product-editor/types.ts index c81f88c..c512b2b 100644 --- a/inventory/src/components/product-editor/types.ts +++ b/inventory/src/components/product-editor/types.ts @@ -57,6 +57,15 @@ export interface LineOption { value: string; } +export interface LandingExtra { + extra_id: number; + name: string; + image: string; + extra_cat_id: number; + path: string; + top_text: string; +} + export interface ProductImage { iid: number | string; // number for existing, string like "new-0" for added order: number; diff --git a/inventory/src/pages/ProductEditor.tsx b/inventory/src/pages/ProductEditor.tsx index 8a7a055..6c37698 100644 --- a/inventory/src/pages/ProductEditor.tsx +++ b/inventory/src/pages/ProductEditor.tsx @@ -1,15 +1,76 @@ -import { useState, useEffect } from "react"; +import { useState, useEffect, useCallback, useMemo, useRef } from "react"; import axios from "axios"; import { toast } from "sonner"; import { Loader2 } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; +import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; +import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; +import { + Pagination, + PaginationContent, + PaginationItem, + PaginationLink, + PaginationNext, + PaginationPrevious, + PaginationEllipsis, +} from "@/components/ui/pagination"; import { ProductSearch } from "@/components/product-editor/ProductSearch"; -import { ProductEditForm } from "@/components/product-editor/ProductEditForm"; -import type { SearchProduct, FieldOptions } from "@/components/product-editor/types"; +import { ProductEditForm, LAYOUT_ICONS } from "@/components/product-editor/ProductEditForm"; +import type { LayoutMode } from "@/components/product-editor/ProductEditForm"; +import type { SearchProduct, FieldOptions, FieldOption, LineOption, LandingExtra } from "@/components/product-editor/types"; + +const PER_PAGE = 20; +const PROD_IMG_HOST = "https://sbing.com"; + +/** Strip all HTML except , , and
tags */ +function sanitizeHtml(html: string): string { + return html.replace(/<\/?(?!b>|br\s*\/?>)[^>]*>/gi, ""); +} + +/** Strip all HTML tags for use in plain text contexts */ +function stripHtml(html: string): string { + return html.replace(/<[^>]*>/g, ""); +} export default function ProductEditor() { - const [selectedProduct, setSelectedProduct] = useState(null); + const [allProducts, setAllProducts] = useState([]); const [fieldOptions, setFieldOptions] = useState(null); const [isLoadingOptions, setIsLoadingOptions] = useState(true); + const [isLoadingProducts, setIsLoadingProducts] = useState(false); + const [layoutMode, setLayoutMode] = useState("full"); + const [page, _setPage] = useState(1); + const topRef = useRef(null); + const setPage = useCallback((v: number | ((p: number) => number)) => { + _setPage(v); + setTimeout(() => topRef.current?.scrollIntoView({ behavior: "smooth" }), 0); + }, []); + const [activeTab, setActiveTab] = useState("new"); + const [loadedTab, setLoadedTab] = useState(null); + + // Line picker state + const [lineCompany, setLineCompany] = useState(""); + const [lineLine, setLineLine] = useState(""); + const [lineSubline, setLineSubline] = useState(""); + const [lineOptions, setLineOptions] = useState([]); + const [sublineOptions, setSublineOptions] = useState([]); + const [isLoadingLines, setIsLoadingLines] = useState(false); + const [isLoadingSublines, setIsLoadingSublines] = useState(false); + + // Landing extras state + const [landingExtras, setLandingExtras] = useState>({}); + const [isLoadingExtras, setIsLoadingExtras] = useState(false); + const [activeLandingItem, setActiveLandingItem] = useState(null); + + // Abort controller for cancelling in-flight product requests + const abortRef = useRef(null); + + const totalPages = Math.ceil(allProducts.length / PER_PAGE); + const products = useMemo( + () => allProducts.slice((page - 1) * PER_PAGE, page * PER_PAGE), + [allProducts, page] + ); useEffect(() => { axios @@ -20,8 +81,253 @@ export default function ProductEditor() { toast.error("Failed to load field options"); }) .finally(() => setIsLoadingOptions(false)); + // Auto-load the default tab + handleTabChange("new"); }, []); + // Load lines when company changes + useEffect(() => { + setLineLine(""); + setLineSubline(""); + setLineOptions([]); + setSublineOptions([]); + if (!lineCompany) return; + setIsLoadingLines(true); + axios + .get(`/api/import/product-lines/${lineCompany}`) + .then((res) => setLineOptions(res.data)) + .catch(() => setLineOptions([])) + .finally(() => setIsLoadingLines(false)); + }, [lineCompany]); + + // Load sublines when line changes + useEffect(() => { + setLineSubline(""); + setSublineOptions([]); + if (!lineLine) return; + setIsLoadingSublines(true); + axios + .get(`/api/import/sublines/${lineLine}`) + .then((res) => setSublineOptions(res.data)) + .catch(() => setSublineOptions([])) + .finally(() => setIsLoadingSublines(false)); + }, [lineLine]); + + const handleSearchSelect = useCallback((product: SearchProduct) => { + setAllProducts((prev) => { + if (prev.some((p) => p.pid === product.pid)) return prev; + return [product, ...prev]; + }); + setPage(1); + }, []); + + const handleRemoveProduct = useCallback((pid: number) => { + setAllProducts((prev) => prev.filter((p) => p.pid !== pid)); + }, []); + + const loadFeedProducts = useCallback(async (endpoint: string, label: string) => { + abortRef.current?.abort(); + const controller = new AbortController(); + abortRef.current = controller; + setAllProducts([]); + setIsLoadingProducts(true); + try { + const res = await axios.get(`/api/import/${endpoint}`, { signal: controller.signal }); + setAllProducts(res.data); + setPage(1); + toast.success(`Loaded ${res.data.length} ${label} products`); + } catch (e) { + if (!axios.isCancel(e)) toast.error(`Failed to load ${label} products`); + } finally { + setIsLoadingProducts(false); + } + }, []); + + const loadLandingExtras = useCallback(async (catId: number, tabKey: string) => { + if (landingExtras[tabKey]) return; + setIsLoadingExtras(true); + try { + const res = await axios.get("/api/import/landing-extras", { + params: { catId, sid: 0 }, + }); + setLandingExtras((prev) => ({ ...prev, [tabKey]: res.data })); + } catch { + console.error("Failed to load landing extras"); + } finally { + setIsLoadingExtras(false); + } + }, [landingExtras]); + + const handleLandingClick = useCallback(async (extra: LandingExtra) => { + abortRef.current?.abort(); + const controller = new AbortController(); + abortRef.current = controller; + setActiveLandingItem(extra.path); + setAllProducts([]); + setIsLoadingProducts(true); + try { + const res = await axios.get("/api/import/path-products", { + params: { path: extra.path }, + signal: controller.signal, + }); + setAllProducts(res.data); + setPage(1); + toast.success(`Loaded ${res.data.length} products for ${stripHtml(extra.name)}`); + } catch (e) { + if (!axios.isCancel(e)) toast.error("Failed to load products for " + stripHtml(extra.name)); + } finally { + setIsLoadingProducts(false); + setActiveLandingItem(null); + } + }, []); + + // Auto-load when switching tabs + const handleTabChange = useCallback((tab: string) => { + setActiveTab(tab); + if (tab === "new" && loadedTab !== "new") { + setLoadedTab("new"); + loadFeedProducts("new-products", "new"); + loadLandingExtras(-2, "new"); + } else if (tab === "preorder" && loadedTab !== "preorder") { + setLoadedTab("preorder"); + loadFeedProducts("preorder-products", "pre-order"); + loadLandingExtras(-16, "preorder"); + } else if (tab === "hidden" && loadedTab !== "hidden") { + setLoadedTab("hidden"); + loadFeedProducts("hidden-new-products", "hidden"); + } + }, [loadedTab, loadFeedProducts, loadLandingExtras]); + + const loadLineProducts = useCallback(async () => { + if (!lineCompany || !lineLine) return; + abortRef.current?.abort(); + const controller = new AbortController(); + abortRef.current = controller; + setAllProducts([]); + setIsLoadingProducts(true); + try { + const params: Record = { company: lineCompany, line: lineLine }; + if (lineSubline) params.subline = lineSubline; + const res = await axios.get("/api/import/line-products", { params, signal: controller.signal }); + setAllProducts(res.data); + setPage(1); + toast.success(`Loaded ${res.data.length} products`); + } catch (e) { + if (!axios.isCancel(e)) toast.error("Failed to load line products"); + } finally { + setIsLoadingProducts(false); + } + }, [lineCompany, lineLine, lineSubline]); + + const renderLandingExtras = (tabKey: string) => { + const extras = landingExtras[tabKey]; + if (!extras || extras.length === 0) return null; + + return ( +
+
+ {extras.map((extra) => ( + + ))} +
+
+ ); + }; + + const renderPagination = () => { + if (totalPages <= 1) return null; + + const getPageNumbers = () => { + const pages: (number | "ellipsis")[] = []; + if (totalPages <= 7) { + for (let i = 1; i <= totalPages; i++) pages.push(i); + } else { + pages.push(1); + if (page > 3) pages.push("ellipsis"); + for (let i = Math.max(2, page - 1); i <= Math.min(totalPages - 1, page + 1); i++) { + pages.push(i); + } + if (page < totalPages - 2) pages.push("ellipsis"); + pages.push(totalPages); + } + return pages; + }; + + return ( + + + + setPage((p) => Math.max(1, p - 1))} + className={page === 1 ? "pointer-events-none opacity-50" : "cursor-pointer"} + /> + + {getPageNumbers().map((p, i) => + p === "ellipsis" ? ( + + + + ) : ( + + setPage(p)} + className="cursor-pointer" + > + {p} + + + ) + )} + + setPage((p) => Math.min(totalPages, p + 1))} + className={page === totalPages ? "pointer-events-none opacity-50" : "cursor-pointer"} + /> + + + + ); + }; + if (isLoadingOptions) { return (
@@ -32,24 +338,146 @@ export default function ProductEditor() { return (
-
-

Product Editor

-

- Search for a product and edit its fields. Only changed fields will be - submitted. -

+
+
+

Product Editor

+
+
+ Layout: + { if (v) setLayoutMode(v as LayoutMode); }} + > + {LAYOUT_ICONS.map(({ mode, label, icon: Icon }) => ( + + + + + {label} + + + {label} + + ))} + +
- + + + New + Pre-Order + Hidden (New) + By Line + Search + - {selectedProduct && fieldOptions && ( - setSelectedProduct(null)} - /> + + + + + + {isLoadingExtras && !landingExtras["new"] && ( +
+ + Loading featured lines... +
+ )} + {renderLandingExtras("new")} + {isLoadingProducts && ( +
+ + Loading new products... +
+ )} +
+ + + {isLoadingExtras && !landingExtras["preorder"] && ( +
+ + Loading featured lines... +
+ )} + {renderLandingExtras("preorder")} + {isLoadingProducts && ( +
+ + Loading pre-order products... +
+ )} +
+ + + {isLoadingProducts && ( +
+ + Loading hidden recently-created products... +
+ )} +
+ + +
+ + + {sublineOptions.length > 0 && ( + + )} + +
+
+
+ +
+ {renderPagination()} + + {products.length > 0 && fieldOptions && ( +
+ {products.map((product) => ( + handleRemoveProduct(product.pid)} + /> + ))} +
)} + + {renderPagination()}
); } diff --git a/inventory/tsconfig.tsbuildinfo b/inventory/tsconfig.tsbuildinfo index 4db8276..587d1ba 100644 --- a/inventory/tsconfig.tsbuildinfo +++ b/inventory/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/app.tsx","./src/config.ts","./src/main.tsx","./src/vite-env.d.ts","./src/components/config.ts","./src/components/analytics/categoryperformance.tsx","./src/components/analytics/priceanalysis.tsx","./src/components/analytics/profitanalysis.tsx","./src/components/analytics/stockanalysis.tsx","./src/components/analytics/vendorperformance.tsx","./src/components/auth/firstaccessiblepage.tsx","./src/components/auth/protected.tsx","./src/components/auth/requireauth.tsx","./src/components/chat/chatroom.tsx","./src/components/chat/chattest.tsx","./src/components/chat/roomlist.tsx","./src/components/chat/searchresults.tsx","./src/components/dashboard/financialoverview.tsx","./src/components/dashboard/operationsmetrics.tsx","./src/components/dashboard/payrollmetrics.tsx","./src/components/dashboard/periodselectionpopover.tsx","./src/components/dashboard/shared/dashboardbadge.tsx","./src/components/dashboard/shared/dashboardcharttooltip.tsx","./src/components/dashboard/shared/dashboardsectionheader.tsx","./src/components/dashboard/shared/dashboardskeleton.tsx","./src/components/dashboard/shared/dashboardstatcard.tsx","./src/components/dashboard/shared/dashboardstatcardmini.tsx","./src/components/dashboard/shared/dashboardstates.tsx","./src/components/dashboard/shared/dashboardtable.tsx","./src/components/dashboard/shared/index.ts","./src/components/discount-simulator/configpanel.tsx","./src/components/discount-simulator/resultschart.tsx","./src/components/discount-simulator/resultstable.tsx","./src/components/discount-simulator/summarycard.tsx","./src/components/forecasting/daterangepickerquick.tsx","./src/components/forecasting/quickorderbuilder.tsx","./src/components/forecasting/columns.tsx","./src/components/layout/appsidebar.tsx","./src/components/layout/mainlayout.tsx","./src/components/layout/navuser.tsx","./src/components/overview/bestsellers.tsx","./src/components/overview/forecastmetrics.tsx","./src/components/overview/overstockmetrics.tsx","./src/components/overview/overview.tsx","./src/components/overview/purchasemetrics.tsx","./src/components/overview/replenishmentmetrics.tsx","./src/components/overview/salesmetrics.tsx","./src/components/overview/stockmetrics.tsx","./src/components/overview/topoverstockedproducts.tsx","./src/components/overview/topreplenishproducts.tsx","./src/components/overview/vendorperformance.tsx","./src/components/product-editor/comboboxfield.tsx","./src/components/product-editor/imagemanager.tsx","./src/components/product-editor/producteditform.tsx","./src/components/product-editor/productsearch.tsx","./src/components/product-editor/types.ts","./src/components/product-import/createproductcategorydialog.tsx","./src/components/product-import/reactspreadsheetimport.tsx","./src/components/product-import/config.ts","./src/components/product-import/index.ts","./src/components/product-import/translationsrsiprops.ts","./src/components/product-import/types.ts","./src/components/product-import/components/closeconfirmationdialog.tsx","./src/components/product-import/components/modalwrapper.tsx","./src/components/product-import/components/providers.tsx","./src/components/product-import/components/savesessiondialog.tsx","./src/components/product-import/components/savedsessionslist.tsx","./src/components/product-import/components/table.tsx","./src/components/product-import/hooks/usersi.ts","./src/components/product-import/steps/steps.tsx","./src/components/product-import/steps/uploadflow.tsx","./src/components/product-import/steps/imageuploadstep/imageuploadstep.tsx","./src/components/product-import/steps/imageuploadstep/types.ts","./src/components/product-import/steps/imageuploadstep/components/droppablecontainer.tsx","./src/components/product-import/steps/imageuploadstep/components/genericdropzone.tsx","./src/components/product-import/steps/imageuploadstep/components/unassignedimagessection.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/copybutton.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/imagedropzone.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/productcard.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/sortableimage.tsx","./src/components/product-import/steps/imageuploadstep/components/unassignedimagessection/unassignedimageitem.tsx","./src/components/product-import/steps/imageuploadstep/hooks/usebulkimageupload.ts","./src/components/product-import/steps/imageuploadstep/hooks/usedraganddrop.ts","./src/components/product-import/steps/imageuploadstep/hooks/useproductimageoperations.ts","./src/components/product-import/steps/imageuploadstep/hooks/useproductimagesinit.ts","./src/components/product-import/steps/imageuploadstep/hooks/useurlimageupload.ts","./src/components/product-import/steps/matchcolumnsstep/matchcolumnsstep.tsx","./src/components/product-import/steps/matchcolumnsstep/types.ts","./src/components/product-import/steps/matchcolumnsstep/components/matchicon.tsx","./src/components/product-import/steps/matchcolumnsstep/components/templatecolumn.tsx","./src/components/product-import/steps/matchcolumnsstep/utils/findmatch.ts","./src/components/product-import/steps/matchcolumnsstep/utils/findunmatchedrequiredfields.ts","./src/components/product-import/steps/matchcolumnsstep/utils/getfieldoptions.ts","./src/components/product-import/steps/matchcolumnsstep/utils/getmatchedcolumns.ts","./src/components/product-import/steps/matchcolumnsstep/utils/normalizecheckboxvalue.ts","./src/components/product-import/steps/matchcolumnsstep/utils/normalizetabledata.ts","./src/components/product-import/steps/matchcolumnsstep/utils/setcolumn.ts","./src/components/product-import/steps/matchcolumnsstep/utils/setignorecolumn.ts","./src/components/product-import/steps/matchcolumnsstep/utils/setsubcolumn.ts","./src/components/product-import/steps/matchcolumnsstep/utils/uniqueentries.ts","./src/components/product-import/steps/selectheaderstep/selectheaderstep.tsx","./src/components/product-import/steps/selectheaderstep/components/selectheadertable.tsx","./src/components/product-import/steps/selectheaderstep/components/columns.tsx","./src/components/product-import/steps/selectsheetstep/selectsheetstep.tsx","./src/components/product-import/steps/uploadstep/uploadstep.tsx","./src/components/product-import/steps/uploadstep/components/dropzone.tsx","./src/components/product-import/steps/uploadstep/components/columns.tsx","./src/components/product-import/steps/uploadstep/utils/readfilesasync.ts","./src/components/product-import/steps/validationstep/index.tsx","./src/components/product-import/steps/validationstep/components/aisuggestionbadge.tsx","./src/components/product-import/steps/validationstep/components/copydownbanner.tsx","./src/components/product-import/steps/validationstep/components/floatingselectionbar.tsx","./src/components/product-import/steps/validationstep/components/initializingoverlay.tsx","./src/components/product-import/steps/validationstep/components/searchabletemplateselect.tsx","./src/components/product-import/steps/validationstep/components/suggestionbadges.tsx","./src/components/product-import/steps/validationstep/components/validationcontainer.tsx","./src/components/product-import/steps/validationstep/components/validationfooter.tsx","./src/components/product-import/steps/validationstep/components/validationtable.tsx","./src/components/product-import/steps/validationstep/components/validationtoolbar.tsx","./src/components/product-import/steps/validationstep/components/cells/checkboxcell.tsx","./src/components/product-import/steps/validationstep/components/cells/comboboxcell.tsx","./src/components/product-import/steps/validationstep/components/cells/inputcell.tsx","./src/components/product-import/steps/validationstep/components/cells/multiselectcell.tsx","./src/components/product-import/steps/validationstep/components/cells/multilineinput.tsx","./src/components/product-import/steps/validationstep/components/cells/selectcell.tsx","./src/components/product-import/steps/validationstep/contexts/aisuggestionscontext.tsx","./src/components/product-import/steps/validationstep/dialogs/aidebugdialog.tsx","./src/components/product-import/steps/validationstep/dialogs/aivalidationprogress.tsx","./src/components/product-import/steps/validationstep/dialogs/aivalidationresults.tsx","./src/components/product-import/steps/validationstep/dialogs/sanitycheckdialog.tsx","./src/components/product-import/steps/validationstep/hooks/useautoinlineaivalidation.ts","./src/components/product-import/steps/validationstep/hooks/usecopydownvalidation.ts","./src/components/product-import/steps/validationstep/hooks/usefieldoptions.ts","./src/components/product-import/steps/validationstep/hooks/useinlineaivalidation.ts","./src/components/product-import/steps/validationstep/hooks/useproductlines.ts","./src/components/product-import/steps/validationstep/hooks/usesanitycheck.ts","./src/components/product-import/steps/validationstep/hooks/usetemplatemanagement.ts","./src/components/product-import/steps/validationstep/hooks/useupcvalidation.ts","./src/components/product-import/steps/validationstep/hooks/usevalidationactions.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/index.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/useaiapi.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/useaiprogress.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/useaitransform.ts","./src/components/product-import/steps/validationstep/store/selectors.ts","./src/components/product-import/steps/validationstep/store/types.ts","./src/components/product-import/steps/validationstep/store/validationstore.ts","./src/components/product-import/steps/validationstep/utils/aivalidationutils.ts","./src/components/product-import/steps/validationstep/utils/countryutils.ts","./src/components/product-import/steps/validationstep/utils/datamutations.ts","./src/components/product-import/steps/validationstep/utils/inlineaipayload.ts","./src/components/product-import/steps/validationstep/utils/priceutils.ts","./src/components/product-import/steps/validationstep/utils/upcutils.ts","./src/components/product-import/steps/validationstepold/index.tsx","./src/components/product-import/steps/validationstepold/types.ts","./src/components/product-import/steps/validationstepold/components/aivalidationdialogs.tsx","./src/components/product-import/steps/validationstepold/components/basecellcontent.tsx","./src/components/product-import/steps/validationstepold/components/initializingvalidation.tsx","./src/components/product-import/steps/validationstepold/components/searchabletemplateselect.tsx","./src/components/product-import/steps/validationstepold/components/upcvalidationtableadapter.tsx","./src/components/product-import/steps/validationstepold/components/validationcell.tsx","./src/components/product-import/steps/validationstepold/components/validationcontainer.tsx","./src/components/product-import/steps/validationstepold/components/validationtable.tsx","./src/components/product-import/steps/validationstepold/components/cells/checkboxcell.tsx","./src/components/product-import/steps/validationstepold/components/cells/inputcell.tsx","./src/components/product-import/steps/validationstepold/components/cells/multiselectcell.tsx","./src/components/product-import/steps/validationstepold/components/cells/multilineinput.tsx","./src/components/product-import/steps/validationstepold/components/cells/selectcell.tsx","./src/components/product-import/steps/validationstepold/hooks/useaivalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usefieldvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usefiltermanagement.tsx","./src/components/product-import/steps/validationstepold/hooks/useinitialvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/useproductlinesfetching.tsx","./src/components/product-import/steps/validationstepold/hooks/userowoperations.tsx","./src/components/product-import/steps/validationstepold/hooks/usetemplatemanagement.tsx","./src/components/product-import/steps/validationstepold/hooks/useuniqueitemnumbersvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/useuniquevalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/useupcvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usevalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usevalidationstate.tsx","./src/components/product-import/steps/validationstepold/hooks/validationtypes.ts","./src/components/product-import/steps/validationstepold/types/index.ts","./src/components/product-import/steps/validationstepold/utils/aivalidationutils.ts","./src/components/product-import/steps/validationstepold/utils/countryutils.ts","./src/components/product-import/steps/validationstepold/utils/datamutations.ts","./src/components/product-import/steps/validationstepold/utils/priceutils.ts","./src/components/product-import/steps/validationstepold/utils/upcutils.ts","./src/components/product-import/utils/exceedsmaxrecords.ts","./src/components/product-import/utils/mapdata.ts","./src/components/product-import/utils/mapworkbook.ts","./src/components/product-import/utils/steps.ts","./src/components/products/productdetail.tsx","./src/components/products/productfilters.tsx","./src/components/products/producttable.tsx","./src/components/products/producttableskeleton.tsx","./src/components/products/productviews.tsx","./src/components/products/products.tsx","./src/components/purchase-orders/categorymetricscard.tsx","./src/components/purchase-orders/filtercontrols.tsx","./src/components/purchase-orders/ordermetricscard.tsx","./src/components/purchase-orders/paginationcontrols.tsx","./src/components/purchase-orders/purchaseorderaccordion.tsx","./src/components/purchase-orders/purchaseorderstable.tsx","./src/components/purchase-orders/vendormetricscard.tsx","./src/components/settings/datamanagement.tsx","./src/components/settings/globalsettings.tsx","./src/components/settings/permissionselector.tsx","./src/components/settings/productsettings.tsx","./src/components/settings/promptmanagement.tsx","./src/components/settings/reusableimagemanagement.tsx","./src/components/settings/templatemanagement.tsx","./src/components/settings/userform.tsx","./src/components/settings/userlist.tsx","./src/components/settings/usermanagement.tsx","./src/components/settings/vendorsettings.tsx","./src/components/templates/searchproducttemplatedialog.tsx","./src/components/templates/templateform.tsx","./src/components/ui/accordion.tsx","./src/components/ui/alert-dialog.tsx","./src/components/ui/alert.tsx","./src/components/ui/avatar.tsx","./src/components/ui/badge.tsx","./src/components/ui/button.tsx","./src/components/ui/calendar.tsx","./src/components/ui/card.tsx","./src/components/ui/carousel.tsx","./src/components/ui/checkbox.tsx","./src/components/ui/code.tsx","./src/components/ui/collapsible.tsx","./src/components/ui/command.tsx","./src/components/ui/date-range-picker-narrow.tsx","./src/components/ui/date-range-picker.tsx","./src/components/ui/dialog.tsx","./src/components/ui/drawer.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/ui/form.tsx","./src/components/ui/input.tsx","./src/components/ui/label.tsx","./src/components/ui/page-loading.tsx","./src/components/ui/pagination.tsx","./src/components/ui/popover.tsx","./src/components/ui/progress.tsx","./src/components/ui/radio-group.tsx","./src/components/ui/scroll-area.tsx","./src/components/ui/select.tsx","./src/components/ui/separator.tsx","./src/components/ui/sheet.tsx","./src/components/ui/sidebar.tsx","./src/components/ui/skeleton.tsx","./src/components/ui/sonner.tsx","./src/components/ui/switch.tsx","./src/components/ui/table.tsx","./src/components/ui/tabs.tsx","./src/components/ui/textarea.tsx","./src/components/ui/toast.tsx","./src/components/ui/toaster.tsx","./src/components/ui/toggle-group.tsx","./src/components/ui/toggle.tsx","./src/components/ui/tooltip.tsx","./src/config/dashboard.ts","./src/contexts/authcontext.tsx","./src/contexts/dashboardscrollcontext.tsx","./src/contexts/importsessioncontext.tsx","./src/hooks/use-mobile.tsx","./src/hooks/use-toast.ts","./src/hooks/usedebounce.ts","./src/hooks/useimportautosave.ts","./src/lib/utils.ts","./src/lib/dashboard/chartconfig.ts","./src/lib/dashboard/designtokens.ts","./src/pages/analytics.tsx","./src/pages/blackfridaydashboard.tsx","./src/pages/brands.tsx","./src/pages/categories.tsx","./src/pages/chat.tsx","./src/pages/dashboard.tsx","./src/pages/discountsimulator.tsx","./src/pages/forecasting.tsx","./src/pages/htslookup.tsx","./src/pages/import.tsx","./src/pages/login.tsx","./src/pages/overview.tsx","./src/pages/producteditor.tsx","./src/pages/products.tsx","./src/pages/purchaseorders.tsx","./src/pages/settings.tsx","./src/pages/smalldashboard.tsx","./src/pages/vendors.tsx","./src/services/apiv2.ts","./src/services/importsessionapi.ts","./src/services/producteditor.ts","./src/types/dashboard-shims.d.ts","./src/types/dashboard.d.ts","./src/types/discount-simulator.ts","./src/types/globals.d.ts","./src/types/importsession.ts","./src/types/products.ts","./src/types/react-data-grid.d.ts","./src/types/status-codes.ts","./src/utils/emojiutils.ts","./src/utils/naturallanguageperiod.ts","./src/utils/productutils.ts"],"version":"5.6.3"} \ No newline at end of file +{"root":["./src/app.tsx","./src/config.ts","./src/main.tsx","./src/vite-env.d.ts","./src/components/config.ts","./src/components/analytics/categoryperformance.tsx","./src/components/analytics/priceanalysis.tsx","./src/components/analytics/profitanalysis.tsx","./src/components/analytics/stockanalysis.tsx","./src/components/analytics/vendorperformance.tsx","./src/components/auth/firstaccessiblepage.tsx","./src/components/auth/protected.tsx","./src/components/auth/requireauth.tsx","./src/components/chat/chatroom.tsx","./src/components/chat/chattest.tsx","./src/components/chat/roomlist.tsx","./src/components/chat/searchresults.tsx","./src/components/dashboard/financialoverview.tsx","./src/components/dashboard/operationsmetrics.tsx","./src/components/dashboard/payrollmetrics.tsx","./src/components/dashboard/periodselectionpopover.tsx","./src/components/dashboard/shared/dashboardbadge.tsx","./src/components/dashboard/shared/dashboardcharttooltip.tsx","./src/components/dashboard/shared/dashboardsectionheader.tsx","./src/components/dashboard/shared/dashboardskeleton.tsx","./src/components/dashboard/shared/dashboardstatcard.tsx","./src/components/dashboard/shared/dashboardstatcardmini.tsx","./src/components/dashboard/shared/dashboardstates.tsx","./src/components/dashboard/shared/dashboardtable.tsx","./src/components/dashboard/shared/index.ts","./src/components/discount-simulator/configpanel.tsx","./src/components/discount-simulator/resultschart.tsx","./src/components/discount-simulator/resultstable.tsx","./src/components/discount-simulator/summarycard.tsx","./src/components/forecasting/daterangepickerquick.tsx","./src/components/forecasting/quickorderbuilder.tsx","./src/components/forecasting/columns.tsx","./src/components/layout/appsidebar.tsx","./src/components/layout/mainlayout.tsx","./src/components/layout/navuser.tsx","./src/components/overview/bestsellers.tsx","./src/components/overview/forecastmetrics.tsx","./src/components/overview/overstockmetrics.tsx","./src/components/overview/overview.tsx","./src/components/overview/purchasemetrics.tsx","./src/components/overview/replenishmentmetrics.tsx","./src/components/overview/salesmetrics.tsx","./src/components/overview/stockmetrics.tsx","./src/components/overview/topoverstockedproducts.tsx","./src/components/overview/topreplenishproducts.tsx","./src/components/overview/vendorperformance.tsx","./src/components/product-editor/comboboxfield.tsx","./src/components/product-editor/editablecomboboxfield.tsx","./src/components/product-editor/editableinput.tsx","./src/components/product-editor/editablemultiselect.tsx","./src/components/product-editor/imagemanager.tsx","./src/components/product-editor/producteditform.tsx","./src/components/product-editor/productsearch.tsx","./src/components/product-editor/types.ts","./src/components/product-import/createproductcategorydialog.tsx","./src/components/product-import/reactspreadsheetimport.tsx","./src/components/product-import/config.ts","./src/components/product-import/index.ts","./src/components/product-import/translationsrsiprops.ts","./src/components/product-import/types.ts","./src/components/product-import/components/closeconfirmationdialog.tsx","./src/components/product-import/components/modalwrapper.tsx","./src/components/product-import/components/providers.tsx","./src/components/product-import/components/savesessiondialog.tsx","./src/components/product-import/components/savedsessionslist.tsx","./src/components/product-import/components/table.tsx","./src/components/product-import/hooks/usersi.ts","./src/components/product-import/steps/steps.tsx","./src/components/product-import/steps/uploadflow.tsx","./src/components/product-import/steps/imageuploadstep/imageuploadstep.tsx","./src/components/product-import/steps/imageuploadstep/types.ts","./src/components/product-import/steps/imageuploadstep/components/droppablecontainer.tsx","./src/components/product-import/steps/imageuploadstep/components/genericdropzone.tsx","./src/components/product-import/steps/imageuploadstep/components/unassignedimagessection.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/copybutton.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/imagedropzone.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/productcard.tsx","./src/components/product-import/steps/imageuploadstep/components/productcard/sortableimage.tsx","./src/components/product-import/steps/imageuploadstep/components/unassignedimagessection/unassignedimageitem.tsx","./src/components/product-import/steps/imageuploadstep/hooks/usebulkimageupload.ts","./src/components/product-import/steps/imageuploadstep/hooks/usedraganddrop.ts","./src/components/product-import/steps/imageuploadstep/hooks/useproductimageoperations.ts","./src/components/product-import/steps/imageuploadstep/hooks/useproductimagesinit.ts","./src/components/product-import/steps/imageuploadstep/hooks/useurlimageupload.ts","./src/components/product-import/steps/matchcolumnsstep/matchcolumnsstep.tsx","./src/components/product-import/steps/matchcolumnsstep/types.ts","./src/components/product-import/steps/matchcolumnsstep/components/matchicon.tsx","./src/components/product-import/steps/matchcolumnsstep/components/templatecolumn.tsx","./src/components/product-import/steps/matchcolumnsstep/utils/findmatch.ts","./src/components/product-import/steps/matchcolumnsstep/utils/findunmatchedrequiredfields.ts","./src/components/product-import/steps/matchcolumnsstep/utils/getfieldoptions.ts","./src/components/product-import/steps/matchcolumnsstep/utils/getmatchedcolumns.ts","./src/components/product-import/steps/matchcolumnsstep/utils/normalizecheckboxvalue.ts","./src/components/product-import/steps/matchcolumnsstep/utils/normalizetabledata.ts","./src/components/product-import/steps/matchcolumnsstep/utils/setcolumn.ts","./src/components/product-import/steps/matchcolumnsstep/utils/setignorecolumn.ts","./src/components/product-import/steps/matchcolumnsstep/utils/setsubcolumn.ts","./src/components/product-import/steps/matchcolumnsstep/utils/uniqueentries.ts","./src/components/product-import/steps/selectheaderstep/selectheaderstep.tsx","./src/components/product-import/steps/selectheaderstep/components/selectheadertable.tsx","./src/components/product-import/steps/selectheaderstep/components/columns.tsx","./src/components/product-import/steps/selectsheetstep/selectsheetstep.tsx","./src/components/product-import/steps/uploadstep/uploadstep.tsx","./src/components/product-import/steps/uploadstep/components/dropzone.tsx","./src/components/product-import/steps/uploadstep/components/columns.tsx","./src/components/product-import/steps/uploadstep/utils/readfilesasync.ts","./src/components/product-import/steps/validationstep/index.tsx","./src/components/product-import/steps/validationstep/components/aisuggestionbadge.tsx","./src/components/product-import/steps/validationstep/components/copydownbanner.tsx","./src/components/product-import/steps/validationstep/components/floatingselectionbar.tsx","./src/components/product-import/steps/validationstep/components/initializingoverlay.tsx","./src/components/product-import/steps/validationstep/components/searchabletemplateselect.tsx","./src/components/product-import/steps/validationstep/components/suggestionbadges.tsx","./src/components/product-import/steps/validationstep/components/validationcontainer.tsx","./src/components/product-import/steps/validationstep/components/validationfooter.tsx","./src/components/product-import/steps/validationstep/components/validationtable.tsx","./src/components/product-import/steps/validationstep/components/validationtoolbar.tsx","./src/components/product-import/steps/validationstep/components/cells/checkboxcell.tsx","./src/components/product-import/steps/validationstep/components/cells/comboboxcell.tsx","./src/components/product-import/steps/validationstep/components/cells/inputcell.tsx","./src/components/product-import/steps/validationstep/components/cells/multiselectcell.tsx","./src/components/product-import/steps/validationstep/components/cells/multilineinput.tsx","./src/components/product-import/steps/validationstep/components/cells/selectcell.tsx","./src/components/product-import/steps/validationstep/contexts/aisuggestionscontext.tsx","./src/components/product-import/steps/validationstep/dialogs/aidebugdialog.tsx","./src/components/product-import/steps/validationstep/dialogs/aivalidationprogress.tsx","./src/components/product-import/steps/validationstep/dialogs/aivalidationresults.tsx","./src/components/product-import/steps/validationstep/dialogs/sanitycheckdialog.tsx","./src/components/product-import/steps/validationstep/hooks/useautoinlineaivalidation.ts","./src/components/product-import/steps/validationstep/hooks/usecopydownvalidation.ts","./src/components/product-import/steps/validationstep/hooks/usefieldoptions.ts","./src/components/product-import/steps/validationstep/hooks/useinlineaivalidation.ts","./src/components/product-import/steps/validationstep/hooks/useproductlines.ts","./src/components/product-import/steps/validationstep/hooks/usesanitycheck.ts","./src/components/product-import/steps/validationstep/hooks/usetemplatemanagement.ts","./src/components/product-import/steps/validationstep/hooks/useupcvalidation.ts","./src/components/product-import/steps/validationstep/hooks/usevalidationactions.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/index.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/useaiapi.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/useaiprogress.ts","./src/components/product-import/steps/validationstep/hooks/useaivalidation/useaitransform.ts","./src/components/product-import/steps/validationstep/store/selectors.ts","./src/components/product-import/steps/validationstep/store/types.ts","./src/components/product-import/steps/validationstep/store/validationstore.ts","./src/components/product-import/steps/validationstep/utils/aivalidationutils.ts","./src/components/product-import/steps/validationstep/utils/countryutils.ts","./src/components/product-import/steps/validationstep/utils/datamutations.ts","./src/components/product-import/steps/validationstep/utils/inlineaipayload.ts","./src/components/product-import/steps/validationstep/utils/priceutils.ts","./src/components/product-import/steps/validationstep/utils/upcutils.ts","./src/components/product-import/steps/validationstepold/index.tsx","./src/components/product-import/steps/validationstepold/types.ts","./src/components/product-import/steps/validationstepold/components/aivalidationdialogs.tsx","./src/components/product-import/steps/validationstepold/components/basecellcontent.tsx","./src/components/product-import/steps/validationstepold/components/initializingvalidation.tsx","./src/components/product-import/steps/validationstepold/components/searchabletemplateselect.tsx","./src/components/product-import/steps/validationstepold/components/upcvalidationtableadapter.tsx","./src/components/product-import/steps/validationstepold/components/validationcell.tsx","./src/components/product-import/steps/validationstepold/components/validationcontainer.tsx","./src/components/product-import/steps/validationstepold/components/validationtable.tsx","./src/components/product-import/steps/validationstepold/components/cells/checkboxcell.tsx","./src/components/product-import/steps/validationstepold/components/cells/inputcell.tsx","./src/components/product-import/steps/validationstepold/components/cells/multiselectcell.tsx","./src/components/product-import/steps/validationstepold/components/cells/multilineinput.tsx","./src/components/product-import/steps/validationstepold/components/cells/selectcell.tsx","./src/components/product-import/steps/validationstepold/hooks/useaivalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usefieldvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usefiltermanagement.tsx","./src/components/product-import/steps/validationstepold/hooks/useinitialvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/useproductlinesfetching.tsx","./src/components/product-import/steps/validationstepold/hooks/userowoperations.tsx","./src/components/product-import/steps/validationstepold/hooks/usetemplatemanagement.tsx","./src/components/product-import/steps/validationstepold/hooks/useuniqueitemnumbersvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/useuniquevalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/useupcvalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usevalidation.tsx","./src/components/product-import/steps/validationstepold/hooks/usevalidationstate.tsx","./src/components/product-import/steps/validationstepold/hooks/validationtypes.ts","./src/components/product-import/steps/validationstepold/types/index.ts","./src/components/product-import/steps/validationstepold/utils/aivalidationutils.ts","./src/components/product-import/steps/validationstepold/utils/countryutils.ts","./src/components/product-import/steps/validationstepold/utils/datamutations.ts","./src/components/product-import/steps/validationstepold/utils/priceutils.ts","./src/components/product-import/steps/validationstepold/utils/upcutils.ts","./src/components/product-import/utils/exceedsmaxrecords.ts","./src/components/product-import/utils/mapdata.ts","./src/components/product-import/utils/mapworkbook.ts","./src/components/product-import/utils/steps.ts","./src/components/products/productdetail.tsx","./src/components/products/productfilters.tsx","./src/components/products/producttable.tsx","./src/components/products/producttableskeleton.tsx","./src/components/products/productviews.tsx","./src/components/products/products.tsx","./src/components/purchase-orders/categorymetricscard.tsx","./src/components/purchase-orders/filtercontrols.tsx","./src/components/purchase-orders/ordermetricscard.tsx","./src/components/purchase-orders/paginationcontrols.tsx","./src/components/purchase-orders/purchaseorderaccordion.tsx","./src/components/purchase-orders/purchaseorderstable.tsx","./src/components/purchase-orders/vendormetricscard.tsx","./src/components/settings/datamanagement.tsx","./src/components/settings/globalsettings.tsx","./src/components/settings/permissionselector.tsx","./src/components/settings/productsettings.tsx","./src/components/settings/promptmanagement.tsx","./src/components/settings/reusableimagemanagement.tsx","./src/components/settings/templatemanagement.tsx","./src/components/settings/userform.tsx","./src/components/settings/userlist.tsx","./src/components/settings/usermanagement.tsx","./src/components/settings/vendorsettings.tsx","./src/components/templates/searchproducttemplatedialog.tsx","./src/components/templates/templateform.tsx","./src/components/ui/accordion.tsx","./src/components/ui/alert-dialog.tsx","./src/components/ui/alert.tsx","./src/components/ui/avatar.tsx","./src/components/ui/badge.tsx","./src/components/ui/button.tsx","./src/components/ui/calendar.tsx","./src/components/ui/card.tsx","./src/components/ui/carousel.tsx","./src/components/ui/checkbox.tsx","./src/components/ui/code.tsx","./src/components/ui/collapsible.tsx","./src/components/ui/command.tsx","./src/components/ui/date-range-picker-narrow.tsx","./src/components/ui/date-range-picker.tsx","./src/components/ui/dialog.tsx","./src/components/ui/drawer.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/ui/form.tsx","./src/components/ui/input.tsx","./src/components/ui/label.tsx","./src/components/ui/page-loading.tsx","./src/components/ui/pagination.tsx","./src/components/ui/popover.tsx","./src/components/ui/progress.tsx","./src/components/ui/radio-group.tsx","./src/components/ui/scroll-area.tsx","./src/components/ui/select.tsx","./src/components/ui/separator.tsx","./src/components/ui/sheet.tsx","./src/components/ui/sidebar.tsx","./src/components/ui/skeleton.tsx","./src/components/ui/sonner.tsx","./src/components/ui/switch.tsx","./src/components/ui/table.tsx","./src/components/ui/tabs.tsx","./src/components/ui/textarea.tsx","./src/components/ui/toast.tsx","./src/components/ui/toaster.tsx","./src/components/ui/toggle-group.tsx","./src/components/ui/toggle.tsx","./src/components/ui/tooltip.tsx","./src/config/dashboard.ts","./src/contexts/authcontext.tsx","./src/contexts/dashboardscrollcontext.tsx","./src/contexts/importsessioncontext.tsx","./src/hooks/use-mobile.tsx","./src/hooks/use-toast.ts","./src/hooks/usedebounce.ts","./src/hooks/useimportautosave.ts","./src/lib/utils.ts","./src/lib/dashboard/chartconfig.ts","./src/lib/dashboard/designtokens.ts","./src/pages/analytics.tsx","./src/pages/blackfridaydashboard.tsx","./src/pages/brands.tsx","./src/pages/categories.tsx","./src/pages/chat.tsx","./src/pages/dashboard.tsx","./src/pages/discountsimulator.tsx","./src/pages/forecasting.tsx","./src/pages/htslookup.tsx","./src/pages/import.tsx","./src/pages/login.tsx","./src/pages/overview.tsx","./src/pages/producteditor.tsx","./src/pages/products.tsx","./src/pages/purchaseorders.tsx","./src/pages/settings.tsx","./src/pages/smalldashboard.tsx","./src/pages/vendors.tsx","./src/services/apiv2.ts","./src/services/importsessionapi.ts","./src/services/producteditor.ts","./src/types/dashboard-shims.d.ts","./src/types/dashboard.d.ts","./src/types/discount-simulator.ts","./src/types/globals.d.ts","./src/types/importsession.ts","./src/types/products.ts","./src/types/react-data-grid.d.ts","./src/types/status-codes.ts","./src/utils/emojiutils.ts","./src/utils/naturallanguageperiod.ts","./src/utils/productutils.ts"],"version":"5.6.3"} \ No newline at end of file