Boxc Products API

The Products resource allows users to add their products to the BoxC system. A product can have one or more Stock Keeping Units (SKUs). This gives users the ability to link their different shops' SKUs to the same product. There can only be one active SKU per shop per product. Orders won't be fulfilled until the warehouse accepts and processes your products. This includes measuring the weight and dimensions, and updating the quantity. **Note:** Products and SKUs linked to orders can't be deleted. Existing SKUs can't be assigned to a different shop.

Operations 8

GET /products GET /products #
POST /products POST /products #
GET /products/{id} GET /products/{id} #
PUT /products/{id} PUT /products/{id} #
DELETE /products/{id} DELETE /products/{id} #
POST /products/{id}/skus POST /products/{id}/skus #
PUT /products/{id}/shop/{shopId}/sku/{sku} PUT /products/{id}/shop/{shopId}/sku/{sku} #
DELETE /products/{id}/shop/{shopId}/sku/{sku} DELETE /products/{id}/shop/{shopId}/sku/{sku} #

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/boxc-products-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

boxc-products-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://storage.googleapis.com/boxc_cdn/public/boxc-logo.png
    altText: BoxC
  title: BoxC CalculateDuty Products API
  version: '1.123'
  description: 'A simple but powerful logistics API that drives international ecommerce by utilizing a single integration with access to dozens of carriers and global markets. BoxC can complete every leg or only select steps of a shipment''s journey on your behalf with our routing engine.

    '
servers:
- url: https://api.boxc.com/v1
tags:
- name: Products
  x-displayName: Products
  description: 'The Products resource allows users to add their products to the BoxC system. A product can have one or more Stock Keeping Units (SKUs). This gives users the ability to link their different shops'' SKUs to the same product. There can only be one active SKU per shop per product. Orders won''t be fulfilled until the warehouse accepts and processes your products. This includes measuring the weight and dimensions, and updating the quantity.


    **Note:** Products and SKUs linked to orders can''t be deleted. Existing SKUs can''t be assigned to a different shop.'
