{ "openapi": "3.0.2", "info": { "title": "Klaviyo 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": [] } ], "paths": { "/api/catalog-item-bulk-update-jobs/{job_id}": { "get": { "operationId": "get_bulk_update_catalog_items_job", "summary": "Get Bulk Update Catalog Items Job", "description": "Get a catalog item bulk update job with the given job ID.\n\nAn `include` parameter can be provided to get the following related resource data: `items`.

*Rate limits*:
Burst: `350/s`
Steady: `3500/m`\n\n**Scopes:**\n`catalogs:read`\n\n[OpenAPI Spec](https://raw.githubusercontent.com/klaviyo/openapi/main/openapi/stable/apis/get_bulk_update_catalog_items_job.json)", "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", "id", "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", "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" } } }, "components": { "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" ] } } } } }, "schemas": { "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" ] }, "CatalogItemBulkUpdateJobEnum": { "type": "string", "enum": [ "catalog-item-bulk-update-job" ] }, "CatalogItemEnum": { "type": "string", "enum": [ "catalog-item" ] }, "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" ] }, "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" ] }, "CatalogVariantEnum": { "type": "string", "enum": [ "catalog-variant" ] }, "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 } } }, "GetCatalogItemUpdateJobResponseCompoundDocument": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CatalogItemUpdateJobResponseObjectResource" }, "included": { "type": "array", "items": { "$ref": "#/components/schemas/CatalogItemResponseObjectResource" } }, "links": { "$ref": "#/components/schemas/ObjectLinks" } }, "required": [ "data" ] }, "ObjectLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" } }, "required": [ "self" ] }, "RelationshipLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" }, "related": { "type": "string", "format": "uri" } }, "required": [ "self", "related" ] } }, "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" } } }, "tags": [ { "name": "Catalogs", "description": "catalogs" } ] }