StockX Batch API

Batch APIs enable a user to create, update, delete listings in bulk. Batch APIs are asynchronous in nature and we provide mechanisms to poll the API so that you can keep track of the batch completion. Once a batch is successfully completed, you can view the status of each individual listing. We track each individual listing inside a batch separately so you can have scenarios where some listings succeed and some fail in a single batch.

OpenAPI Specification

stockx-batch-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: StockX Public Batch API
  version: 2.0.0
  description: Manage StockX seller account using APIs
  license:
    name: MIT
  contact: {}
servers:
- url: https://api.stockx.com/v2
tags:
- name: Batch
  description: Batch APIs enable a user to create, update, delete listings in bulk. Batch APIs are asynchronous in nature and we provide mechanisms to poll the API so that you can keep track of the batch completion.  Once a batch is successfully completed, you can view the status of each individual listing.  We track each individual listing inside a batch separately so you can have scenarios where some listings succeed and some fail in a single batch.
paths:
  /selling/batch/create-listing:
    post:
      operationId: CreateListings
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchCreateListingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: Create a new batch of listings
      summary: Batch listings creation
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreateListingInput'
  /selling/batch/create-listing/{batchId}:
    get:
      operationId: GetListingCreateBatch
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingCreateBatchResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Once you are able to create a batch successfully, you need to poll the get batch status API to track the progress of the batch.

        This polling is necessary because all batch operations are asynchronous in nature.'
      summary: Batch listings creation - Get Batch Status
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters:
      - description: Unique Batch ID
        in: path
        name: batchId
        required: true
        schema:
          type: string
  /selling/batch/create-listing/{batchId}/items:
    get:
      operationId: GetListingCreateBatchItems
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingCreateBatchItemsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Once a batch completes successfully, you need to use the get batch items API to see the results of each item in the batch.

        You can also use this API at any point in time after the batch is created to see the progress of each individual item in a batch.'
      summary: Batch listings creation - Get Items
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters:
      - description: The ID of batch
        in: path
        name: batchId
        required: true
        schema:
          type: string
      - description: Status of listing
        in: query
        name: status
        required: false
        schema:
          type: string
        example: COMPLETED
  /selling/batch/delete-listing:
    post:
      operationId: DeleteListings
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchDeleteListingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Batch delete listings API allows a user to delete up to 100 individual listings in a single API call.

        This API is asynchronous in nature and will return a batchId that you would need to poll using the polling APIs described later.'
      summary: Batch listings deletion
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchDeleteListingInput'
  /selling/batch/delete-listing/{batchId}:
    get:
      operationId: GetListingDeleteBatch
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingDeleteBatchResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Once you are able to create a batch successfully, you need to poll the get batch status API to track the progress of the batch.

        This polling is necessary because all batch operations are asynchronous in nature.'
      summary: Batch listings deletion - Get Batch Status
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters:
      - description: Unique Batch ID
        in: path
        name: batchId
        required: true
        schema:
          type: string
  /selling/batch/delete-listing/{batchId}/items:
    get:
      operationId: GetListingDeleteBatchItems
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingDeleteBatchItemsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Once a batch completes successfully, you need to use the get batch items API to see the results of each item in the batch.

        You can also use this API at any point in time after the batch is created to see the progress of each individual item in a batch.'
      summary: Batch listings deletion - Get Items
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters:
      - description: Unique Batch ID
        in: path
        name: batchId
        required: true
        schema:
          type: string
      - in: query
        name: status
        required: false
        schema:
          type: string
        example: COMPLETED
  /selling/batch/update-listing:
    post:
      operationId: UpdateListings
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchUpdateListingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Batch update listings API allows a user to update up to 100 individual listings in a single API call.

        This API is asynchronous in nature and will return a batchId that you would need to poll using the polling APIs described later.'
      summary: Batch listings update
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdateListingInput'
  /selling/batch/update-listing/{batchId}:
    get:
      operationId: GetListingUpdateBatch
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingUpdateBatchResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Once you are able to create a batch successfully, you need to poll the get batch status API to track the progress of the batch.

        This polling is necessary because all batch operations are asynchronous in nature.'
      summary: Batch listings update - Get Batch Status
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters:
      - description: Unique Batch ID
        in: path
        name: batchId
        required: true
        schema:
          type: string
  /selling/batch/update-listing/{batchId}/items:
    get:
      operationId: GetListingUpdateBatchItems
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingUpdateBatchItemsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      description: 'Once a batch completes successfully, you need to use the get batch items API to see the results of each item in the batch.

        You can also use this API at any point in time after the batch is created to see the progress of each individual item in a batch'
      summary: Batch listings update - Get Items
      tags:
      - Batch
      security:
      - api_key: []
        jwt: []
      parameters:
      - description: Unique Batch ID
        in: path
        name: batchId
        required: true
        schema:
          type: string
      - description: Status of listing
        in: query
        name: status
        required: false
        schema:
          type: string
        example: COMPLETED