paths:
  /products:
    get:
      tags:
      - Products
      summary: GET /products
      description: Retrieves a paginated list of products.
      operationId: getProducts
      parameters:
      - in: query
        name: limit
        description: The number of results to return.
        required: false
        schema:
          type: integer
          default: 50
          maximum: 100
          minimum: 50
      - in: query
        name: order
        description: The sort order of the results.
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
      - in: query
        name: name
        description: Filter that searches for products with a similar name.
        required: false
        schema:
          type: string
          default: null
      - in: query
        name: page_token
        description: Used for selecting the page after the initial query.
        required: false
        schema:
          type: string
      - in: query
        name: shop.id
        description: Filter that selects products for a shop with the matching Shop ID. Products for all shops are returned by default.
        required: false
        schema:
          type: string
          default: null
          maxLength: 32
      - in: query
        name: sku
        description: Filter that searches for products with a matching SKU.
        required: false
        schema:
          type: string
          default: null
      - in: query
        name: sort
        description: The property to sort the results by.
        required: false
        schema:
          type: string
          enum:
          - id
          - name
          - backordered
          - quantity
          default: id
      security:
      - JWT:
        - read_products
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Accept: application/json\" \\\n  https://api.boxc.com/v1/products\\?limit=50\\&order=desc\\&sort=id\n"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  products:
                    type: array
                    items:
                      $ref: '#/components/schemas/Product'
                  next_page:
                    type: string
                    description: Page token
                    example: ZGF0ZV9lbmQ9MjAyMy0wNy0yOCZsaW1pdD01MCZvcmRlcj1kZXNjJnBhZ2U9MSZsYXN0X2lkPTE1Mzg0Nw
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                invalidToken:
                  summary: Bad Request
                  description: Invalid page token
                  value:
                    code: 1025
                    message: Invalid page token
                    errors:
                    - Invalid page token
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '429':
          $ref: '#/components/schemas/RateLimit'
    post:
      tags:
      - Products
      summary: POST /products
      description: Creates a product.
      operationId: addProduct
      security:
      - JWT:
        - write_products
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X POST https://api.boxc.com/v1/products \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"product\": {\n      \"barcode\": \"4011200296908\",\n      \"coo\": \"CN\",\n      \"cost\": 2.25,\n      \"description\": \"100% Cotton Shirt\",\n      \"dg_code\": \"0966\",\n      \"hs_codes\": [\n        {\n          \"country\": \"US\",\n          \"hs_code\": \"3109165102\"\n        },\n        {\n          \"country\": \"CN\",\n          \"hs_code\": \"0302410090\"\n        }\n      ],\n      \"local_descriptions\": [\n        {\n          \"description\": \"100% Cotton T-Shirt\",\n          \"language_code\": \"en\"\n        },\n        {\n          \"description\": \"毛衣\",\n          \"language_code\": \"zh\"\n        }\n      ],\n      \"name\": \"XL Pink T-Shirt\",\n      \"supplier\": \"US123456789\",\n      \"url\": \"https://example.com/product/1234\",\n      \"value\": 19.99\n    }\n  }'\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product:
                  $ref: '#/components/schemas/Product'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  product:
                    $ref: '#/components/schemas/ProductWarehouse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                validation:
                  summary: Validation error
                  description: The request schema is invalid.
                  value:
                    code: 1000
                    message: 'Validation Error. /product: The required properties (coo) are missing'
                    status: error
                    errors:
                    - '/product: The required properties (coo) are missing'
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '429':
          $ref: '#/components/schemas/RateLimit'
  /products/{id}:
    get:
      tags:
      - Products
      summary: GET /products/{id}
      description: Retrieves a product.
      operationId: getProductsById
      security:
      - JWT:
        - read_products
      parameters:
      - name: Accept
        in: header
        required: false
        schema:
          type: string
          example: application/pdf
          enum:
          - application/json
          - application/pdf
        description: Optionally download the product barcode.
      - in: query
        name: type
        description: The data stream type for downloading the product barcode.
        required: false
        deprecated: true
        example: PDF
        schema:
          type: string
          enum:
          - PDF
      - in: query
        name: height
        description: The height of the barcode in inches.
        required: false
        schema:
          type: decimal
          default: 1
          maximum: 4
          minimum: 0.5
      - in: query
        name: width
        description: The width of the barcode in inches.
        schema:
          type: decimal
          default: 2
          maximum: 4
          minimum: 0.5
      - name: id
        in: path
        description: The product ID
        required: true
        schema:
          type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"accept: application/json\" \\\n  https://api.boxc.com/v1/products/{id}\n"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  product:
                    $ref: '#/components/schemas/ProductWarehouse'
            application/pdf:
              type: string
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Product not found
                  value:
                    code: 1332
                    message: Product not found
                    errors:
                    - Product not found
        '429':
          $ref: '#/components/schemas/RateLimit'
    put:
      tags:
      - Products
      summary: PUT /products/{id}
      description: Updates a product.
      operationId: updateProduct
      security:
      - JWT:
        - write_products
      parameters:
      - name: id
        in: path
        description: The product ID
        required: true
        schema:
          type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X PUT https://api.boxc.com/v1/products/{id} \\\n    -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n      \"product\": {\n        \"barcode\": \"4011200296908\",\n        \"coo\": \"CN\",\n        \"cost\": 2.25,\n        \"description\": \"100% Cotton Shirt\",\n        \"dg_code\": \"0966\",\n        \"hs_codes\": [\n          {\n            \"country\": \"US\",\n            \"hs_code\": \"3109165102\"\n          },\n          {\n            \"country\": \"CN\",\n            \"hs_code\": \"0302410090\"\n          }\n        ],\n        \"local_descriptions\": [\n          {\n            \"description\": \"100% Cotton T-Shirt\",\n            \"language_code\": \"en\"\n          },\n          {\n            \"description\": \"毛衣\",\n            \"language_code\": \"zh\"\n          }\n        ],\n        \"name\": \"XL Pink T-Shirt\",\n        \"supplier\": \"US123456789\",\n        \"url\": \"https://example.com/product/1234\",\n        \"value\": 19.99\n      }\n    }'\n"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                product:
                  $ref: '#/components/schemas/Product'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  product:
                    $ref: '#/components/schemas/ProductWarehouse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                validation:
                  summary: Validation error
                  description: The request schema is invalid.
                  value:
                    code: 1000
                    message: 'Validation Error. /product: The required properties (coo) are missing'
                    status: error
                    errors:
                    - '/product: The required properties (coo) are missing'
                barcode:
                  summary: Bad Request
                  description: Contact support to update barcode for Product
                  value:
                    code: 1338
                    message: Contact support to update barcode for Product
                    errors:
                    - Contact support to update barcode for Product
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Product not found
                  value:
                    code: 1332
                    message: Product not found
                    errors:
                    - Product not found
        '429':
          $ref: '#/components/schemas/RateLimit'
    delete:
      tags:
      - Products
      summary: DELETE /products/{id}
      description: Deletes a product.
      operationId: deleteProduct
      security:
      - JWT:
        - write_products
      parameters:
      - name: id
        in: path
        description: The product ID
        required: true
        schema:
          type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X DELETE https://api.boxc.com/v1/products/{id} \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\"\n"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                cannotDelete:
                  summary: Bad Request
                  description: Product can't be deleted because it's being used
                  value:
                    code: 1333
                    message: Product can't be deleted because it's being used
                    errors:
                    - Product can't be deleted because it's being used
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Product not found
                  value:
                    code: 1332
                    message: Product not found
                    errors:
                    - Product not found
        '429':
          $ref: '#/components/schemas/RateLimit'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
              examples:
                internalServerError:
                  summary: Internal Server Error
                  description: Product can't be deleted
                  value:
                    code: 1333
                    message: Product can't be deleted
                    errors:
                    - Product can't be deleted
  /products/{id}/skus:
    post:
      tags:
      - Products
      summary: POST /products/{id}/skus
      description: Adds a SKU to a product.
      operationId: addProductSku
      security:
      - JWT:
        - write_products
      parameters:
      - name: id
        in: path
        description: The product ID
        required: true
        schema:
          type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X POST https://api.boxc.com/v1/products/{id}/skus \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"sku\": {\n      \"active\": true,\n      \"shop_id\": \"<YOUR SHOP ID>\",\n      \"sku\": \"<PRODUCT SKU>\"\n    }\n  }'\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sku:
                  $ref: '#/components/schemas/Sku'
              required:
              - sku
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  product:
                    $ref: '#/components/schemas/ProductWarehouse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                validation:
                  summary: Validation error
                  description: The request schema is invalid.
                  value:
                    code: 1000
                    message: 'Validation Error. /sku: The required properties (shop_id) are missing'
                    status: error
                    errors:
                    - '/sku: The required properties (shop_id) are missing'
                missingShop:
                  summary: Bad Shop Request
                  description: Shop not found
                  value:
                    code: 1370
                    message: Shop not found
                    errors:
                    - Shop not found
                skuInUse:
                  summary: Bad SKU Request
                  description: SKU for Shop is already in use
                  value:
                    code: 1334
                    message: SKU for Shop is already in use
                    errors:
                    - SKU for Shop is already in use
                productSku:
                  summary: Bad Product/SKU Request
                  description: Only one SKU can be active for Product in Shop
                  value:
                    code: 1337
                    message: Only one SKU can be active for Product in Shop
                    errors:
                    - Only one SKU can be active for Product in Shop
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Product not found
                  value:
                    code: 1332
                    message: Product not found
                    errors:
                    - Product not found
        '429':
          $ref: '#/components/schemas/RateLimit'
  /products/{id}/shop/{shopId}/sku/{sku}:
    put:
      tags:
      - Products
      summary: PUT /products/{id}/shop/{shopId}/sku/{sku}
      description: Updates an existing SKU for a given product and shop.
      operationId: updateProductSku
      security:
      - JWT:
        - write_products
      parameters:
      - name: id
        in: path
        description: The product ID
        required: true
        schema:
          type: integer
      - name: shopId
        in: path
        description: The shop ID
        required: true
        schema:
          type: string
          maxLength: 32
      - name: sku
        in: path
        description: The product SKU
        required: true
        schema:
          type: string
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X PUT https://api.boxc.com/v1/products/{id}/shop/{shopId}/sku/{sku} \\\n    -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n      \"sku\": {\n        \"active\": false,\n        \"sku\": \"<PRODUCT SKU>\"\n      }\n    }'\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sku:
                  type: object
                  properties:
                    active:
                      description: Whether or not this SKU is active. Orders with an inactive SKU will not be imported or created.
                      type: boolean
                      default: true
                      example: true
                    sku:
                      description: The SKU identifier
                      type: string
                      minLength: 3
                      maxLength: 32
                      example: SK10291
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  product:
                    $ref: '#/components/schemas/ProductWarehouse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                validation:
                  summary: Validation error
                  description: The request schema is invalid.
                  value:
                    code: 1000
                    message: 'Validation Error. /sku: The required properties (active) are missing'
                    status: error
                    errors:
                    - '/sku: The required properties (active) are missing'
                missingShop:
                  summary: Bad Shop Request
                  description: Shop not found
                  value:
                    code: 1370
                    message: Shop not found
                    errors:
                    - Shop not found
                skuInUse:
                  summary: Bad SKU Request
                  description: SKU for Shop is already in use
                  value:
                    code: 1334
                    message: SKU for Shop is already in use
                    errors:
                    - SKU for Shop is already in use
                productSku:
                  summary: Bad Product/SKU Request
                  description: Only one SKU can be active for Product in Shop
                  value:
                    code: 1337
                    message: Only one SKU can be active for Product in Shop
                    errors:
                    - Only one SKU can be active for Product in Shop
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Product not found
                  value:
                    code: 1332
                    message: Product not found
                    errors:
                    - Product not found
                skuNotFound:
                  summary: SKU Not Found
                  description: SKU does not exist in Shop
                  value:
                    code: 1330
                    message: SKU does not exist in Shop
                    errors:
                    - SKU does not exist in Shop
        '429':
          $ref: '#/components/schemas/RateLimit'
    delete:
      tags:
      - Products
      summary: DELETE /products/{id}/shop/{shopId}/sku/{sku}
      description: Deletes a SKU if it's not being used by orders.
      operationId: deleteProductSku
      security:
      - JWT:
        - write_products
      parameters:
      - name: id
        in: path
        description: The product ID
        required: true
        schema:
          type: integer
      - name: shopId
        in: path
        description: The shop ID
        required: true
        schema:
          type: string
          maxLength: 32
      - name: sku
        in: path
        description: The product SKU
        required: true
        schema:
          type: string
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X DELETE https://api.boxc.com/v1/products/{id}/shop/{shopId}/sku/{sku} \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\"\n"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                cannotDelete:
                  summary: Bad Request
                  description: SKU can't be deleted
                  value:
                    code: 1335
                    message: SKU can't be deleted
                    errors:
                    - SKU can't be deleted
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                skuNotFound:
                  summary: SKU Not Found
                  description: SKU does not exist in Shop
                  value:
                    code: 1330
                    message: SKU does not exist in Shop
                    errors:
                    - SKU does not exist in Shop
                notFound:
                  summary: Product Not Found
                  description: Product not found
                  value:
                    code: 1332
                    message: Product not found
                    errors:
                    - Product not found
        '429':
          $ref: '#/components/schemas/RateLimit'
