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