BigCommerce Listings API

The Listings API from BigCommerce — 2 operation(s) for listings.

Operations 4

GET /channels/{channel_id}/listings BigCommerce Get Channel Listings #
POST /channels/{channel_id}/listings BigCommerce Create Channel Listings #
PUT /channels/{channel_id}/listings BigCommerce Update Channel Listings #
GET /channels/{channel_id}/listings/{listing_id} BigCommerce Get a Channel Listing #

Documentation

📖
Documentation
https://developer.bigcommerce.com/
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/abandoned-carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/brands
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/categories
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/category-trees
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-modifiers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-variant-options
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-variants
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/products
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/channels
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/checkouts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/store-content
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/currencies
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/customers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/email-templates
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/geography
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/orders
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/pages
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/tokens
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/methods-deprecated
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/processing
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/settings
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/shipping-v2
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/channels/site
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/store-information
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/checkouts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/customers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/orders
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/subscriptions
📖
APIReference
https://developer.bigcommerce.com/docs/integrations/webhooks
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/widgets

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/bigcommerce-listings-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

bigcommerce-listings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: ''
  termsOfService: https://www.bigcommerce.com/terms
  contact:
    name: BigCommerce
    url: https://www.bigcommerce.com
    email: support@bigcommerce.com
  title: BigCommerce Channels Listings API
  description: "Create and manage sales [channels](/docs/integrations/channels), their [sites](/docs/rest-management/channels/channel-site), and their [product listings](/docs/rest-management/channels/channel-listings).\n\n## Channels\n\nA [channel](/docs/rest-management/channels) is anywhere a merchant sells their products. This encompasses headless storefronts, marketplaces, POS systems, and marketing platforms.\n\n### Platform\n\nA channelʼs `type` and `platform` combination must be a valid pair as indicated in the table below.\n\n| Platform            | Accepted Type |\n|:--|:--|\n| `clover`            | `pos` |\n| `square`            | `pos` |\n| `stripe`            | `pos` |\n| `talech`            | `pos` |\n| `vend`              | `pos` |\n| `amazon`            | `marketplace` |\n| `belk`              | `marketplace` |\n| `catch`             | `marketplace` |\n| `ebay`              | `marketplace` |\n| `etsy`              | `marketplace` |\n| `facebook`          | `marketplace`, `marketing` |\n| `hudsons_bay`       | `marketplace` |\n| `google`            | `marketplace`, `marketing` |\n| `google_shopping` (deprecated)   | `marketing` |\n| `instagram`         | `marketplace`, `marketing` |\n| `macys`             | `marketplace` |\n| `mirakl`            | `marketplace` |\n| `overstock`         | `marketplace` |\n| `pinterest`         | `marketplace` |\n| `target_plus`       | `marketplace` |\n| `tiktok`            | `marketplace` |\n| `wayfair`           | `marketplace` |\n| `wish`              | `marketplace` |\n| `walmart`           | `marketplace` |\n| `acquia`            | `storefront` |\n| `bigcommerce` (Stencil and Blueprint) | `storefront` |\n| `bloomreach`        | `storefront` |\n| `catalyst` (BigCommerce Next.js) | `storefront` |\n| `deity`             | `storefront` |\n| `drupal`            | `storefront` |\n| `gatsby`            | `storefront` |\n| `next` (Next.js Commerce and other Next.js) | `storefront` |\n| `vue`               | `storefront` |\n| `wordpress`         | `storefront` |\n| `custom`            | `storefront`, `pos`, `marketing`, `marketplace` |\n    \n\n### Status\n\nAllowed values for a channelʼs `status` vary by channel `type`.\n\n| Type | Writeable Statuses |\n|:--|:-|\n| `storefront` | `prelaunch`, `active`, `inactive`, `archived`, `deleted` |\n| `marketing`, `marketplace`, `pos`| `connected`, `disconnected`, `archived`, `deleted` |\n\n> #### Warning\n> * You can restore a Channel with `deleted` status within **90 days** after deletion by contacting the BigCommerce support team. After the 90-days grace period is over, the Channel `status` will become `terminated`.\n> * The `terminated` status is read-only. Channels with a `status` of `terminated` **cannot** be restored.\n\n## Channel listings\n\n[Channel listings](/docs/rest-management/channels/channel-listings) allow you to manage catalog differences among different storefronts or marketplaces.\n\n## Channel site\n\nA [Channel site](/docs/rest-management/channels/channel-site) refers to the domain associated with a channel.\n\n## Resources\n\n* [Sites and Routes API Reference](/docs/rest-management/sites)\n* [Building Channels Overview](/docs/integrations/channels)\n* [Building Channel Apps](/docs/integrations/channels/guide)\n* [Channels Toolkit Reference](/docs/integrations/channels/toolkit-reference)"
