Klaviyo Catalogs API

catalogs

OpenAPI Specification

klaviyo-catalogs-api-openapi.yml Raw ↑
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.<br><br>*Rate limits*:<br>Burst: `350/s`<br>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<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`category.id`: `equals`<br>`title`: `contains`<br>`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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `350/s`<br>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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `350/s`<br>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<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`sku`: `equals`<br>`title`: `contains`<br>`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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `350/s`<br>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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `350/s`<br>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<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `350/s`<br>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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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.<br><br>*Rate limits*:<br>Burst: `75/s`<br>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
 

# --- truncated at 32 KB (277 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/openapi/klaviyo-catalogs-api-openapi.yml