components:
  schemas:
    product-warehouse:
      type: object
      description: Information about the product and warehouse the inbound shipment is being sent to.
      properties:
        backordered:
          description: The quantity that's backordered for this product.
          type: integer
          example: 43
          readOnly: true
        barcode:
          description: The barcode for this product such as UPC, EAN, ISBN, etc.
          type: string
          maxLength: 32
          default: Product ID
          example: 4011200296908
        coo:
          description: The country of origin or where the product was manufactured in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format for Customs
          type: string
          maxLength: 2
          minLength: 2
          example: CN
        cost:
          description: The product cost value in USD. Important for insurance claims.
          type: decimal
          default: 0
          example: 2.25
        created:
          description: The date and time the shipment was created.
          type: string
          example: '2024-06-20 10:11:12'
          readOnly: true
        description:
          description: The product description for reference.
          type: string
          maxLength: 64
          example: 100% Cotton Shirt
        dg_code:
          description: A code that identifies dangerous goods. Required if shipping lithium batteries, ORM-D, or other dangerous goods. Refer to [this page](/#tag/DangerousGoods) for a list of codes and further information.
          type: string
          example: 0966
        height:
          description: The product height in CM.
          type: integer
          example: 5
          readOnly: true
        hs_codes:
          description: An array of objects containing HS codes used for Customs clearance in different countries. Some countries or services require an HS code for import and/or export. Optional. Remove countries' HS codes from the product by omitting the objects you no longer want associated in an update request. Remove all HS codes by passing an empty array.
          type: array
          items:
            type: object
            properties:
              country:
                type: string
                example: US
              hs_code:
                type: string
                example: 3109165102
            required:
            - country
            - hs_code
          example:
          - country: US
            hs_code: '3109165102'
          - country: CN
            hs_code: 0302410090
        id:
          description: The product ID.
          type: integer
          example: 20191
          readOnly: true
        is_packaging:
          description: Indicates if this product is using for packaging at the warehouse. Immutable. Optional.
          type: boolean
          default: false
          example: false
        length:
          description: The product length in CM.
          type: integer
          example: 12
          readOnly: true
        name:
          description: The product name to help identify the product.
          type: string
          maxLength: 64
          minLength: 3
          example: XL Pink T-Shirt
        quantity:
          description: The quantity on hand across all warehouses.
          type: integer
          example: 544
          readOnly: true
        skus:
          description: An array of SKUs that reference this product.
          type: array
          items:
            $ref: '#/components/schemas/Sku'
            example:
            - active: true
              shop_id: my-shop
              sku: SK10291
            - active: false
              shop_id: my-shop
              sku: 08X092
        supplier:
          type: string
          maxLength: 32
          example: US1234567890
          default: null
        value:
          description: The product retail value in USD.
          type: decimal
          example: 19.99
        warehouses:
          description: An array of warehouses and their inventory for this product. Only present when retrieving a single product.
          type: array
          items:
            $ref: '#/components/schemas/Warehouse'
            example:
            - description: 毛衣
              entry_point: HKG101
              id: WH0HK001
              language: Chinese
              language_code: zh
              quantity: 102
            - description: 毛衣
              entry_point: SZX001
              id: WH0SZ001
              language: Chinese
              language_code: zh
              quantity: 0
        weight:
          description: The product weight in KG.
          type: decimal
          example: 0.325
          readOnly: true
        width:
          description: The product width in CM.
          type: integer
          example: 10
          readOnly: true
      required:
      - coo
      - description
      - name
      - skus
      - value
    rate-limit:
      description: Too Many Requests
      content:
        application/json:
          schema:
            type: object
            summary: Too Many Requests
            description: Error for too many requests in a given time frame. See [Rate Limits](/#tag/RateLimit) for more information.
            properties:
              code:
                description: Error code. Refer to the list of [Errors](/#tag/Errors).
                type: integer
              message:
                description: Error message explaining the code.
                type: string
              status:
                type: string
                enum:
                - error
                example: error
              errors:
                description: Displays processing error.
                type: array
                minItems: 1
                maxItems: 1
                items:
                  type: string
          examples:
            rateLimit:
              summary: Too Many Requests
              description: Too many requests. Please wait before trying again.
              value:
                code: 1015
                message: Too many requests. Please wait before trying a

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