servers:
- url: https://api.bigcommerce.com/stores/{store_hash}/v3
  variables:
    store_hash:
      default: store_hash
      description: Permanent ID of the BigCommerce store.
  description: BigCommerce API Gateway
security:
- X-Auth-Token: []
tags:
- name: Listings
paths:
  /channels/{channel_id}/listings:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - $ref: '#/components/parameters/channel_id_path_param'
    get:
      tags:
      - Listings
      summary: BigCommerce Get Channel Listings
      operationId: getChannelListings
      description: Returns a list of all *Channel Listings* for a specific channel. Note that if the *Channel* is not found or there is no listing associated to the *Channel*, it will return a 200 response with empty data.
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/product_id_in'
      - $ref: '#/components/parameters/date_created'
      - $ref: '#/components/parameters/date_created_min'
      - $ref: '#/components/parameters/date_created_max'
      - $ref: '#/components/parameters/date_modified'
      - $ref: '#/components/parameters/date_modified_min'
      - $ref: '#/components/parameters/date_modified_max'
      responses:
        '200':
          $ref: '#/components/responses/single_and_multiple_listings_resp'
        '400':
          $ref: '#/components/responses/invalid_channel_id_resp'
        '422':
          $ref: '#/components/responses/invalid_filters_resp'
    post:
      tags:
      - Listings
      summary: BigCommerce Create Channel Listings
      parameters:
      - $ref: '#/components/parameters/ContentType'
      operationId: createChannelListings
      description: Creates one or more *Channel Listings* for a specific channel.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMultipleListingsReq'
            examples:
              Create Single Listing:
                $ref: '#/components/examples/create_single_listing_req_example'
              Create Multiple Listings:
                $ref: '#/components/examples/create_multiple_listings_req_example'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/single_and_multiple_listings_resp'
        '422':
          $ref: '#/components/responses/missing_or_invalid_multiple_listings_data_for_post_resp'
    put:
      tags:
      - Listings
      summary: BigCommerce Update Channel Listings
      parameters:
      - $ref: '#/components/parameters/ContentType'
      operationId: updateChannelListings
      description: 'Updates one or more *Channel Listings* for a specific channel.


        > #### Note

        > * Partial updates are supported. In most cases, if a field that *cannot* be updated is passed in, the API **will not** respond with an error. It returns a 200 response with the object, in which you will see the field(s) were not updated.

        > * If a new variant is provided, the API will append the variant to the list. If a variant already exists, the API will update the existing variant. Other variants that are not provided in the payload remains unchanged.

        > * If `listing_id` does not exist, the API will return a 200 response with empty data.

        > * `listing_id` is required and cannot be less than or equal to zero.

        > * `product_id` cannot be updated after a channel listing is created.

        > * `product_id` of a variant must match the `product_id` of the channel listing.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMultipleListingsReq'
            examples:
              Update Single Listing:
                $ref: '#/components/examples/update_single_listing_req_example'
              Update Multiple Listings:
                $ref: '#/components/examples/update_multiple_listings_req_example'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/single_and_multiple_listings_resp'
        '422':
          $ref: '#/components/responses/missing_or_invalid_multiple_listings_data_for_put_resp'
  /channels/{channel_id}/listings/{listing_id}:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - $ref: '#/components/parameters/channel_id_path_param'
    - $ref: '#/components/parameters/listing_id_path_param'
    get:
      tags:
      - Listings
      summary: BigCommerce Get a Channel Listing
      operationId: getChannelListing
      description: Returns a *Channel Listing* for a specific channel.
      responses:
        '200':
          $ref: '#/components/responses/single_listing_resp'
        '404':
          $ref: '#/components/responses/listing_not_found_resp'
