Pinterest Batch API

The Batch API from Pinterest — 2 operation(s) for batch.

OpenAPI Specification

pinterest-batch-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 5.13.0
  title: Pinterest Batch API
  description: This is the description of your API.
  contact:
    name: Pinterest, Inc.
    url: https://developers.pinterest.com/
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://developers.pinterest.com/terms/
servers:
- url: https://api.pinterest.com/v5
tags:
- name: Batch
paths:
  /catalogs/items/batch:
    post:
      summary: Operate on item batch
      description: 'This endpoint supports multiple operations on a set of one or more catalog items owned by the "operation user_account". <a href="/docs/shopping/catalog/#Update%20items%20in%20batch" target="_blank">See detailed documentation here.</a>

        - By default, the "operation user_account" is the token user_account.


        Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href=''/docs/api/v5/#operation/ad_accounts/list''>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager.


        Note: The catalog type of Creative Assets is only allowed in the <a href=''https://api-sandbox.pinterest.com/v5''>Pinterest API Sandbox</a>.

        If access is required, please contact your partner manager.'
      operationId: items_batch/post
      x-ratelimit-category: catalogs_write
      x-sandbox: enabled
      security:
      - pinterest_oauth2:
        - catalogs:read
        - catalogs:write
      parameters:
      - $ref: '#/components/parameters/query_ad_account_id'
      requestBody:
        description: Request object used to create catalogs items in a batch
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CatalogsVerticalBatchRequest'
              - $ref: '#/components/schemas/CatalogsItemsBatchRequest'
      responses:
        '200':
          description: Response containing the requested catalogs items batch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogsItemsBatch'
        '400':
          description: Invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                InvalidRequest:
                  value:
                    code: 1
                    message: 'Invalid request: {''country'': ''US'', ''language'': ''EN'', ''operation'': ''CREATE'', ''items'': [{''item_id'': ''RAY_01_'', ''attributes'': {''image_link'': ''https://www.example.com/'', ''title'': ''My Product''}}]} (''https://www.example.com/'' is not of type array)'
        '401':
          description: Not authenticated to post catalogs items
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UnauthenticatedAccess:
                  value:
                    code: 2
                    message: Authentication failed.
        '403':
          description: Not authorized to post catalogs items
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Batch
  /catalogs/items/batch/{batch_id}:
    get:
      summary: Get catalogs item batch status
      description: 'Get a single catalogs items batch owned by the "operating user_account". <a href="/docs/shopping/catalog/#Update%20items%20in%20batch" target="_blank">See detailed documentation here.</a>

        - By default, the "operation user_account" is the token user_account.


        Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href=''/docs/api/v5/#operation/ad_accounts/list''>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager.'
      operationId: items_batch/get
      security:
      - pinterest_oauth2:
        - catalogs:read
      x-ratelimit-category: catalogs_read
      x-sandbox: enabled
      parameters:
      - $ref: '#/components/parameters/path_catalogs_items_batch_id'
      - $ref: '#/components/parameters/query_ad_account_id'
      responses:
        '200':
          description: Response containing the requested catalogs items batch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogsItemsBatch'
        '401':
          description: Not authenticated to access catalogs items batch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UnauthenticatedAccess:
                  value:
                    code: 2
                    message: Authentication failed.
        '403':
          description: Not authorized to access catalogs items batch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Catalogs items batch not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CannotFindBatch:
                  value:
                    code: 4331
                    message: Sorry! We could not find your batch ID.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                MethodNotAllowed:
                  value:
                    status: failure
                    code: 5
                    data: '405 Method Not Allowed: The method is not allowed for the requested URL.'
                    message: Method not allowed
                    endpoint_name: null
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Batch
components:
  schemas:
    CatalogsCreateCreativeAssetsItem:
      type: object
      description: A creative assets item to be created.
      properties:
        creative_assets_id:
          description: The catalog creative assets id in the merchant namespace
          example: DS0294-M
          type: string
        operation:
          type: string
          enum:
          - CREATE
        attributes:
          $ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
      required:
      - creative_assets_id
      - operation
      - attributes
    CatalogsHotelAddress:
      type: object
      properties:
        addr1:
          description: Primary street address of hotel.
          type: string
        city:
          description: City where the hotel is located.
          type: string
        region:
          description: State, county, province, where the hotel is located.
          type: string
        country:
          description: Country where the hotel is located.
          type: string
        postal_code:
          description: Required for countries with a postal code system. Postal or zip code of the hotel.
          type: string
    CatalogsHotelGuestRatings:
      type: object
      description: If specified, you must provide all properties
      properties:
        score:
          description: Your hotel's rating.
          type: number
        number_of_reviewers:
          description: Total number of people who have rated this hotel.
          type: integer
        max_score:
          description: Max value for the hotel rating score.
          type: number
        rating_system:
          description: System you use for guest reviews.
          type: string
    CatalogsItemsBatchRequest:
      type: object
      title: legacy_retail_only
      description: Request object of catalogs items batch
      oneOf:
      - $ref: '#/components/schemas/CatalogsItemsUpdateBatchRequest'
      - $ref: '#/components/schemas/CatalogsItemsUpsertBatchRequest'
      - $ref: '#/components/schemas/CatalogsItemsCreateBatchRequest'
      - $ref: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest'
      - $ref: '#/components/schemas/CatalogsItemsDeleteBatchRequest'
      discriminator:
        propertyName: operation
        mapping:
          UPDATE: '#/components/schemas/CatalogsItemsUpdateBatchRequest'
          UPSERT: '#/components/schemas/CatalogsItemsUpsertBatchRequest'
          CREATE: '#/components/schemas/CatalogsItemsCreateBatchRequest'
          DELETE_DISCONTINUED: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest'
          DELETE: '#/components/schemas/CatalogsItemsDeleteBatchRequest'
    CatalogsCreativeAssetsAttributes:
      type: object
      allOf:
      - type: object
        properties:
          image_link:
            type: string
            description: The creative assets image.
            example: https://scene.example.com/image/image_v2.jpg
          video_link:
            type: string
            description: The creative assets video.
            example: https://scene.example.com/image/image_v2.mp4
      - $ref: '#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes'
    CatalogsHotelBatchItem:
      description: Hotel batch item
      type: object
      anyOf:
      - $ref: '#/components/schemas/CatalogsCreateHotelItem'
      - $ref: '#/components/schemas/CatalogsUpsertHotelItem'
      - $ref: '#/components/schemas/CatalogsUpdateHotelItem'
      - $ref: '#/components/schemas/CatalogsDeleteHotelItem'
      discriminator:
        propertyName: operation
        mapping:
          CREATE: '#/components/schemas/CatalogsCreateHotelItem'
          UPSERT: '#/components/schemas/CatalogsUpsertHotelItem'
          UPDATE: '#/components/schemas/CatalogsUpdateHotelItem'
          DELETE: '#/components/schemas/CatalogsDeleteHotelItem'
    CatalogsCreateHotelItem:
      type: object
      description: A hotel item to be created.
      properties:
        hotel_id:
          description: The catalog hotel id in the merchant namespace
          example: DS0294-M
          type: string
        operation:
          type: string
          enum:
          - CREATE
        attributes:
          $ref: '#/components/schemas/CatalogsHotelAttributes'
      required:
      - hotel_id
      - operation
      - attributes
    Error:
      title: Error
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
      required:
      - code
      - message
    CatalogsRetailBatchRequest:
      type: object
      description: A request object that can have multiple operations on a single retail batch
      additionalProperties: false
      properties:
        catalog_type:
          $ref: '#/components/schemas/CatalogsType'
        country:
          $ref: '#/components/schemas/Country'
        language:
          $ref: '#/components/schemas/Language'
        items:
          minItems: 1
          maxItems: 1000
          type: array
          description: Array with catalogs item operations
          items:
            anyOf:
            - $ref: '#/components/schemas/CatalogsCreateRetailItem'
            - $ref: '#/components/schemas/CatalogsUpdateRetailItem'
            - $ref: '#/components/schemas/CatalogsUpsertRetailItem'
            - $ref: '#/components/schemas/CatalogsDeleteRetailItem'
            discriminator:
              propertyName: operation
              mapping:
                CREATE: '#/components/schemas/CatalogsCreateRetailItem'
                UPDATE: '#/components/schemas/CatalogsUpdateRetailItem'
                UPSERT: '#/components/schemas/CatalogsUpsertRetailItem'
                DELETE: '#/components/schemas/CatalogsDeleteRetailItem'
      required:
      - catalog_type
      - country
      - language
      - items
    UpdatableItemAttributes:
      type: object
      properties:
        ad_link:
          description: Allows advertisers to specify a separate URL that can be used to track traffic coming from Pinterest shopping ads. Must send full URL including trackingdo not send tracking parameters only. At this time we do not support impression tracking. Must begin with http:// or https://.
          example: https://www.example.com/cat/denim-shirt/item012?utm_source=Pinterest
          type: string
          nullable: true
        adult:
          description: Set this attribute to TRUE if you're submitting items that are considered adult. These will not be shown on Pinterest.
          example: true
          type: boolean
          nullable: true
        age_group:
          description: 'The age group to apply a demographic range to the product. Must be one of the following values (upper or lowercased): newborn , infant, toddler, kids, or adult.'
          example: newborn
          type: string
          nullable: true
        availability:
          description: 'The availability of the product. Must be one of the following values (upper or lowercased): in stock, out of stock , preorder.'
          example: in stock
          type: string
        average_review_rating:
          description: Average reviews for the item. Can be a number from 1-5.
          example: 5
          type: number
          nullable: true
        brand:
          description: The brand of the product.
          example: Josies Denim
          type: string
          nullable: true
        checkout_enabled:
          description: This attribute is not supported anymore.
          example: false
          type: boolean
          nullable: true
          deprecated: true
        color:
          description: The primary color of the product.
          example: blue
          type: string
          nullable: true
        condition:
          description: 'The condition of the product. Must be one of the following values (upper or lowercased): new, used, or refurbished.'
          example: new
          type: string
          nullable: true
        custom_label_0:
          description: '<p><= 1000 characters</p>

            <p>Custom grouping of products.</p>'
          example: Best sellers
          type: string
          nullable: true
        custom_label_1:
          description: '<p><= 1000 characters</p>

            <p>Custom grouping of products.</p>'
          example: Summer promotion
          type: string
          nullable: true
        custom_label_2:
          description: '<p><= 1000 characters</p>

            <p>Custom grouping of products.</p>'
          example: Winter sales
          type: string
          nullable: true
        custom_label_3:
          description: '<p><= 1000 characters</p>

            <p>Custom grouping of products.</p>'
          example: Woman dress
          type: string
          nullable: true
        custom_label_4:
          description: '<p><= 1000 characters</p>

            <p>Custom grouping of products.</p>'
          example: Man hat
          type: string
          nullable: true
        description:
          description: '<p><= 10000 characters</p>

            <p>The description of the product.</p>'
          example: Casual fit denim shirt made with the finest quality Japanese denim.
          type: string
        free_shipping_label:
          description: The item is free to ship.
          example: true
          type: boolean
          nullable: true
        free_shipping_limit:
          description: The minimum order purchase necessary for the customer to get free shipping. Only relevant if free shipping is offered.
          example: 35 USD
          type: string
          nullable: true
        gender:
          description: 'The gender associated with the product. Must be one of the following values (upper or lowercased): male, female , or unisex.'
          example: unisex
          type: string
          nullable: true
        google_product_category:
          description: The categorization of the product based on the standardized Google Product Taxonomy. This is a set taxonomy. Both the text values and numeric codes are accepted.
          example: Apparel & Accessories > Clothing > Shirts & Tops
          type: string
          nullable: true
        gtin:
          description: The unique universal product identifier.
          example: 3234567890126
          type: integer
          nullable: true
        id:
          description: '<p><= 127 characters</p>

            <p>The user-created unique ID that represents the product. Only

            Unicode characters are accepted.</p>'
          example: DS0294-L
          type: string
          deprecated: true
        item_group_id:
          description: '<p><= 127 characters</p>

            <p>The parent ID of the product.</p>'
          example: DS0294
          type: string
          nullable: true
        last_updated_time:
          description: The millisecond timestamp when the item was lastly modified by the merchant.
          example: 1641483432072
          type: integer
          format: int64
          nullable: true
        link:
          description: '<p><= 511 characters</p>

            <p>The landing page for the product.</p>'
          example: https://www.example.com/cat/womens-clothing/denim-shirt-0294
          type: string
        material:
          description: The material used to make the product.
          example: cotton
          type: string
          nullable: true
        min_ad_price:
          description: The minimum advertised price of the product. It supports the following formats, "19.99 USD", "19.99USD" and "19.99". If the currency is not included, we default to US dollars.
          example: 19.99 USD
          type: string
          nullable: true
        mobile_link:
          description: The mobile-optimized version of your landing page. Must begin with http:// or https://.
          example: https://m.example.com/cat/womens-clothing/denim-shirt-0294
          type: string
          nullable: true
        mpn:
          description: Manufacturer Part Number are alpha-numeric codes created by the manufacturer of a product to uniquely identify it among all products from the same manufacturer.
          example: PI12345NTEREST
          type: string
          nullable: true
        number_of_ratings:
          description: The number of ratings for the item.
          example: 10
          type: integer
          nullable: true
        number_of_reviews:
          description: The number of reviews available for the item.
          example: 10
          type: integer
          nullable: true
        pattern:
          description: The description of the pattern used for the product.
          example: plaid
          type: string
          nullable: true
        price:
          description: The price of the product. It supports the following formats, "24.99 USD", "24.99USD" and "24.99". If the currency is not included, we default to US dollars.
          example: 24.99 USD
          type: string
        product_type:
          description: '<p><= 1000 characters</p>

            <p>The categorization of your product based on your custom product

            taxonomy. Subcategories must be sent separated by  > . The > must be

            wrapped by spaces. We do not recognize any other delimiters such as comma

            or pipe.</p>'
          example: Clothing > Womens > Shirts > Denim
          type: string
          nullable: true
        sale_price:
          description: The discounted price of the product. The sale_price must be lower than the price. It supports the following formats, "14.99 USD", "14.99USD" and "14.99". If the currency is not included, we default to US dollars.
          example: 14.99 USD
          type: string
          nullable: true
        shipping:
          description: Shipping consists of one group of up to four elements, country, region, service (all optional) and price (required). All colons, even for blank values, are required.
          example: US:CA:Ground:0 USD
          type: string
          nullable: true
        shipping_height:
          description: The height of the package needed to ship the product. Ensure there is a space between the numeric string and the metric.
          example: 12 in
          type: string
          nullable: true
        shipping_weight:
          description: The weight of the product. Ensure there is a space between the numeric string and the metric.
          example: 3 kg
          type: string
          nullable: true
        shipping_width:
          description: The width of the package needed to ship the product. Ensure there is a space between the numeric string and the metric.
          example: 16 in
          type: string
          nullable: true
        size:
          description: The size of the product.
          example: M
          type: string
          nullable: true
        size_system:
          description: 'Indicates the countrys sizing system in which you are submitting your product. Must be one of the following values (upper or lowercased): US, UK, EU, DE , FR, JP, CN, IT,  BR, MEX, or AU.'
          example: US
          type: string
          nullable: true
        size_type:
          description: 'Additional description for the size. Must be one of the following values (upper or lowercased): regular, petite , plus, big_and_tall, or maternity.'
          example: regular
          type: string
          nullable: true
        tax:
          description: Tax consists of one group of up to four elements, country, region, rate (all required) and tax_ship (optional). All colons, even for blank values, are required.
          example: US:1025433:6.00:y
          type: string
          nullable: true
        title:
          description: '<p><= 500 characters</p>

            <p>The name of the product.</p>'
          example: Womens denim shirt, large
          type: string
        variant_names:
          description: Options for this variant. People will see these options next to your Pin and can select the one they want. List them in the order you want them displayed.
          example:
          - Color
          - Size
          type: array
          nullable: true
          items:
            type: string
        variant_values:
          description: Option values for this variant. People will see these options next to your Pin and can select the one they want. List them in the order you want them displayed. The order of the variant values must be consistent with the order of the variant names.
          example:
          - Red
          - Small
          type: array
          nullable: true
          items:
            type: string
    CatalogsRetailItemsBatch:
      type: object
      description: Object describing the catalogs retail items batch
      properties:
        batch_id:
          description: Id of the catalogs items batch
          example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e
          type: string
        created_time:
          description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD'
          example: '2020-01-01T20:10:40-00:00'
          type: string
          format: date-time
          readOnly: true
        completed_time:
          description: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD'
          example: '2022-03-10T15:37:10-00:00'
          type: string
          format: date-time
          readOnly: true
          nullable: true
        status:
          $ref: '#/components/schemas/BatchOperationStatus'
        catalog_type:
          $ref: '#/components/schemas/CatalogsType'
        items:
          description: Array with the catalogs items processing records part of the catalogs items batch
          items:
            $ref: '#/components/schemas/ItemProcessingRecord'
          type: array
      required:
      - catalog_type
    ItemUpdateBatchRecord:
      type: object
      description: Object describing an item batch record to update items
      properties:
        item_id:
          description: The catalog item id in the merchant namespace
          example: DS0294-M
          type: string
        attributes:
          $ref: '#/components/schemas/UpdatableItemAttributes'
        update_mask:
          description: The list of product attributes to be updated. Attributes specified in the update mask without a value specified in the body will be deleted from the product item.
          example:
          - ad_link
          - adult
          - age_group
          - availability
          - average_review_rating
          - brand
          - checkout_enabled
          - color
          - condition
          - custom_label_0
          - custom_label_1
          - custom_label_2
          - custom_label_3
          - custom_label_4
          - description
          - free_shipping_label
          - free_shipping_limit
          - gender
          - google_product_category
          - gtin
          - item_group_id
          - last_updated_time
          - link
          - material
          - min_ad_price
          - mpn
          - number_of_ratings
          - number_of_reviews
          - pattern
          - price
          - product_type
          - sale_price
          - shipping
          - shipping_height
          - shipping_weight
          - shipping_width
          - size
          - size_system
          - size_type
          - tax
          - title
          - variant_names
          - variant_values
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/UpdateMaskFieldType'
    BatchOperation:
      description: The operation performed by the batch. The DELETE_DISCONTINUED operation only updates availablity to "Out of Stock".
      example: UPDATE
      type: string
      enum:
      - UPDATE
      - UPSERT
      - CREATE
      - DELETE_DISCONTINUED
      - DELETE
    CatalogsUpsertCreativeAssetsItem:
      type: object
      description: A creative assets item to be upserted.
      properties:
        creative_assets_id:
          description: The catalog creative assets id in the merchant namespace
          example: DS0294-M
          type: string
        operation:
          type: string
          enum:
          - UPSERT
        attributes:
          $ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
      required:
      - creative_assets_id
      - operation
      - attributes
    ItemValidationEvent:
      type: object
      description: Object describing an item validation event
      properties:
        attribute:
          description: The attribute that the item validation event references
          example: title
          type: string
        code:
          description: The event code that the item validation event references
          example: 106
          type: integer
        message:
          description: Title message describing the item validation event
          example: Title is missing from product metadata.
          type: string
    HotelProcessingRecord:
      type: object
      description: Object describing an item processing record
      properties:
        hotel_id:
          description: The catalog hotel id in the merchant namespace
          example: DS0294-M
          type: string
        errors:
          description: 'Array with the validation errors for the item processing record.

            A non empty errors list causes the item processing to fail.'
          items:
            $ref: '#/components/schemas/ItemValidationEvent'
          type: array
        warnings:
          description: Array with the validation warnings for the item processing record
          items:
            $ref: '#/components/schemas/ItemValidationEvent'
          type: array
        status:
          $ref: '#/components/schemas/ItemProcessingStatus'
    BatchOperationStatus:
      description: The status of the operation performed by the batch
      example: PROCESSING
      type: string
      enum:
      - PROCESSING
      - COMPLETED
      - FAILED
    CreativeAssetsProcessingRecord:
      type: object
      description: Object describing an item processing record
      properties:
        creative_assets_id:
          description: The catalog creative assets id in the merchant namespace
          example: DS0294-M
          type: string
        errors:
          description: 'Array with the validation errors for the item processing record.

            A non empty errors list causes the item processing to fail.'
          items:
            $ref: '#/components/schemas/ItemValidationEvent'
          type: array
        warnings:
          description: Array with the validation warnings for the item processing record
          items:
            $ref: '#/components/schemas/ItemValidationEvent'
          type: array
        status:
          $ref: '#/components/schemas/ItemProcessingStatus'
    CatalogsHotelItemsBatch:
      type: object
      description: Object describing the catalogs hotel items batch
      properties:
        batch_id:
          description: Id of the catalogs items batch
          example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e
          type: string
        created_time:
          description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD'
          example: '2020-01-01T20:10:40-00:00'
          type: string
          format: date-time
          readOnly: true
        completed_time:
          description: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD'
          example: '2022-03-10T15:37:10-00:00'
          type: string
          format: date-time
          readOnly: true
          nullable: true
        status:
          $ref: '#/components/schemas/BatchOperationStatus'
        catalog_type:
          $ref: '#/components/schemas/CatalogsType'
        items:
          description: Array with the catalogs items processing records part of the catalogs items batch
          items:
            $ref: '#/components/schemas/HotelProcessingRecord'
          type: array
      required:
      - catalog_type
    ItemCreateBatchRecord:
      type: object
      description: Object describing an item batch record to create items
      properties:
        item_id:
          description: The catalog item id in the merchant namespace
          example: DS0294-M
          type: string
        attributes:
          $ref: '#/components/schemas/ItemAttributesRequest'
    ItemUpsertBatchRecord:
      type: object
      description: Object describing an item batch record to upsert items
      properties:
        item_id:
          description: The catalog item id in the merchant namespace
          example: DS0294-M
          type: string
        attributes:
          $ref: '#/components/schemas/ItemAttributesRequest'
    CatalogsCreativeAssetsBatchItem:
      description: Creative assets batch item
      type: object
      anyOf:
      - $ref: '#/components/schemas/CatalogsCreateCreativeAssetsItem'
      - $ref: '#/components/schemas/CatalogsUpsertCreativeAssetsItem'
      - $ref: '#/components/schemas/CatalogsUpdateCreativeAssetsItem'
      - $ref: '#/components/schemas/CatalogsDeleteCreativeAssetsItem'
      discriminator:
        propertyName: operation
        mapping:
          CREATE: '#/components/schemas/CatalogsCreateCreativeAssetsItem'
          UPSERT: '#/components/schemas/CatalogsUpsertCreativeAssetsItem'
          UPDATE: '#/components/schemas/CatalogsUpdateCreativeAssetsItem'
          DELETE: '#/components/schemas/CatalogsDeleteCreativeAssetsItem'
    CatalogsItemsUpsertBatchRequest:
      description: Request object to upsert catalogs items
      type: object
      properties:
        country:
          $ref: '#/components/schemas/Country'
        language:
          $ref: '#/components/schemas/Lan

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