components:
  schemas:
    UUID:
      type: string
      example: bf364c53-eb77-4522-955c-6a6ce952cc6f
      description: 'Stringified UUIDv4.

        See [RFC 4112](https://tools.ietf.org/html/rfc4122)'
      pattern: '[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}'
    GetListingUpdateBatchResponse:
      properties:
        batchId:
          type: string
          description: Unique Batch ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          description: The status of the batch
          example: QUEUED
        completedAt:
          type: string
          nullable: true
          description: When this batch was completed in UTC. Represented as ISO 8601 format like 2022-01-18T20:20:39Z
          example: '2021-11-09T12:44:31.000Z'
        createdAt:
          type: string
          description: When this batch was created in UTC. Represented as ISO 8601 format like 2022-01-18T20:20:39Z
          example: '2021-11-09T12:44:31.000Z'
        updatedAt:
          type: string
          description: When this batch was updated in UTC. Represented as ISO 8601 format like 2022-01-18T20:20:39Z
          example: '2021-11-09T12:44:31.000Z'
        totalItems:
          type: number
          format: double
          description: Total number of items in this batch
          example: 10
        itemStatuses:
          $ref: '#/components/schemas/BatchStatusCounts'
          description: The number of items in this batch grouped by their statuses. This is a short-hand way to quickly introspect how many items are still enqued, how many succeeded or how many failed in a batch
      required:
      - batchId
      - status
      - completedAt
      - createdAt
      - updatedAt
      - totalItems
      - itemStatuses
      type: object
      additionalProperties: false
    UpdateBatchListingRequestItem:
      properties:
        listingId:
          type: string
          description: Unique listing ID that needs to be updated
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        amount:
          type: string
          description: The amount this Listing is updated to
          example: 79
        expiresAt:
          type: string
          description: UTC timestamp representing the Listing expiry date that is being updated to
          example: '2021-11-09T12:44:31.000Z'
        currencyCode:
          type: string
          description: 'The currency this Listing is updated to<br><br>Available values: "AUD", "CAD", "CHF", "EUR", "GBP", "HKD", "JPY", "KRW", "MXN", "NZD", "SGD", "USD"'
          example: USD
        active:
          type: boolean
          description: Flag used to indicate that the listing should be active or not
          example: true
      required:
      - listingId
      type: object
      additionalProperties: false
    CreateBatchListingRequestItem:
      properties:
        inventoryType:
          type: string
          description: 'The inventory this product is being listed in. If not provided, it will default to STANDARD.<br><br>Available values: "STANDARD", "DIRECT"'
          example: STANDARD
        active:
          type: boolean
          description: Flag used to indicate that the listing should be active or not
          example: true
        quantity:
          type: number
          format: double
          description: The total number of Listings that need to be created.
          example: 10
        currencyCode:
          type: string
          description: 'The currency this Listing is being listed in. If not provided, it will default to USD.<br><br>Available values: "AUD", "CAD", "CHF", "EUR", "GBP", "HKD", "JPY", "KRW", "MXN", "NZD", "SGD", "USD"'
          example: USD
        variantId:
          type: string
          description: Unique StockX variant ID that this Listing is being created for
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        expiresAt:
          type: string
          description: UTC timestamp representing when this Listing should auto-expire.  If not provided, it will default to 999 days from today. Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        amount:
          type: string
          description: The amount this Listing is being listed for
          example: '79'
      required:
      - quantity
      - variantId
      - amount
      type: object
    BatchUpdateListingInput:
      properties:
        items:
          items:
            $ref: '#/components/schemas/UpdateBatchListingRequestItem'
          type: array
          description: An array of items that should be associated with the batch
      required:
      - items
      type: object
      additionalProperties: false
    BatchDeleteListingInput:
      properties:
        items:
          items:
            $ref: '#/components/schemas/DeleteBatchListingRequestItem'
          type: array
          description: An array of IDs that should be associated with the batch
      required:
      - items
      type: object
      additionalProperties: false
    GetListingUpdateBatchItemsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/GetListingUpdateBatchItem'
          type: array
          description: An array of items associated with the listing
      required:
      - items
      type: object
      additionalProperties: false
    GetListingCreateBatchResponse:
      properties:
        batchId:
          $ref: '#/components/schemas/UUID'
          description: Unique Batch ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          description: The status of this batch
          example: QUEUED
        completedAt:
          type: string
          nullable: true
          description: When this batch fully completed. Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        createdAt:
          type: string
          description: When this batch was created. Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        updatedAt:
          type: string
          description: When this batch was last updated. Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        totalItems:
          type: number
          format: double
          description: Total number of items in this batch
          example: 10
        itemStatuses:
          $ref: '#/components/schemas/BatchStatusCounts'
          description: 'The number of items in this batch grouped by their statuses.

            This is a short-hand way to quickly introspect how many items are still enqued, how many succeeded or how many failed in a batch'
          example: IN_PROGRESS
      required:
      - batchId
      - status
      - completedAt
      - createdAt
      - updatedAt
      - totalItems
      - itemStatuses
      type: object
      additionalProperties: false
    DeleteBatchListingRequestItem:
      properties:
        listingId:
          type: string
          description: Unique listing ID that needs to be deleted
          example: 98e2e748-8000-45bf-a624-5531d6a68318
      required:
      - listingId
      type: object
      additionalProperties: false
    BatchCreateListingResponse:
      properties:
        batchId:
          type: string
          description: Unique Batch ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          description: The status of the batch
          example: QUEUED
        completedAt:
          type: string
          nullable: true
          description: When the batch fully completed
          example: '2021-11-09T12:44:31.000Z'
        createdAt:
          type: string
          description: when this batch was created in UTC. Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        updatedAt:
          type: string
          description: When this batch was last updated in UTC. Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        totalItems:
          type: number
          format: double
          description: Total number of items in this batch
          example: 10
        itemStatuses:
          $ref: '#/components/schemas/BatchStatusCounts'
          description: 'The number of items in this batch grouped by their statuses.

            This is a short-hand way to quickly introspect how many items are still enqued, how many succeeded or how many failed in a batch.'
      required:
      - batchId
      - status
      - completedAt
      - createdAt
      - updatedAt
      - totalItems
      - itemStatuses
      type: object
      additionalProperties: false
    PublicApiError:
      properties:
        statusCode:
          $ref: '#/components/schemas/HttpStatusCodeLiteral'
          description: The error status code
          example: 400
        message:
          type: string
          description: The error message
          example: The request did not succeed 😭
      required:
      - statusCode
      - message
      type: object
      additionalProperties: false
    BatchDeleteListingResponse:
      properties:
        batchId:
          type: string
          description: Unique Batch ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          description: The status of the batch
          example: QUEUED
        completedAt:
          type: string
          nullable: true
          description: When this batch was completed in UTC.  Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        createdAt:
          type: string
          description: When this batch was created in UTC.  Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        updatedAt:
          type: string
          description: When this batch was updated in UTC.  Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        totalItems:
          type: number
          format: double
          description: Total number of items in this batch
          example: 10
        itemStatuses:
          $ref: '#/components/schemas/BatchStatusCounts'
          description: The number of items in this batch grouped by their statuses. This is a short-hand way to quickly introspect how many items are still enqued, how many succeeded or how many failed in a batch
      required:
      - batchId
      - status
      - completedAt
      - createdAt
      - updatedAt
      - totalItems
      - itemStatuses
      type: object
      additionalProperties: false
    HttpStatusCodeLiteral:
      type: number
      enum:
      - 100
      - 101
      - 102
      - 200
      - 201
      - 202
      - 203
      - 204
      - 205
      - 206
      - 207
      - 208
      - 226
      - 300
      - 301
      - 302
      - 303
      - 304
      - 305
      - 307
      - 308
      - 400
      - 401
      - 402
      - 403
      - 404
      - 405
      - 406
      - 407
      - 408
      - 409
      - 410
      - 411
      - 412
      - 413
      - 414
      - 415
      - 416
      - 417
      - 418
      - 422
      - 423
      - 424
      - 426
      - 428
      - 429
      - 431
      - 451
      - 500
      - 501
      - 502
      - 503
      - 504
      - 505
      - 506
      - 507
      - 508
      - 510
      - 511
    BatchCreateListingInput:
      properties:
        items:
          items:
            $ref: '#/components/schemas/CreateBatchListingRequestItem'
          type: array
          description: An array of items that should be associated with the batch
      required:
      - items
      type: object
      additionalProperties: false
    GetListingUpdateBatchItem:
      properties:
        itemId:
          type: string
          description: Unique Item ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          description: The status of this item
          example: QUEUED
        listingInput:
          properties:
            active:
              type: boolean
              nullable: true
              description: Whether the listing is active or not
            currencyCode:
              type: string
              description: 'The currency code for this listing<br><br>Available values: "AUD", "CAD", "CHF", "EUR", "GBP", "HKD", "JPY", "KRW", "MXN", "NZD", "SGD", "USD"'
              example: USD
            expiresAt:
              type: string
              description: When this listing expires in UTC
              example: '2021-11-09T12:44:31.000Z'
            amount:
              type: string
              description: The amount this listing is listed for
              example: 98e2e748-8000-45bf-a624-5531d6a68318
            listingId:
              type: string
              description: The ID of the listing
              example: 98e2e748-8000-45bf-a624-5531d6a68318
          required:
          - active
          - listingId
          type: object
          description: The input for this item that was used when creating the batch
        result:
          properties:
            askId:
              type: string
              nullable: true
              description: The unique askId of this listing.
              example: 98e2e748-8000-45bf-a624-5531d6a68318
            listingId:
              type: string
              nullable: true
              description: The unique listingId of this listing. This is a new ID being introduced that is analogous to askId
              example: 98e2e748-8000-45bf-a624-5531d6a68318
          required:
          - askId
          - listingId
          type: object
          description: If an item was successfully processed, the result object will contain the following
        error:
          type: string
          description: If an item failed to process, the error attribute will contain the error message describing the reason the item failed to process
      required:
      - itemId
      - status
      - listingInput
      type: object
      additionalProperties: false
    GetListingCreateBatchItem:
      properties:
        itemId:
          type: string
          nullable: true
          description: Unique Item ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          nullable: true
          description: The status of this item
          example: QUEUED
        listingInput:
          properties:
            active:
              type: boolean
              nullable: true
              description: Whether this listing is active
            currencyCode:
              type: string
              nullable: true
              description: 'The currency code for this listing<br><br>Available values: "AUD", "CAD", "CHF", "EUR", "GBP", "HKD", "JPY", "KRW", "MXN", "NZD", "SGD", "USD"'
              example: USD
            variantId:
              type: string
              nullable: true
              description: The ID of the variant
              example: 98e2e748-8000-45bf-a624-5531d6a68318
            expiresAt:
              type: string
              nullable: true
              description: When this listing expires in UTC
              example: '2021-11-09T12:44:31.000Z'
            amount:
              type: string
              nullable: true
              description: The amount this listing is listed for
              example: '300'
          required:
          - active
          - currencyCode
          - variantId
          - expiresAt
          - amount
          type: object
          description: The input for this item that was used when creating the batch
        result:
          properties:
            askId:
              type: string
              nullable: true
              description: The unique askId of this listing.
              example: 98e2e748-8000-45bf-a624-5531d6a68318
            listingId:
              type: string
              nullable: true
              description: The unique listingId of this listing. This is a new ID being introduced that is analogous to askId
              example: 98e2e748-8000-45bf-a624-5531d6a68318
          required:
          - askId
          - listingId
          type: object
          description: 'If an item was successfully processed, the result object will contain the following:'
        error:
          type: string
          description: If an item failed to process, the error attribute will contain the error message describing the reason the item failed to process
      required:
      - itemId
      - status
      - listingInput
      type: object
      additionalProperties: false
    GetListingDeleteBatchItemsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/GetListingDeleteBatchItem'
          type: array
          description: An array of items associated with the listing
      required:
      - items
      type: object
      additionalProperties: false
    GetListingDeleteBatchItem:
      properties:
        itemId:
          type: string
          description: Unique Item ID
          example: 09f3f859-9000-56cg-a624-6642d6a68318
        status:
          type: string
          description: The status of the task
          example: IN_PROGRESS
        listingInput:
          properties:
            id:
              type: string
              description: The id of target listing
          required:
          - id
          type: object
          description: The input for this item that was used when creating the batch
        error:
          type: string
          description: If an item failed to process, the error attribute will contain the error message describing the reason the item failed to process
        result:
          properties:
            askId:
              type: string
              nullable: true
              description: The unique askId of this listing.
              example: 09f3f859-9000-56cg-a624-6642d6a68318
            listingId:
              type: string
              nullable: true
              description: The unique listingId of this listing. This is a new ID being introduced that is analogous to askId
              example: 09f3f859-9000-56cg-a624-6642d6a68318
          required:
          - askId
          - listingId
          type: object
          description: 'If an item was successfully processed, the result object will contain the following:'
      required:
      - itemId
      - status
      - listingInput
      type: object
      additionalProperties: false
    GetListingCreateBatchItemsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/GetListingCreateBatchItem'
          type: array
          description: An array of items associated with the listing
      required:
      - items
      type: object
      additionalProperties: false
    BatchUpdateListingResponse:
      properties:
        batchId:
          type: string
          description: Unique Batch ID
          example: 98e2e748-8000-45bf-a624-5531d6a68318
        status:
          type: string
          description: The status of the batch
          example: QUEUED
        completedAt:
          type: string
          nullable: true
          description: When this batch was last completed in UTC.  Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        createdAt:
          type: string
          description: When this batch was last created in UTC.  Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          example: '2021-11-09T12:44:31.000Z'
        updatedAt:
          type: string
          description: When this batch was last updated in UTC.  Represented as ISO 8601 format like 2021-11-09T12:44:31.000Z
          e

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