Talon.One Catalogs API

Represents a catalog of cart items with unique SKUs. Cart item catalogs allow you to synchronize your entire inventory with Talon.One. See the [docs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs).

Operations 5

POST /v1/best_prior_price Fetch best prior price #
PUT /v1/catalogs/{catalogId}/sync Sync cart item catalog #
POST /v1/applications/{applicationId}/price_history Get summary of price history #
POST /v1/applications/{applicationId}/price_history/exclusions Exclude price records from price history #
GET /v1/catalogs/{catalogId}/items List items in a catalog #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/talon-one-catalogs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

talon-one-catalogs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Talon One Catalogs API
  version: ''
  description: 'Operations tagged Catalogs across 2 of this provider''s published API definitions: talon-one-integration-api-openapi.yml, talon-one-management-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://yourbaseurl.talon.one
tags:
- name: Catalogs
  description: 'Represents a catalog of cart items with unique SKUs. Cart item catalogs allow you to synchronize your entire inventory with Talon.One.


    See the [docs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs).

    '
paths:
  /v1/best_prior_price:
    post:
      operationId: bestPriorPrice
      summary: Fetch best prior price
      x-scalar-stability: experimental
      description: 'Returns the best prior price based on historical pricing data for the specified SKUs within a defined timeframe.

        '
      tags:
      - Catalogs
      requestBody:
        $ref: '#/components/requestBodies/BestPriorPrice'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BestPriorPriceResponse'
      security:
      - api_key_v1: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/catalogs/{catalogId}/sync:
    put:
      operationId: syncCatalog
      summary: Sync cart item catalog
      description: "Perform the following actions for a given cart item catalog:\n\n- Add an item to the catalog.\n- Add multiple items to the catalog.\n- Update the attributes of an item in the catalog.\n- Update the attributes of multiple items in the catalog.\n- Remove an item from the catalog.\n- Remove multiple items from the catalog.\n\nYou can either add, update, or delete up to 1000 cart items in a single\nrequest. Each item synced to a catalog must have a unique `SKU`.\n\n> [!important] You can perform only one type of action in a single sync\nrequest. Syncing items with duplicate `SKU` values in a single request\nreturns an error message with a `400` status code.\n\nFor more information, read [managing cart item\ncatalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs).\n\n### Filtering cart items\n\nUse [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes)\nto filter items and select the ones you want to edit or delete when editing\nor deleting more than one item at a time.\n\nThe `filters` array contains an object with the following properties:\n\n- `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes)\n  connected to the catalog. It is applied to all items in the catalog.\n- `op`: The filtering operator indicating the relationship between the value\n  of each cart item in the catalog and the value of the `value` property for the attribute selected\n  in `attr`.\n\n  The value of `op` can be one of the following:\n\n  - `EQ`: Equal to `value`\n  - `LT`: Less than `value`\n  - `LE`: Less than or equal to `value`\n  - `GT`: Greater than `value`\n  - `GE`: Greater than or equal to `value`\n  - `IN`: One of the comma-separated values that `value` is set to.\n\n  **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only.\n- `value`: The value of the attribute selected in `attr`.\n\n### Payload examples\n\nSynchronization actions are sent as `PUT` requests. See the structure for\neach action:\n\n<details>\n  <summary><strong>Adding an item to the catalog</strong></summary>\n  <div>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"attributes\": {\n            \"color\": \"Navy blue\",\n            \"type\": \"shoes\"\n          },\n          \"replaceIfExists\": true,\n          \"sku\": \"SKU1241028\",\n          \"price\": 100,\n          \"product\": {\n            \"name\": \"sneakers\"\n          }\n        },\n        \"type\": \"ADD\"\n      }\n    ]\n  }\n  ```\n  </div>\n</details>\n\n<details>\n  <summary><strong>Adding multiple items to the catalog</strong></summary>\n  <div>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"attributes\": {\n            \"color\": \"Navy blue\",\n            \"type\": \"shoes\"\n          },\n          \"replaceIfExists\": true,\n          \"sku\": \"SKU1241027\",\n          \"price\": 100,\n          \"product\": {\n            \"name\": \"sneakers\"\n          }\n        },\n        \"type\": \"ADD\"\n      },\n      {\n        \"payload\": {\n          \"attributes\": {\n            \"color\": \"Navy blue\",\n            \"type\": \"shoes\"\n          },\n          \"replaceIfExists\": true,\n          \"sku\": \"SKU1241028\",\n          \"price\": 100,\n          \"product\": {\n            \"name\": \"sneakers\"\n          }\n        },\n        \"type\": \"ADD\"\n      }\n    ]\n  }\n  ```\n  </div>\n</details>\n\n<details>\n  <summary><strong>Updating the attributes of an item in the catalog</strong></summary>\n  <div>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"attributes\": {\n            \"age\": 11,\n            \"origin\": \"germany\"\n          },\n          \"createIfNotExists\": false,\n          \"sku\": \"SKU1241028\",\n          \"product\": {\n            \"name\": \"sneakers\"\n          }\n        },\n        \"type\": \"PATCH\"\n      }\n    ]\n  }\n  ```\n  </div>\n</details>\n\n<details>\n  <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary>\n  <div>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"attributes\": {\n            \"color\": \"red\"\n          },\n          \"filters\": [\n            {\n              \"attr\": \"color\",\n              \"op\": \"EQ\",\n              \"value\": \"blue\"\n            }\n          ]\n        },\n        \"type\": \"PATCH_MANY\"\n      }\n    ]\n  }\n  ```\n\n  </div>\n</details>\n\n<details>\n  <summary><strong>Removing an item from the catalog</strong></summary>\n  <div>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"sku\": \"SKU1241028\"\n        },\n        \"type\": \"REMOVE\"\n      }\n    ]\n  }\n  ```\n\n  </div>\n</details>\n\n<details>\n  <summary><strong>Removing multiple items from the catalog</strong></summary>\n  <div>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"filters\": [\n            {\n              \"attr\": \"color\",\n              \"op\": \"EQ\",\n              \"value\": \"blue\"\n            }\n          ]\n        },\n        \"type\": \"REMOVE_MANY\"\n      }\n    ]\n  }\n  ```\n  </div>\n</details>\n\n<details>\n  <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary>\n  <div>\n  <p>\n  Let's imagine that we have a shoe store and we have decided to stop selling\n  shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45\n  with a single action:</p>\n\n  ```json\n  {\n    \"actions\": [\n      {\n        \"payload\": {\n          \"filters\": [\n            {\n              \"attr\": \"size\",\n              \"op\": \"GT\",\n              \"value\": \"45\"\n            }\n          ]\n        },\n        \"type\": \"REMOVE_MANY\"\n      }\n    ]\n  }\n  ```\n  </div>\n</details>\n"
      tags:
      - Catalogs
      security:
      - api_key_v1: []
      parameters:
      - name: catalogId
        description: The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**.
        example: 30
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogSyncRequest'
        description: body
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catalog'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseWithStatus'
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/price_history:
    post:
      operationId: priceHistory
      summary: Get summary of price history
      x-scalar-stability: experimental
      description: '> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.


        Fetch the historical price data for a given SKU within a defined timeframe.

        '
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/applicationId'
      requestBody:
        $ref: '#/components/requestBodies/PriceHistory'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceHistoryResponse'
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/applications/{applicationId}/price_history/exclusions:
    post:
      operationId: excludePriceHistory
      summary: Exclude price records from price history
      x-scalar-stability: experimental
      description: '> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.


        Select a batch of historical price IDs to exclude from [best prior price calculation](https://docs.talon.one/integration-api#tag/Catalogs/operation/bestPriorPrice). All IDs in the batch must be valid `id` values obtained from the [Get summary of price history](https://docs.talon.one/management-api#tag/Catalogs/operation/priceHistory.responses.200.history) endpoint, must belong to the specified Application, must not already be excluded from best prior price calculation, and must not be associated with a scheduled strikethrough pricing notification.

        '
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/applicationId'
      requestBody:
        $ref: '#/components/requestBodies/ExcludePriceObservations'
      responses:
        '200':
          description: Ok
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
  /v1/catalogs/{catalogId}/items:
    get:
      operationId: listCatalogItems
      summary: List items in a catalog
      description: '> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.


        Return a paginated list of cart items in the given catalog.

        '
      tags:
      - Catalogs
      parameters:
      - name: catalogId
        description: The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**.
        example: 30
        in: path
        required: true
        schema:
          type: integer
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/skip'
      - name: withTotalResultSize
        in: query
        description: 'When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.


          - When `true`: `totalResultSize` contains the total number of results for this query.

          - When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.

          '
        example: false
        schema:
          type: boolean
      - name: sku
        in: query
        description: Filter results by one or more SKUs. Must be exact match.
        example:
        - SKU-1
        - SKU-2
        style: form
        schema:
          type: array
          items:
            type: string
      - name: productNames
        in: query
        description: Filter results by one or more product names. Must be exact match.
        example:
        - product1
        - product2
        style: form
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  hasMore:
                    type: boolean
                  totalResultSize:
                    type: integer
                    example: 1
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CatalogItem'
      security:
      - manager_auth: []
      - management_key: []
    servers:
    - url: https://yourbaseurl.talon.one
components:
  schemas:
    RemoveItemCatalogAction:
      type: object
      description: The specific properties of the "REMOVE" catalog sync action.
      required:
      - sku
      properties:
        sku:
          type: string
          description: The unique SKU of the item to remove.
    ErrorResponse:
      type: object
      required:
      - message
      properties:
        message:
          type: string
          description: A message describing the error.
        errors:
          type: array
          description: An array of individual problems encountered during the request.
          items:
            $ref: '#/components/schemas/APIError'
    AccountEntity:
      type: object
      required:
      - accountId
      properties:
        accountId:
          type: integer
          description: The ID of the account that owns this entity.
          example: 3886
    PatchItemCatalogAction:
      type: object
      description: "The specific properties of the \"PATCH\" catalog sync action.\n\n**Note:**\n  - If you do not provide a new `price` value, the existing `price` value is retained.\n  - If you do not provide a new `product` value, the `product` value is set to `null`.\n"
      required:
      - sku
      properties:
        sku:
          type: string
          description: The unique SKU of the item to patch.
        price:
          type: number
          description: Price of the item.
          example: 99.99
        attributes:
          type: object
          description: The attributes of the item to patch.
        product:
          $ref: '#/components/schemas/Product'
        createIfNotExists:
          type: boolean
          default: false
          description: Indicates whether to create an item if the SKU does not exist.
    Entity:
      type: object
      required:
      - id
      - created
      properties:
        id:
          type: integer
          description: The internal ID of this entity.
          example: 6
        created:
          type: string
          format: date-time
          description: The time this entity was created.
          example: '2020-06-10T09:05:27.993483Z'
    NewPriceAdjustment:
      type: object
      required:
      - priceType
      - referenceId
      properties:
        priceType:
          type: string
          description: The price type (e.g. the price for members only) to apply to a given SKU.
          example: member
        price:
          type:
          - number
          - 'null'
          description: The value of the price type applied to the SKU. When set to `null`, the defined price type no longer applies to the SKU.
          example: 100
        referenceId:
          type: string
          description: A unique reference identifier, e.g. a UUID.
          example: 68851723-e6fa-488f-ace9-112581e6c19b
          minLength: 1
        calculatedAt:
          type: string
          format: date-time
          description: The time at which this price was calculated. If provided, this is used to determine the most recent price adjustment to choose if price adjustments overlap. Defaults to internal creation time if not provided.
          example: '2021-09-12T10:12:42Z'
        effectiveFrom:
          type: string
          format: date-time
          description: The date and time from which the price adjustment is effective.
          example: '2021-09-12T10:12:42Z'
        effectiveUntil:
          type: string
          format: date-time
          description: The date and time until which the price adjustment is effective.
          example: '2021-09-12T10:12:42Z'
        contextId:
          type: string
          description: Identifier of the context of this price adjustment (e.g. summer sale).
          example: Summer2025
    CatalogSyncRequest:
      type: object
      required:
      - actions
      properties:
        actions:
          type: array
          maxItems: 1000
          minItems: 1
          items:
            $ref: '#/components/schemas/CatalogAction'
        version:
          type: integer
          minimum: 1
          description: The version number of the catalog to apply the actions on.
          example: 244
    AudienceReference:
      allOf:
      - type: object
        required:
        - id
        properties:
          id:
            type: integer
            description: The ID of the audience.
          integration:
            type: string
            description: The third-party integration of the audience.
      - $ref: '#/components/schemas/AudienceIntegrationID'
    MutableEntity:
      type: object
      required:
      - modified
      properties:
        modified:
          type: string
          format: date-time
          description: The time this entity was last modified.
          example: '2021-09-12T10:12:42Z'
    CatalogAction:
      type: object
      description: Definition of all the properties that are needed for a single catalog sync action.
      required:
      - type
      - payload
      oneOf:
      - properties:
          type:
            const: ADD
            description: The type of sync action.
          payload:
            $ref: '#/components/schemas/AddItemCatalogAction'
            description: The payload of sync action.
        required:
        - type
        - payload
        example:
          type: ADD
          payload:
            sku: T123
            attributes:
              type: shoes
              color: blue
            replaceIfExists: true
      - properties:
          type:
            const: PATCH
          payload:
            $ref: '#/components/schemas/PatchItemCatalogAction'
        required:
        - type
        - payload
      - properties:
          type:
            const: PATCH_MANY
          payload:
            $ref: '#/components/schemas/PatchManyItemsCatalogAction'
        required:
        - type
        - payload
      - properties:
          type:
            const: REMOVE
          payload:
            $ref: '#/components/schemas/RemoveItemCatalogAction'
        required:
        - type
        - payload
      - properties:
          type:
            const: REMOVE_MANY
          payload:
            $ref: '#/components/schemas/RemoveManyItemsCatalogAction'
        required:
        - type
        - payload
      - properties:
          type:
            const: ADD_PRICE_ADJUSTMENT
          payload:
            $ref: '#/components/schemas/AddPriceAdjustmentCatalogAction'
        required:
        - type
        - payload
    PatchManyItemsCatalogAction:
      type: object
      description: The specific properties of the "PATCH_MANY" catalog sync action.
      properties:
        price:
          type: number
          description: Price of the item.
          example: 99.99
        filters:
          type: array
          items:
            $ref: '#/components/schemas/CatalogActionFilter'
          description: 'The list of filters used to select the items to patch, joined by `AND`.


            **Note:** Every item in the catalog will be modified if there are no filters.

            '
        attributes:
          type: object
          description: The attributes of the items to patch.
    BestPriorPrice:
      type: object
      required:
      - id
      - sku
      - observedAt
      - price
      - contextIds
      - metadata
      - target
      properties:
        id:
          type: integer
          description: The ID of the historical price.
          example: 1
        sku:
          type: string
          description: sku
          example: SKU7345278
        observedAt:
          type: string
          format: date-time
          description: The date and time when the price was observed.
          example: '2025-11-10T23:00:00Z'
        contextIds:
          type: array
          items:
            type: string
          description: 'The identifiers of the relevant context at the time the price was observed. Includes the context IDs of any price adjustments and of the campaigns that influenced the final price.

            '
          example:
          - SpringSale
          - SummerSale2025
        contextId:
          type: string
          deprecated: true
          default: ''
          description: 'This property is **deprecated**. Use `contextIds` instead. Defaults to an empty string.

            '
          example: ''
        price:
          type: number
          description: Price of the item.
          example: 99.99
        metadata:
          $ref: '#/components/schemas/BestPriorPriceMetadata'
        target:
          $ref: '#/components/schemas/LabelTarget'
    BestPriorPriceMetadata:
      type: object
      description: Auxiliary data for found price observation.
      properties:
        influencingCampaignDetails:
          type: array
          description: Details about campaigns that influenced the final price.
          items:
            $ref: '#/components/schemas/InfluencingCampaignDetails'
        adjustmentDetails:
          $ref: '#/components/schemas/AdjustmentDetails'
          type: object
          description: Details about the applied price adjustment.
      required:
      - influencingCampaignDetails
    RemoveManyItemsCatalogAction:
      type: object
      description: The specific properties of the "REMOVE_MANY" catalog sync action.
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/CatalogActionFilter'
          description: 'The list of filters used to select the items to patch, joined by `AND`.


            **Note:** Every item in the catalog will be removed if there are no filters.

            '
    Catalog:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - $ref: '#/components/schemas/AccountEntity'
      - $ref: '#/components/schemas/MutableEntity'
      - $ref: '#/components/schemas/NewCatalog'
      - type: object
        required:
        - version
        - createdBy
        properties:
          version:
            type: integer
            description: The current version of this catalog.
            example: 6
          createdBy:
            type: integer
            description: The ID of user who created this catalog.
            example: 6
    ErrorResponseWithStatus:
      type: object
      properties:
        message:
          type: string
        errors:
          type: array
          description: An array of individual problems encountered during the request.
          items:
            $ref: '#/components/schemas/APIError'
        StatusCode:
          type: integer
          description: The error code
    AudienceIntegrationID:
      type: object
      properties:
        integrationId:
          type: string
          minLength: 1
          maxLength: 1000
          description: The ID of this audience in the third-party integration.
          example: 382370BKDB946
    LabelTargetNone:
      type: object
      description: Represents the target type when no entity is selected.
      properties:
        type:
          type: string
          enum:
          - NONE
      required:
      - type
    CatalogActionFilter:
      type: object
      description: The properties for a single filtering condition in a catalog sync action.
      required:
      - attr
      - op
      - value
      properties:
        attr:
          description: The name of the attribute to filter on.
          type: string
        op:
          description: The filtering operator.
          type: string
          enum:
          - EQ
          - LT
          - LE
          - GT
          - GE
          - IN
        value:
          description: The value to filter for.
    BestPriorPriceRequest:
      type: object
      required:
      - skus
      - timeframeEndDate
      - timeframe
      - timeframeEndDateType
      properties:
        skus:
          type: array
          minItems: 1
          description: List of product SKUs to check when determining the best prior price.
          items:
            type: string
          example:
          - SKU1241028
          - SKU7345278
        timeframeEndDate:
          type: string
          format: date-time
          description: The end date and time that defines the latest time for retrieving historical SKU prices.
          example: '2020-11-10T23:00:00Z'
        timeframe:
          type: string
          description: The number of days prior to the timeframeEndDate. Only prices within this look back period are considered for the best prior price evaluation.
          example: '30'
        timeframeEndDateType:
          type: string
          enum:
          - strict
          - price
          - sale
          description: 'Sets the timeframe for retrieving historical pricing data. Can be one of the following values:

            - `strict`: The timeframe ends at the `timeframeEndDate` value.

            - `price`: The timeframe ends at the start of current price value and takes the prices prior to the start of the current price value into account.

            - `sale`:  The timeframe ends at the start of current `contextId` and takes the prices prior to the start of the `contextId` into account.

            '
          example: sale
        target:
          $ref: '#/components/schemas/BestPriorTarget'
    LabelTarget:
      type: object
      oneOf:
      - $ref: '#/components/schemas/LabelTargetNone'
      - $ref: '#/components/schemas/LabelTargetAudience'
    NewCatalog:
      allOf:
      - type: object
        required:
        - name
        - description
        properties:
          name:
            type: string
            description: The cart item catalog name.
            example: seafood
          description:
            type: string
            description: A description of this cart item catalog.
            example: seafood catalog
          subscribedApplicationsIds:
            type: array
            description: A list of the IDs of the applications that are subscribed to this catalog.
            example:
            - 1
            - 2
            - 3
            items:
              type: integer
    AddItemCatalogAction:
      type: object
      description: 'The specific properties of the "ADD" catalog sync action.

        '
      required:
      - sku
      properties:
        sku:
          type: string
          description: The unique SKU of the item to add.
          example: SKU1241028
        price:
          type: number
          description: Price of the item.
          example: 99.99
        attributes:
          type: object
          description: The attributes of the item to add.
          example:
            origin: germany
            color: blue
        product:
          $ref: '#/components/schemas/Product'
        replaceIfExists:
          type: boolean
          default: false
          description: "Indicates whether to replace the attributes of the item if the same SKU exists.\n\n**Note**: When set to `true`:\n  - If you do not provide a new `price` value, the existing `price` value is retained.\n  - If you do not provide a new `product` value, the `product` value is set to `null`.\n"
          example: false
    ErrorSource:
      type: object
      description: 'The source of the current error, exactly one of `pointer`, `parameter` or `line` will be defined.

        '
      properties:
        pointer:
          type: string
          description: Pointer to the path in the payload that caused this error.
        parameter:
          type: string
          description: Query parameter that caused this error.
        line:
          type: string
          description: Line number in uploaded multipart file that caused this error. 'N/A' if unknown.
        resource:
          type: string
          description: Pointer to the resource that caused this error.
    InfluencingCampaignDetails:
      type: object
      description: Details about a campaign that influenced the final price.
      properties:
        campaignId:
          type: integer
          description: Identifier of the campaign that influenced the final price.
        discountValue:
          type: number
          description: Discount value applied by the campaign.
      required:
      - campaignId
      - discountValue
    AddPriceAdjustmentCatalogAction:
      type: object
      description: "The specific properties of the \"ADD_PRICE_ADJUSTMENT\" catalog sync action.\n      \n**Note:** You can only use this object if the `Beta` **price types** feature is enabled for your Application.\nTo enable it, contact your Technical Account Manager.\n"
      required:
      - sku
      - adjustments
      properties:
        sku:
          type: string
          description: The SKU of the item for which the price is being adjusted.
          example: SKU1241028
        adjustments:
          type: array
          description: A list of adjustments to apply to a given item.
          items:
            $ref: '#/components/schemas/NewPriceAdjustment'
            minItems: 1
            maxItems: 100
    BestPriorPriceResponse:
      type: array
      items:
        $ref: '#/components/schemas/BestPriorPrice'
    APIError:
      type: object
      required:
      - source
      - title
      properties:
        title:
          type: string
          description: Short description of the problem.
        details:
          type: string
          description: Longer description of this specific instance of the problem.
        source:
          $ref: '#/components/schemas/ErrorSource'
    Product:
      type: object
      description: The specific properties of the product this item belongs to, if available.
      required:
      - name
      properties:
        name:
          type: string
          description: The product the item belongs to.
          example: sample_product
    AdjustmentDetails:
      type: object
      description: Details about an applied price adjustment.
      properties:
        referenceId:
          type: string
          description: The reference identifier used during an `ADD_PRICE_ADJUSTMENT` action.
          example: 68851723-e6fa-488f-ace9-112581e6c19b
        selectedPriceType:
          type: string
          description: The selected price type for the SKU targeted by this effect.
          example: member
        value:
          type: number
          description: The value of the applied price adjustment.
      required:
      - referenceId
      - selectedPriceType
      - value
    LabelTargetAudience:
      type: object
      description: 'Represents the targeted audience.

        '
      properties:
        type:
          type: string
          enum:
          - AUDIENCE
        audience:
          $ref: '#/components/schemas/AudienceReference'
      required:
      - type
      - audience
    BestPriorTarget:
      type: object
      required:
      - targetType
      description: Specifies the target for which the best prior price calculation is taken into consideration.
      properties:
        targetType:
          type: string
      

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