components:
  examples:
    error_422_invalid_listing_id_resp_example:
      value:
        status: 422
        title: '0/0 product listing group(s) and 0/0 product listing(s) upserted. Invalid fields: group_id,'
        type: /api-docs/getting-started/api-status-codes
        errors:
          group_id: Group id (0) for store (1001808665) cannot be less than or equal to zero!
    error_404_listing_not_found_resp_example:
      value:
        status: 404
        title: Listing [123456789] not found
        type: /api-docs/getting-started/api-status-codes
        errors: {}
    error_422_missing_listing_required_fields_resp_example:
      value:
        status: 422
        title: JSON data is missing or invalid
        type: /api-docs/getting-started/api-status-codes
        errors:
          0.state: error.path.missing
          0.variants: error.path.missing
          0.product_id: error.path.missing
    error_422_product_id_mismatch_resp_example:
      value:
        status: 422
        title: '0/0 product listing group(s) and 0/0 product listing(s) upserted. Invalid fields: '
        type: /api-docs/getting-started/api-status-codes
        errors: {}
    create_single_listing_req_example:
      value:
      - product_id: 80
        state: active
        name: Orbit Terrarium - Large
        description: The same terrarium, but not a [Sample]
        variants:
        - product_id: 80
          variant_id: 64
          state: active
          name: Terrarium with dinosaur
        - product_id: 80
          variant_id: 65
          state: active
          name: Terrarium with fish
    error_422_invalid_channel_id_v2_resp_example:
      value:
        status: 422
        title: Channel id (1000000) is not valid for store (1001808665)!
        type: /api-docs/getting-started/api-status-codes
        errors: {}
    single_listing_with_empty_meta_resp_example:
      value:
        data:
          channel_id: 667159
          listing_id: 882998595
          product_id: 80
          state: active
          name: Orbit Terrarium - Large
          description: The same terrarium, but not a [Sample]
          date_created: '2021-05-24T17:46:33Z'
          date_modified: '2021-05-24T17:46:33Z'
          variants:
          - channel_id: 667159
            product_id: 80
            variant_id: 64
            state: active
            name: Terrarium with dinosaur
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
          - channel_id: 667159
            product_id: 80
            variant_id: 65
            state: active
            name: Terrarium with fish
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
        meta: {}
    create_multiple_listings_req_example:
      value:
      - product_id: 80
        state: active
        name: Orbit Terrarium - Large
        description: The same terrarium, but not a [Sample]
        variants:
        - product_id: 80
          variant_id: 64
          state: active
          name: Terrarium with dinosaur
        - product_id: 80
          variant_id: 65
          state: active
          name: Terrarium with fish
      - product_id: 100
        state: pending
        name: Womenʼs Bold T-Shirt
        description: The same t-shirt, but not a [Sample]
        variants:
        - product_id: 100
          variant_id: 91
          state: pending
          name: Small womenʼs bold t-shirt
        - product_id: 100
          variant_id: 92
          state: pending
          name: Medium womenʼs bold t-shirt
    error_422_invalid_filter_value_resp_example:
      value:
        status: 422
        title: 'Query parameter "limit" value must be integer. For input string: "a".'
        type: /api-docs/getting-started/api-status-codes
        errors: {}
    single_listing_resp_example:
      value:
        data:
        - channel_id: 667159
          listing_id: 882998595
          product_id: 80
          state: active
          name: Orbit Terrarium - Large
          description: The same terrarium, but not a [Sample]
          date_created: '2021-05-24T17:46:33Z'
          date_modified: '2021-05-24T17:46:33Z'
          variants:
          - channel_id: 667159
            product_id: 80
            variant_id: 64
            state: active
            name: Terrarium with dinosaur
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
          - channel_id: 667159
            product_id: 80
            variant_id: 65
            state: active
            name: Terrarium with fish
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
        meta:
          pagination:
            count: 1
            total: 1
            links:
              current: ?limit=1000
            total_pages: 1
    error_400_resp_example:
      value:
        status: 400
        title: Input is invalid
        type: /api-docs/getting-started/api-status-codes
        errors: {}
    error_422_missing_listing_variants_required_fields_resp_example:
      value:
        status: 422
        title: JSON data is missing or invalid
        type: /api-docs/getting-started/api-status-codes
        errors:
          0.variants.0.state: error.path.missing
          0.variants.0.product_id: error.path.missing
          0.variants.0.variant_id: error.path.missing
    update_multiple_listings_req_example:
      value:
      - listing_id: 882789361
        product_id: 80
        state: active
        name: Orbit Terrarium - Large
        variants:
        - product_id: 80
          variant_id: 64
          state: active
          name: Terrarium with dinosaur
      - listing_id: 882789362
        product_id: 100
        state: pending
        name: Womenʼs Bold T-Shirt
        variants:
        - product_id: 100
          variant_id: 91
          state: pending
          name: Small womenʼs bold t-shirt
    multiple_listings_resp_example:
      value:
        data:
        - channel_id: 664177
          listing_id: 882789361
          product_id: 80
          state: active
          name: Orbit Terrarium - Large
          description: The same terrarium, but not a [Sample]
          date_created: '2021-05-24T17:46:33Z'
          date_modified: '2021-05-24T17:46:33Z'
          variants:
          - channel_id: 664177
            product_id: 80
            variant_id: 64
            state: active
            name: Terrarium with dinosaur
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
          - channel_id: 664177
            product_id: 80
            variant_id: 65
            state: active
            name: Terrarium with fish
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
        - channel_id: 664177
          listing_id: 882789362
          product_id: 100
          state: pending
          name: Womenʼs Bold T-Shirt
          description: The same t-shirt, but not a [Sample]
          date_created: '2021-05-24T17:46:33Z'
          date_modified: '2021-05-24T17:46:33Z'
          variants:
          - channel_id: 664177
            product_id: 100
            variant_id: 91
            state: pending
            name: Small womenʼs bold t-shirt
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
          - channel_id: 664177
            product_id: 100
            variant_id: 92
            state: pending
            name: Medium womenʼs bold t-shirt
            date_created: '2021-05-24T17:46:33Z'
            date_modified: '2021-05-24T17:46:33Z'
        meta:
          pagination:
            count: 2
            total: 2
            links:
              current: ?limit=1000
            total_pages: 1
    update_single_listing_req_example:
      value:
      - listing_id: 882998595
        product_id: 80
        state: active
        name: Orbit Terrarium - Large
        variants:
        - product_id: 80
          variant_id: 64
          state: active
          name: Terrarium with dinosaur
    error_422_invalid_filters_resp_example:
      value:
        status: 422
        title: 'The filter(s): a, b are not valid filter parameter(s).'
        type: /api-docs/getting-started/api-status-codes
        errors: {}
  schemas:
    ChannelListingVariantDateCreated:
      type: string
      format: date-time
      description: Date on which the channel listing variant was first created.
      x-internal: false
    UpdateMultipleListingsReq:
      type: array
      items:
        $ref: '#/components/schemas/UpsertListingWithListingIdReq'
      x-internal: false
    ChannelListingVariantDateModified:
      type: string
      format: date-time
      description: Date on which the channel listing variant was most recently changed.
      x-internal: false
    ChannelProductName:
      type: string
      description: Name of the product for this channel listing specifically. This is an optional field that can be used to override the product name in the catalog.
      x-internal: false
    VariantState:
      type: string
      description: The state of the channel listing variant.
      enum:
      - active
      - disabled
      - error
      - pending
      - pending_disable
      - pending_delete
      - queued
      - rejected
      - submitted
      - deleted
      x-internal: false
    Error:
      type: object
      description: 'Error response payload for the BigCommerce API.

        '
      properties:
        status:
          type: integer
          format: int32
          description: 'The HTTP status code for the error.

            '
          example: 422
        title:
          type: string
          description: 'The error title describing the particular error.

            '
          example: Bulk operation has failed
        type:
          type: string
          description: 'The error type.

            '
          example: https://developer.bigcommerce.com/api-docs/getting-started/api-status-codes
        errors:
          $ref: '#/components/schemas/ErrorDetail'
    ChannelProductMultipleVariants:
      type: array
      items:
        $ref: '#/components/schemas/ChannelProductVariantPartial'
      x-internal: false
    CreateMultipleListingsReq:
      type: array
      items:
        $ref: '#/components/schemas/UpsertListingWithoutListingIdReq'
      x-internal: false
    VariantId:
      type: integer
      format: int64
      description: The ID of the product variant associated with this channel listing.
      x-internal: false
    ChannelListingDateModified:
      type: string
      format: date-time
      description: Date on which the channel listing was most recently changed.
      x-internal: false
    ChannelProductDescription:
      type: string
      description: Description of the product for this channel listing specifically. This is an optional field that can be used to override the product description in the catalog.
      x-internal: false
    ChannelIdForListing:
      type: integer
      format: int64
      description: The ID of the channel associated with this channel listing.
      x-internal: false
    ListingId:
      type: integer
      format: int64
      minimum: 1
      description: The ID of the channel listing that has been created, returned, or updated. In a 422 error, you may receive a response that references the `group_id`. The `group_id` in the Invalid Listing ID example refers to the `listing_id`. Please use `listing_id` instead of `group_id` in the request payload.
      x-internal: false
    Listing:
      type: object
      properties:
        channel_id:
          $ref: '#/components/schemas/ChannelIdForListing'
        listing_id:
          $ref: '#/components/schemas/ListingId'
        external_id:
          $ref: '#/components/schemas/ExternalId'
        product_id:
          $ref: '#/components/schemas/ProductId'
        state:
          $ref: '#/components/schemas/ListingState'
        name:
          $ref: '#/components/schemas/ChannelProductName'
        description:
          $ref: '#/components/schemas/ChannelProductDescription'
        date_created:
          $ref: '#/components/schemas/ChannelListingDateCreated'
        date_modified:
          $ref: '#/components/schemas/ChannelListingDateModified'
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ChannelProductVariantFull'
      x-internal: false
    ExternalId:
      type: string
      description: Associated ID within a system / platform outside of BC.
      x-internal: false
    MetaWithPartialPagination:
      type: object
      description: Data about the response, including pagination.
      properties:
        pagination:
          $ref: '#/components/schemas/pagination_Partial'
      x-internal: false
    ProductId:
      type: integer
      format: int64
      description: The ID of the product associated with this channel listing.
      x-internal: false
    ErrorDetail:
      type: object
      description: 'Error detail response payload for the BigCommerce API.

        '
      example:
        '1': Unauthorized to delete
        '2': Metafield does not exist
    EmptyMeta:
      type: object
      title: Empty meta response.
      properties: {}
      additionalProperties: true
      description: Response metadata.
    ChannelProductVariantName:
      type: string
      description: Name of the product variant for this channel listing specifically. This is an optional field that can be used to override the name of the product variant in the catalog.
      x-internal: false
    UpsertListingWithoutListingIdReq:
      type: object
      description: Details about assigning a product to a specific channel.
      properties:
        product_id:
          $ref: '#/components/schemas/ProductId'
        external_id:
          $ref: '#/components/schemas/ExternalId'
        state:
          $ref: '#/components/schemas/ListingState'
        name:
          $ref: '#/components/schemas/ChannelProductName'
        description:
          $ref: '#/components/schemas/ChannelProductDescription'
        variants:
          $ref: '#/components/schemas/ChannelProductMultipleVariants'
      required:
      - product_id
      - state
      - variants
      x-internal: false
    ListingState:
      type: string
      description: The state of the product assignment or channel listing.
      enum:
      - active
      - disabled
      - error
      - pending
      - pending_disable
      - pending_delete
      - partially_rejected
      - queued
      - rejected
      - submitted
      - deleted
      x-internal: false
    ChannelProductVariantDescription:
      type: string
      description: Description of the product variant for this channel listing specifically. This is an optional field that can be used to override the description of the product variant in the catalog.
      x-internal: false
    pagination_Partial:
      type: object
      description: 'Data about the pagination.

        '
      properties:
        count:
          type: integer
          description: 'Total number of items in the collection response.

            '
        total:
          type: integer
          description: 'Total number of items in the result set.

            '
        links:
          type: object
          description: 'Pagination links for the previous, current, or next parts of the whole collection.

            '
          properties:
            previous:
              type: string
              description: 'Link to the previous page returned in the response.

                '
            current:
              type: string
              description: 'Link to the current page returned in the response.

                '
            next:
              type: string
              description: 'Link to the next page returned in the response.

                '
        total_pages:
          type: integer
          description: 'The total number of pages in the collection.

            '
      x-internal: false
    ChannelProductVariantFull:
      type: object
      description: Details about a variant of the product for this channel listing.
      properties:
        channel_id:
          $ref: '#/components/schemas/ChannelIdForListing'
        product_id:
          $ref: '#/components/schemas/ProductId'
        variant_id:
          $ref: '#/components/schemas/VariantId'
        external_id:
          $ref: '#/components/schemas/ExternalId'
        state:
          $ref: '#/components/schemas/VariantState'
        name:
          $ref: '#/components/schemas/ChannelProductVariantName'
        description:
          $ref: '#/components/schemas/ChannelProductVariantDescription'
        date_created:
          $ref: '#/components/schemas/ChannelListingVariantDateCreated'
        date_modified:
          $ref: '#/components/schemas/ChannelListingVariantDateModified'
      x-internal: false
    ChannelProductVariantPartial:
      type: object
      description: Details about a variant of the product for this channel listing.
      properties:
        product_id:
          $ref: '#/components/schemas/ProductId'
        variant_id:
          $ref: '#/components/schemas/VariantId'
        external_id:
          $ref: '#/components/schemas/ExternalId'
        state:
          $ref: '#/components/schemas/VariantState'
        name:
          $ref: '#/components/schemas/ChannelProductVariantName'
        description:
          $ref: '#/components/schemas/ChannelProductVariantDescription'
      required:
      - product_id
      - variant_id
      - state
      x-internal: false
    UpsertListingWithListingIdReq:
      type: object
      description: Details about assigning a product to a specific channel.
      properties:
        listing_id:
          $ref: '#/components/schemas/ListingId'
        product_id:
          $ref: '#/components/schemas/ProductId'
        external_id:
          $ref: '#/components/schemas/ExternalId'
        state:
          $ref: '#/components/schemas/ListingState'
        name:
          $ref: '#/components/schemas/ChannelProductName'
        description:
          $ref: '#/components/schemas/ChannelProductDescription'
        variants:
          $ref: '#/components/schemas/ChannelProductMultipleVariants'
      required:
      - listing_id
      - product_id
      - state
      - variants
      x-internal: false
    ChannelListingDateCreated:
      type: string
      format: date-time
      description: Date on which the channel listing was first created.
      x-internal: false
  responses:
    missing_or_invalid_multiple_listings_data_for_put_resp:
      description: The request is missing one or more required fields or invalid data is submitted. Note that the `group_id` in the Invalid Listing ID example refers to `listing_id`. Please use `listing_id` instead of `group_id` in the request payload.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Product ID Mismatch:
              $ref: '#/components/examples/error_422_product_id_mismatch_resp_example'
            Missing Required Fields For Channel Listing:
              $ref: '#/components/examples/error_422_missing_listing_required_fields_resp_example'
            Missing Required Fields For Variants:
              $ref: '#/components/examples/error_422_missing_listing_variants_required_fields_resp_example'
            Invalid Channel ID:
              $ref: '#/components/examples/error_422_invalid_channel_id_v2_resp_example'
            Invalid Listing ID:
              $ref: '#/components/examples/error_422_invalid_listing_id_resp_example'
    single_and_multiple_listings_resp:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/Listing'
              meta:
                $ref: '#/components/schemas/MetaWithPartialPagination'
          examples:
            Single Listing:
              $ref: '#/components/examples/single_listing_resp_example'
            Multiple Listings:
              $ref: '#/components/examples/multiple_listings_resp_example'
    invalid_channel_id_resp:
      description: Invalid channel ID is provided.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Invalid Channel ID:
              $ref: '#/components/examples/error_400_resp_example'
    single_listing_resp:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/Listing'
              meta:
                $ref: '#/components/schemas/EmptyMeta'
          examples:
            response:
              $ref: '#/components/examples/single_listing_with_empty_meta_resp_example'
    listing_not_found_resp:
      description: A *Channel Listing* with the provided channel ID and listing ID was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Listing Not Found:
              $ref: '#/components/examples/error_404_listing_not_found_resp_example'
    missing_or_invalid_multiple_listings_data_for_post_resp:
      description: The request is missing one or more required fields or invalid data is submitted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Product ID Mismatch:
              $ref: '#/components/examples/error_422_product_id_mismatch_resp_example'
            Missing Required Fields For Channel Listing:
              $ref: '#/components/examples/error_422_missing_listing_required_fields_resp_example'
            Missing Required Fields For Variants:
              $ref: '#/components/examples/error_422_missing_listing_variants_required_fields_resp_example'
            Invalid Channel ID:
              $ref: '#/components/examples/error_422_invalid_channel_id_v2_resp_example'
    invalid_filters_resp:
      description: When an invalid value or invalid query parameter is submitted, a 422 response will be sent.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Invalid Filters:
              $ref: '#/components/examples/error_422_invalid_filters_resp_example'
            Invalid Filter Value:
              $ref: '#/components/examples/error_422_invalid_filter_value_resp_example'
  parameters:
    ContentType:
      name: Content-Type
      in: header
      required: true
      description: The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the request body.
      schema:
        type: string
        default: application/json
    Accept:
      name: Accept
      in: header
      required: true
      description: The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body.
      schema:
        type: string
        default: application/json
    date_modified:
      name: date_modified
      description: Filter items by date_modified. For example, `date_modified=2019-09-04T00:00:00`, `date_modified=2019-09-04`, or `date_modified=1567573200`
      in: query
      required: false
      schema:
        type: string
    limit:
      name: limit
      description: Controls the number of items per page for paginated responses.
      in: query
      required: false
      schema:
        type: integer
    listing_id_path_param:
      name: listing_id
      description: The ID of a channel listing.
      in: path
      required: true
      schema:
        type: integer
        format: int64
    date_created:
      name: date_created
      description: Filter items by date_created. For example, `date_created=2019-09-04T00:00:00`, `date_created=2019

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