openapi: 3.0.2 info: title: Klaviyo Accounts Catalogs API version: '2026-04-15' description: The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details. contact: name: Klaviyo Developer Experience Team email: developers@klaviyo.com url: https://developers.klaviyo.com termsOfService: https://www.klaviyo.com/legal/api-terms license: name: License url: https://www.klaviyo.com/legal servers: - url: https://a.klaviyo.com description: Production security: - Klaviyo-API-Key: [] tags: - name: Catalogs description: catalogs paths: /api/catalog-items: get: operationId: get_catalog_items summary: Get Catalog Items description: 'Get all catalog items in an account. Catalog items can be sorted by the following fields, in ascending and descending order: `created` Currently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`. Returns a maximum of 100 items per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-item] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - price - published - title - updated - url explode: false - name: fields[catalog-variant] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - price - published - title - updated - url explode: false - name: fields[catalog-variant] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - variants explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/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. Variants can be sorted by the following fields, in ascending and descending order: `created` Currently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`. Returns a maximum of 100 variants per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-variant] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/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. Catalog categories can be sorted by the following fields, in ascending and descending order: `created` Currently, the only supported integration type is `$custom`, and the only supported catalog type is `$default`. Returns a maximum of 100 categories per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-category] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - external_id - name - updated explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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` **Scopes:** `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-04-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-04-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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-item-bulk-create-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog items per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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. An `include` parameter can be provided to get the following related resource data: `items`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: fields[catalog-item] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - price - published - title - updated - url explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - items explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-item-bulk-update-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog items per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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. An `include` parameter can be provided to get the following related resource data: `items`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: fields[catalog-item] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - price - published - title - updated - url explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - items explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-item-bulk-delete-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog items per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-variant-bulk-create-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog variants per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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. An `include` parameter can be provided to get the following related resource data: `variants`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: fields[catalog-variant] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - variants explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-variant-bulk-update-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog variants per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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. An `include` parameter can be provided to get the following related resource data: `variants`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: fields[catalog-variant] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - variants explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-variant-bulk-delete-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog variants per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-category-bulk-create-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog categories per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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. An `include` parameter can be provided to get the following related resource data: `categories`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: fields[catalog-category] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - external_id - name - updated explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - categories explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-category-bulk-update-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog categories per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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. An `include` parameter can be provided to get the following related resource data: `categories`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: fields[catalog-category] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - external_id - name - updated explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - categories explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Returns a maximum of 100 jobs per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `catalogs:read`' parameters: - name: fields[catalog-category-bulk-delete-job] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-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. Accepts up to 100 catalog categories per request. The maximum allowed payload size is 5MB. The maximum number of jobs in progress at one time is 500.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `catalogs:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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: 750/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` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - completed_at - completed_count - created_at - errors - expires_at - failed_count - status - total_count explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. This 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` **Scopes:** `catalogs:write` `profiles:write`' parameters: - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: 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. Items can be sorted by the following fields, in ascending and descending order: `created` Returns a maximum of 100 items per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - price - published - title - updated - url explode: false - name: fields[catalog-variant] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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` **Scopes:** `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-04-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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/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. Variants can be sorted by the following fields, in ascending and descending order: `created` Returns a maximum of 100 variants per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - created - custom_metadata - description - external_id - image_full_url - image_thumbnail_url - images - inventory_policy - inventory_quantity - price - published - sku - title - updated - url explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Variants can be sorted by the following fields, in ascending and descending order: `created` Returns a maximum of 100 variants per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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. Catalog categories can be sorted by the following fields, in ascending and descending order: `created` Returns a maximum of 100 categories per request.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m` **Scopes:** `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-04-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-04-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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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` **Scopes:** `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-04-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-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 100. Min: 1. Max: 100.' required: false schema: type: integer default: 100 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/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: `750/m` **Scopes:** `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-04-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: 750/m x-klaviyo-scopes: - catalogs:write x-klaviyo-subtag: Items components: schemas: 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 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 GetCatalogVariantCreateJobResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogVariantCreateJobResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogVariantResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CatalogVariantBulkCreateJobEnum: type: string enum: - catalog-variant-bulk-create-job 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 CatalogItemUpdateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogItemUpdateQueryResourceObject' required: - data ServerBISSubscriptionCreateQuery: type: object properties: data: $ref: '#/components/schemas/ServerBISSubscriptionCreateQueryResourceObject' 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 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 GetCatalogItemCreateJobResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogItemCreateJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' 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 ProfileEnum: type: string enum: - profile 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 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 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: `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock. `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 GetCatalogVariantUpdateJobResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogVariantUpdateJobResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogVariantResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CatalogCategoryBulkUpdateJobEnum: type: string enum: - catalog-category-bulk-update-job ObjectLinks: type: object properties: self: type: string format: uri required: - self GetCatalogVariantDeleteJobResponseCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogVariantDeleteJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data GetCatalogItemResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogItemResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogVariantResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CatalogVariantBulkUpdateJobEnum: type: string enum: - catalog-variant-bulk-update-job GetCatalogItemDeleteJobResponseCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogItemDeleteJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' 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 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: `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock. `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 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 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 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 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 CatalogVariantDeleteJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogVariantDeleteJobCreateQueryResourceObject' 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 CatalogItemBulkDeleteJobEnum: type: string enum: - catalog-item-bulk-delete-job CatalogCategoryUpdateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryUpdateQueryResourceObject' required: - data GetCatalogItemUpdateJobResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogItemUpdateJobResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogItemResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' 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 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 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 CatalogVariantCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogVariantCreateQueryResourceObject' 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 GetCatalogCategoryResponseCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogCategoryResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data GetCatalogItemUpdateJobResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogItemUpdateJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' 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 GetCatalogCategoryUpdateJobResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogCategoryUpdateJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data BackInStockSubscriptionEnum: type: string enum: - back-in-stock-subscription CatalogVariantUpdateJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogVariantUpdateJobCreateQueryResourceObject' required: - data 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 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 GetCatalogVariantDeleteJobResponse: type: object properties: data: $ref: '#/components/schemas/CatalogVariantDeleteJobResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data 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 GetCatalogItemResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogItemResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' included: type: array items: $ref: '#/components/schemas/CatalogVariantResponseObjectResource' required: - data GetCatalogCategoryDeleteJobResponse: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryDeleteJobResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' 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 RelationshipLinks: type: object properties: self: type: string format: uri related: type: string format: uri required: - self - related 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 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 CatalogVariantEnum: type: string enum: - catalog-variant 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 CatalogItemEnum: type: string enum: - catalog-item 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 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 CatalogItemBulkCreateJobEnum: type: string enum: - catalog-item-bulk-create-job CatalogCategoryEnum: type: string enum: - catalog-category CatalogItemBulkUpdateJobEnum: type: string enum: - catalog-item-bulk-update-job 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 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 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 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 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: `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock. `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 CatalogItemCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogItemCreateQueryResourceObject' required: - data 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 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 CatalogCategoryUpdateJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryUpdateJobCreateQueryResourceObject' required: - data GetCatalogCategoryCreateJobResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryCreateJobResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogCategoryResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data GetCatalogCategoryCreateJobResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogCategoryCreateJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data GetCatalogCategoryResponse: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data CatalogVariantBulkDeleteJobEnum: type: string enum: - catalog-variant-bulk-delete-job CatalogCategoryBulkDeleteJobEnum: type: string enum: - catalog-category-bulk-delete-job 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 GetCatalogVariantResponse: type: object properties: data: $ref: '#/components/schemas/CatalogVariantResponseObjectResource' 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 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 CatalogCategoryBulkCreateJobEnum: type: string enum: - catalog-category-bulk-create-job GetCatalogItemCreateJobResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogItemCreateJobResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogItemResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' 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 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: `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock. `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 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 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 CatalogVariantUpdateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogVariantUpdateQueryResourceObject' 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 GetCatalogVariantUpdateJobResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogVariantUpdateJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' 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 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 GetCatalogVariantResponseCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogVariantResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data CatalogItemCreateJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogItemCreateJobCreateQueryResourceObject' required: - data 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 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 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 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 GetCatalogCategoryUpdateJobResponseCompoundDocument: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryUpdateJobResponseObjectResource' included: type: array items: $ref: '#/components/schemas/CatalogCategoryResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data 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 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 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 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 CatalogCategoryCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryCreateQueryResourceObject' required: - data CatalogItemDeleteJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogItemDeleteJobCreateQueryResourceObject' required: - data 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 CatalogCategoryDeleteJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryDeleteJobCreateQueryResourceObject' required: - data 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 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 GetCatalogCategoryDeleteJobResponseCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogCategoryDeleteJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' required: - data CatalogCategoryCreateJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogCategoryCreateJobCreateQueryResourceObject' required: - data GetCatalogItemDeleteJobResponse: type: object properties: data: $ref: '#/components/schemas/CatalogItemDeleteJobResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data 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 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 CatalogItemUpdateJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogItemUpdateJobCreateQueryResourceObject' required: - data CatalogVariantCreateJobCreateQuery: type: object properties: data: $ref: '#/components/schemas/CatalogVariantCreateJobCreateQueryResourceObject' 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 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 GetCatalogVariantCreateJobResponseCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/CatalogVariantCreateJobResponseObjectResource' links: $ref: '#/components/schemas/CollectionLinks' 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: `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock. `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 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 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 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 responses: ClientError: description: Client Error content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object required: - id - code - title - detail properties: id: type: string code: type: string title: type: string detail: type: string source: type: object properties: pointer: type: string parameter: type: string required: - errors ServerError: description: Server Error content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object required: - id - code - title - detail properties: id: type: string code: type: string title: type: string detail: type: string source: type: object properties: pointer: type: string parameter: type: string required: - errors securitySchemes: Klaviyo-API-Key: type: apiKey in: header name: Authorization description: Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#authentication x-default: Klaviyo-API-Key your-private-api-key x-readme: explorer-enabled: false proxy-enabled: true samples-enabled: true