> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipstream.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List Product Profile member Products

> Returns the current materialized Product membership. The request does not evaluate conditions;
after creating a Profile or changing its conditions, poll it until classification is
`up_to_date`. Product changes are classified through a separate asynchronous changelog, so a
recently changed Product may not immediately enter or leave this member set. The default page
size is 50 and the maximum is 250.



## OpenAPI

````yaml GET /v1/inventory/product-profiles/{id}/products
openapi: 3.0.3
info:
  title: ShipStream
  version: '1.0'
  license:
    name: Commercial (Copyright 2025 - All Rights Reserved)
    url: https://shipstream.io
  contact:
    name: ShipStream Support
    email: help@shipstream.io
  termsOfService: https://shipstream.io/legal/api-terms/
servers:
  - url: https://{base_url_domain}/api/global
    description: Direct API Url
    variables:
      base_url_domain:
        default: example.shipstream.app
        description: >-
          The fully qualified domain name for your ShipStream WMS instance. This
          is either a custom domain, or a subdomain of shipstream.app,

          and will be the same as the domain name for the page which you use to
          login to ShipStream WMS.
security:
  - ShipStream_bearerAuth: []
tags:
  - name: Warehouses
    x-displayName: Warehouses
  - name: Products
    x-displayName: Products
  - name: ProductProfiles
    x-displayName: ProductProfiles
  - name: HandlingClasses
    x-displayName: HandlingClasses
  - name: Locations
    x-displayName: Locations
  - name: LocationTags
    x-displayName: LocationTags
  - name: SlotTypes
    x-displayName: SlotTypes
  - name: Levels
    x-displayName: Levels
  - name: HoldReasons
    x-displayName: HoldReasons
  - name: Holds
    x-displayName: Holds
  - name: Replenishment
    x-displayName: Replenishment
  - name: LocationProfiles
    x-displayName: LocationProfiles
  - name: SlottingRules
    x-displayName: SlottingRules
  - name: Deliveries
    description: Every thing about a Delivery Receiving
    x-displayName: Deliveries
  - name: Shipments
    x-displayName: Shipments
  - name: Orders
    x-displayName: Orders
  - name: Retailers
    x-displayName: Retailers
  - name: Users
    x-displayName: Users
  - name: User Roles
    x-displayName: User Roles
  - name: Merchants
    x-displayName: Merchants
  - name: Healthcheck
    x-displayName: Healthcheck
paths:
  /v1/inventory/product-profiles/{id}/products:
    get:
      tags:
        - ProductProfiles
      summary: List Product Profile member Products
      description: >-
        Returns the current materialized Product membership. The request does
        not evaluate conditions;

        after creating a Profile or changing its conditions, poll it until
        classification is

        `up_to_date`. Product changes are classified through a separate
        asynchronous changelog, so a

        recently changed Product may not immediately enter or leave this member
        set. The default page

        size is 50 and the maximum is 250.
      operationId: listProductProfileProducts
      parameters:
        - name: id
          in: path
          required: true
          description: Product Profile ID.
          schema:
            type: integer
            format: int32
            minimum: 1
            example: 26
        - $ref: >-
            #/components/parameters/Inventory_API_v1_product-profile-member-fields
        - $ref: '#/components/parameters/Inventory_API_v1_fields-merchant'
        - $ref: '#/components/parameters/Inventory_API_v1_fields-merchant-brands'
        - $ref: >-
            #/components/parameters/Inventory_API_v1_fields-merchant-default_brand
        - $ref: '#/components/parameters/Inventory_API_v1_fields-lot_type'
        - $ref: '#/components/parameters/Inventory_API_v1_product-filter'
        - name: sort
          in: query
          required: false
          schema:
            type: string
          description: |-
            The default sort is ascending by `id`. Available fields are:
              - `id`
        - $ref: '#/components/parameters/Inventory_API_v1_count'
        - $ref: '#/components/parameters/Inventory_API_v1_cursor_end'
        - $ref: '#/components/parameters/Inventory_API_v1_cursor_start'
        - name: limit
          in: query
          required: false
          description: Maximum number of member Products to return.
          schema:
            type: integer
            minimum: 1
            maximum: 250
            default: 50
      responses:
        '200':
          description: A cursor-paginated collection of materialized member Products.
          content:
            application/json:
              schema:
                type: object
                properties:
                  collection:
                    type: array
                    items:
                      allOf:
                        - description: >-
                            A Product currently materialized as a member of this
                            Product Profile.
                        - $ref: >-
                            #/components/schemas/Inventory_API_v1_ProductProfileMember
                  included:
                    $ref: '#/components/schemas/Inventory_API_v1_products'
                  has_more:
                    $ref: '#/components/schemas/Inventory_API_v1_has_more'
                  next:
                    $ref: '#/components/schemas/Inventory_API_v1_next'
                  previous:
                    $ref: '#/components/schemas/Inventory_API_v1_previous'
                  meta:
                    $ref: '#/components/schemas/Inventory_API_v1_meta'
              example:
                collection:
                  - type: Product
                    id: 18427
                    sku: TSHIRT-BLK-M
                    name: Cotton T-Shirt - Black / Medium
                    is_enabled: true
                    merchant:
                      type: Merchant
                      id: 4
                included:
                  Merchant:
                    - type: Merchant
                      id: 4
                      code: acme_inc
                      name: ACME Inc.
                      status: active
                has_more: false
                next: null
                previous: null
                meta:
                  processing_time: 0.0081
                  cursor_start: null
                  cursor_end: null
        '400':
          $ref: >-
            #/components/responses/Inventory_API_v1_400-product-profile-bad-request
        '404':
          $ref: '#/components/responses/Inventory_API_v1_404-not-found'
        '500':
          $ref: '#/components/responses/Inventory_API_v1_500-internal-server-error'
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request GET \
              --url 'https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50' \
              --header 'Authorization: Bearer <token>'
        - lang: python
          label: Python
          source: >-
            import requests


            url =
            "https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50"

            headers = {"Authorization": "Bearer <token>"}


            response = requests.get(url, headers=headers)

            print(response.text)
        - lang: javascript
          label: JavaScript
          source: >-
            const options = {method: 'GET', headers: {Authorization: 'Bearer
            <token>'}};


            fetch('https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50',
            options)
              .then(response => response.json())
              .then(response => console.log(response));
        - lang: php
          label: PHP
          source: >-
            <?php


            $curl = curl_init();

            curl_setopt($curl, CURLOPT_URL,
            'https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50');

            curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

            curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer
            <token>']);


            $response = curl_exec($curl);

            curl_close($curl);

            echo $response;
        - lang: go
          label: Go
          source: |-
            package main

            import (
                "fmt"
                "io"
                "net/http"
            )

            func main() {
                req, _ := http.NewRequest("GET", "https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50", nil)
                req.Header.Add("Authorization", "Bearer <token>")
                response, _ := http.DefaultClient.Do(req)
                defer response.Body.Close()
                body, _ := io.ReadAll(response.Body)
                fmt.Println(string(body))
            }
        - lang: java
          label: Java
          source: >-
            HttpResponse<String> response =
            Unirest.get("https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50")
              .header("Authorization", "Bearer <token>")
              .asString();
        - lang: ruby
          label: Ruby
          source: >-
            require 'uri'

            require 'net/http'


            url =
            URI('https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50')

            request = Net::HTTP::Get.new(url)

            request['Authorization'] = 'Bearer <token>'


            response = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do
            |http|
              http.request(request)
            end

            puts response.read_body
components:
  parameters:
    Inventory_API_v1_product-profile-member-fields:
      name: fields
      in: query
      required: false
      description: >-
        Specify additional fields of the member `Product` objects to include in
        the response.

        See the [selecting fields](/global-api/selecting-fields) page for more
        information.
      explode: false
      schema:
        $ref: >-
          #/components/schemas/Inventory_API_v1_product-profile-member-fields-enum
    Inventory_API_v1_fields-merchant:
      name: fields:merchant
      in: query
      required: false
      description: >-
        Specify additional fields of the `Merchant` object to be included in the
        response. See the [selecting fields](/global-api/selecting-fields) page
        for more information.
      explode: false
      schema:
        $ref: '#/components/schemas/Inventory_API_v1_merchant-fields-enum'
    Inventory_API_v1_fields-merchant-brands:
      name: fields:merchant.brands
      in: query
      required: false
      description: >-
        Specify additional fields of the `Brand` object to be included in the
        response. See the [selecting fields](/global-api/selecting-fields) page
        for more information.
      explode: false
      schema:
        $ref: '#/components/schemas/Inventory_API_v1_brand-fields-enum'
    Inventory_API_v1_fields-merchant-default_brand:
      name: fields:merchant.default_brand
      in: query
      required: false
      description: >-
        Specify additional fields of the `Brand` object to be included in the
        response. See the [selecting fields](/global-api/selecting-fields) page
        for more information.
      explode: false
      schema:
        $ref: '#/components/schemas/Inventory_API_v1_brand-fields-enum'
    Inventory_API_v1_fields-lot_type:
      name: fields:lot_type
      in: query
      required: false
      description: >-
        Specify additional fields of the `LotType` object to be included in the
        response. See the [selecting fields](/global-api/selecting-fields) page
        for more information.
      explode: false
      schema:
        $ref: '#/components/schemas/Inventory_API_v1_lot_type-fields-enum'
    Inventory_API_v1_product-filter:
      name: filter
      in: query
      description: >-
        Using the [filtering syntax](/global-api/filtering-syntax), you may
        filter the results using the following fields:
          - `id`
          - `name`
          - `is_enabled`
      style: form
      explode: true
      schema:
        type: array
        items:
          type: string
      required: false
      allowReserved: true
      examples:
        Simple:
          summary: Get list of Products that are enabled.
          value:
            - is_enabled:true
        Advanced:
          summary: Get list of Products where `sku` starts with "ABC"
          value:
            - sku{start:"ABC"}
        Advanced with AND logic:
          summary: Get list of Products where `id` is between 15 and 50
          value:
            - id{gt:15,lt:50}
        Advanced with OR logic:
          summary: >-
            Get list of Products where `name` ends with "CASE" or starts with
            "Box of"
          value:
            - name[{end:"CASE"},{start:"Box of"}]
    Inventory_API_v1_count:
      name: count
      in: query
      description: >-
        If specified as `1`, the `meta.count` property of the response will be
        present and populated with the total count of items

        matching the query before any paging is applied. This is not included by
        default to improve performance in some edge

        cases and is not required to perform paging using the `next` property of
        the response.

        See [paging parameters](/global-api/paging-parameters) for more
        information.
      style: form
      schema:
        type: integer
        minimum: 0
        maximum: 1
    Inventory_API_v1_cursor_end:
      name: cursor_end
      in: query
      description: >-
        A cursor for use in pagination which defines the last `id` of the next
        page of results, non-inclusive.

        See [paging parameters](/global-api/paging-parameters) for more
        information on paging.
      schema:
        type: integer
      style: form
    Inventory_API_v1_cursor_start:
      name: cursor_start
      in: query
      description: >-
        A cursor for use in pagination which defines the starting `id` of the
        next page of results.

        See [paging parameters](/global-api/paging-parameters) for more
        information on paging.
      schema:
        type: integer
      style: form
  schemas:
    Inventory_API_v1_ProductProfileMember:
      title: ProductProfileMember
      description: A regular Product materialized as a member of a Product Profile.
      allOf:
        - $ref: '#/components/schemas/Inventory_API_v1_Product'
    Inventory_API_v1_products:
      type: object
      description: >-
        Lists of referenced objects included by specifying optional fields.

        See the [selecting fields](/global-api/selecting-fields) page for more
        information.
      properties:
        LotType:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_LotType'
        Merchant:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Merchant'
    Inventory_API_v1_has_more:
      type: boolean
      description: |-
        True if the collection has more items on the next page.
        Use the "next" link to retrieve the next page of results.
    Inventory_API_v1_next:
      type: string
      nullable: true
      description: The resource path for the next page of results if any are expected.
    Inventory_API_v1_previous:
      type: string
      nullable: true
      description: The resource path for the previous page of results if any are expected.
    Inventory_API_v1_meta:
      type: object
      properties:
        processing_time:
          type: number
          description: Total time in which request is processed and response is sent back.
          example: 0.2525252525
        cursor_start:
          type: integer
          description: >-
            A cursor for use in pagination which defines the starting `id` of
            the next page of results.

            See [paging parameters](/global-api/paging-parameters) for more
            information on paging.
          nullable: true
        cursor_end:
          type: integer
          description: >-
            A cursor for use in pagination which defines the last `id` of the
            next page of results, non-inclusive.

            See [paging parameters](/global-api/paging-parameters) for more
            information on paging.
          nullable: true
        count:
          type: integer
          description: >-
            The total number of items matching the query before applying paging
            parameters.

            This field is only present if the query parameter `count=1` is
            present in the request.
      description: Additional metadata pertaining to the response.
    Inventory_API_v1_product-profile-member-fields-enum:
      title: Product Profile Member Product
      description: >-
        Specify additional fields of member `Product` objects to include in the
        response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - created_at
          - updated_at
          - vendor_sku
          - manufacturer_part_number
          - external_id
          - barcodes
          - goods_type
          - is_available
          - is_visible
          - weight
          - dimensions
          - volume
          - inventory
          - export
          - regulated_goods
          - packaging
          - custom_fields
    Inventory_API_v1_merchant-fields-enum:
      title: Merchant
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - code
          - name
          - status
          - created_at
          - updated_at
          - brands
          - default_brand
          - custom_fields
    Inventory_API_v1_brand-fields-enum:
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - code
          - name
          - is_active
          - is_deleted
          - sort_order
    Inventory_API_v1_lot_type-fields-enum:
      title: LotType
      description: >-
        Specify additional fields of the `LotType` object to be included in the
        response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - allow_mixing_locations
          - allow_mixing_fulfillment
          - lot_number_example
          - lot_number_replacement
          - expiration_date_pattern
          - expiration_date_delta
          - created_at
          - updated_at
    Inventory_API_v1_Product:
      title: Product
      description: A Product contains information about a sellable item.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - Product
              description: This property describes the type of object in the response body.
            id:
              type: integer
              description: >-
                The internal, read-only, `id` property used as a path parameter
                in a resource lookup.
              readOnly: true
            vendor_sku:
              type: string
              description: >-
                For informational use only. Displayed during delivery processing
                to help match products.\
                  `Optional Field`
              nullable: true
              example: Vendor-SKU-1AD2
            manufacturer_part_number:
              type: string
              description: >-
                The manufacturer's part number for the item. May be required for
                customs on shipments to EU countries.\
                  `Optional Field`
              nullable: true
              example: MPN-1AD2
            external_id:
              type: string
              nullable: true
              example: 11-993-9048
              description: May be used for external product sync.
            barcodes:
              anyOf:
                - type: array
                  items:
                    type: string
                  nullable: true
                  example:
                    - 956623520-4
                    - O-VS-Oregano-p3
                - type: string
                  nullable: true
                  example: 956623520-4
              description: A comma separated list of unique packaging feature barcodes.
            goods_type:
              type: string
              nullable: true
              enum:
                - NORMAL
                - ORM_D
                - LIMITED_QUANTITIES_COMMODITIES
                - HAZMAT
                - null
              description: >-
                This defines the regulations, if any, assigned to a `Product`.

                - `NORMAL` Not Regulated

                - `ORM_D`  ORM-D

                - `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer
                Commodity

                - `HAZMAT` Regulated
            is_available:
              type: boolean
              enum:
                - true
                - false
              default: true
              description: This flag must be `true` to allow the `Product` to be ordered.
            is_visible:
              type: boolean
              enum:
                - true
                - false
              default: true
              description: >-
                This flag must be `true` to show the `Product` in the inventory
                feed.
            lot_type:
              type: object
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_LotTypeRef'
              nullable: true
              description: >-
                This `LotType` determines how a `Product` should be "burned" and
                whether lots with dissimilar data

                can be "mixed".\
                  `Optional Field`
            weight:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                - description: >-
                    This object defines the weight of the `Product` in imperial
                    or metric units.\
                      `Optional Field`
            dimensions:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Dimensions'
                - description: >-
                    This object defines the length, width, and height of the
                    `Product` in imperial or metric units.\
                      `Optional Field`
            volume:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Volume'
                - description: >-
                    This object defines the cubic size of the `Product` in
                    imperial or metric units.\
                      `Optional Field`
            inventory:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Inventory'
                - description: >-
                    This object describes how the `Product` Stock is defined,
                    such as real config values, or Virtual Inventory, and how to
                    handle Backorders.\
                      `Optional Field`
            export:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Export'
                - description: >-
                    This object contains fields for describing and codifying an
                    internationally exportable `Product`.\
                      `Optional Field`
            regulated_goods:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_RegulatedGoods'
                - description: >-
                    This object only applies a `Product` using the "Regulated"
                    Goods Type, and describes the `Regulation` and container
                    specifications for the `Product`.\
                      `Optional Field`
            packaging:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Packaging'
                - description: >-
                    This object defines how the shipping container/box for the
                    `Product` is to be processed and whether there are any
                    special instructions during packing.\
                      `Optional Field`
            custom_fields:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_custom_fields'
                - description: >-
                    This will set any Product Attributes, pre-defined by the
                    user, for the `Product`.\
                      `Optional Field`
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_LotType:
      title: LotType
      type: object
      description: LotType
      properties:
        type:
          type: string
          enum:
            - LotType
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          format: int64
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
          readOnly: true
          example: 4
        name:
          type: string
          description: Any string which uniquely identifies a LotType.
          minLength: 1
          maxLength: 255
          example: MixFulfillment-Extract-Choose-FEFO
        allow_mixing_locations:
          type: boolean
          description: >-
            This flag must be `true` for mixing with other Lots/Expirations in
            the same location..
          example: true
        allow_mixing_fulfillment:
          type: boolean
          description: >-
            This flag must be `true` for mixing with other Lots/Expirations when
            fulfilling an order..
          example: true
        lot_number_input:
          description: The input method used when processing a lot number..
          type: string
          enum:
            - none
            - choose_date
            - extract_date
            - text
          example: text
        lot_number_example:
          type: string
          description: >-
            Enter a typical example of a lot number which can be used to
            validate the Lot Number Pattern. It will also be displayed as an
            example when users are prompted for input.
          example: AB190405G
        lot_number_pattern:
          type: string
          description: >-
            Enter a RegEx for capturing the Lot Number Input. Regex must contain
            one or more capturing group.
          example: ^([A-Z]{2}-[0-9]+)$
        lot_number_replacement:
          type: string
          description: >-
            Enter a RegEx to either save the Lot Number Input as is or transform
            the entry into something more readable. Must contain one or more
            non-empty capturing group from the Lot Number Pattern.
          example: $2$1
        expiration_date:
          type: string
          description: The input method used when processing the expiration date.
          enum:
            - none
            - choose_date
            - extract_date
            - lot_number_date
          example: lot_number_date
        burn_order:
          type: string
          description: Specifies what stock should be used first when fulfilling orders.
          enum:
            - none
            - fifo
            - lifo
            - fefo
            - lefo
            - fifo_lot_number
            - lifo_lot_number
          example: fefo
        created_at:
          $ref: '#/components/schemas/Inventory_API_v1_created_at'
        updated_at:
          $ref: '#/components/schemas/Inventory_API_v1_updated_at'
    Inventory_API_v1_Merchant:
      title: Merchant
      type: object
      description: >-
        A `Merchant` represents an entity that owns a distinct pool of inventory
        and line of business.
      properties:
        type:
          type: string
          enum:
            - Merchant
          readOnly: true
        id:
          type: integer
          format: int32
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
          readOnly: true
          example: 4
        code:
          type: string
          description: >-
            Merchant code may only contain letters (a-z), numbers (0-9) or
            underscore(_), the first character must be a letter.
          minLength: 1
          maxLength: 32
          example: acme_inc
        name:
          type: string
          description: Any string which uniquely identifies a Merchant.
          minLength: 1
          maxLength: 64
          example: ACME Inc.
        status:
          type: string
          enum:
            - active
            - inactive
            - suspended
            - archived
          default: active
          description: >-
            Lifecycle status of the Merchant:

            - `active`: Merchant is operational and available for use

            - `suspended`: Temporarily on hold, can be easily reactivated

            - `inactive`: Long-term offline status, reactivation is possible but
            may require additional steps

            - `archived`: Soft delete status, manual recovery required
          example: active
          nullable: true
          readOnly: true
        created_at:
          $ref: '#/components/schemas/Inventory_API_v1_created_at-optional'
        updated_at:
          $ref: '#/components/schemas/Inventory_API_v1_updated_at'
        brands:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
          description: >-
            A merchant must have one or more brands which may share the same
            pool of inventory. Brands can be used for

            customizing presentation and behaviors and often correspond to
            distinct lines of business or market presences.\
              `Optional Field`
          readOnly: true
        default_brand:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
          description: >-
            This is the primary brand used when defining only the merchant for
            operations such as creating a new product.\
              `Optional Field`
        custom_fields:
          type: object
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_sales_custom_fields'
          nullable: true
          description: >-
            Custom fields associated with the merchant in script format. Each
            field contains

            a code and value, with additional properties depending on the field
            type.\
              `Optional Field`
    Inventory_API_v1_BadRequest:
      type: object
      properties:
        errors:
          type: array
          minItems: 1
          items:
            type: object
            properties:
              type:
                type: string
                description: Machine-readable request error category.
                enum:
                  - parser
                  - parameters
                  - openapi
              message:
                type: string
                description: Human-readable request error summary.
              details:
                type: array
                items:
                  $ref: '#/components/schemas/Inventory_API_v1_Detail'
            additionalProperties: false
      additionalProperties: false
    Inventory_API_v1_LotTypeRef:
      title: LotTypeRef
      description: LotType
      type: object
      properties:
        type:
          type: string
          enum:
            - LotType
          description: This property describes the type of object in the response body.
        id:
          type: integer
          format: int64
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
          example: 4
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_Weight:
      title: Weight
      type: object
      nullable: true
      properties:
        value:
          type: number
          description: >-
            The weight quantity defined as a floating point value of up to 4
            decimal places.
          format: float
          example: 20
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_WeightUnit'
    Inventory_API_v1_Dimensions:
      title: Dimensions
      type: object
      nullable: true
      properties:
        length:
          type: number
          description: >-
            This distance value is usually assigned to the longest side of the
            object and is defined as a floating-point number up to 4 decimal
            places.
          format: float
          example: 8
        width:
          type: number
          description: >-
            This value describes the horizontal distance of the subject defined
            as a floating-point number up to 4 decimal places.
          format: float
          example: 6
        height:
          type: number
          description: >-
            This value describes the vertical distance of the subject defined as
            a floating-point number up to 4 decimal places.
          format: float
          example: 4
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_LengthUnit'
    Inventory_API_v1_Volume:
      title: Volume
      type: object
      nullable: true
      properties:
        value:
          type: number
          description: >-
            This value describes the cubic size of the subject as a
            floating-point number up to 4 decimal places.
          format: float
          example: 300
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_VolumeUnit'
    Inventory_API_v1_Inventory:
      title: Inventory
      type: object
      description: Product Inventory information
      properties:
        backorders:
          description: >-
            This determines if `Product` that is no longer in stock may be
            backordered or whether or not to use ShipStream's scoped
            configurations.
          anyOf:
            - type: boolean
              example: true
            - type: string
              enum:
                - use_config
        dynamic_allocation:
          description: >-
            This will allow the `Product` to source from inventory in other
            warehouses in real-time if enabled, and can be set to use
            ShipStream's scoped configurations.
          anyOf:
            - type: boolean
              example: true
            - type: string
              enum:
                - use_config
        virtual_inventory:
          type: string
          description: >-
            This is the method used to predict an esitmate of inventory
            available when kitting from the `Product`.
          enum:
            - none
            - optimistic
            - realistic
            - pessimistic
          example: optimistic
    Inventory_API_v1_Export:
      title: Export
      type: object
      description: Product Export and Custom information
      properties:
        description:
          type: string
          description: >-
            This is used to describe in detail the `Product` for international
            shipping and customs regulations.
          nullable: true
          example: Plastic children's toy with steel weights and ball bearings
        customs_value:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
            - description: >-
                The value of the products the purpose of calculating duties and
                taxes in the destination country.
        country_of_manufacture:
          type: string
          nullable: true
          description: 2 letters Country ISO Code
          example: TW
        hs_base_code:
          type: string
          description: >-
            This is the Harmonized System Code (HS Code); a standardized
            numerical method of classifying traded products. These are 6 digit
            codes in the format \#\#\#\#.\#\# (e.g. 8471.30) which are
            associated with a standard HS Code Description, not including
            country-specific extensions.
          nullable: true
          example: '8518.30'
        hs_country_extension:
          $ref: '#/components/schemas/Inventory_API_v1_country_extension'
    Inventory_API_v1_RegulatedGoods:
      title: RegulatedGoods
      type: object
      description: Product Regulation Information
      properties:
        regulation:
          $ref: '#/components/schemas/Inventory_API_v1_RegulationRef'
        technical_name:
          type: string
          nullable: true
          description: Must match against Regulation's Technical Name Pattern if specified.
          example: Hydro Polymer Acetylene Coating
        additional_information:
          type: string
          nullable: true
          description: >-
            Must match against Regulation's Additional Regulatory Information
            Pattern if specified.
          example: Flamable Liquid
        net_weight:
          $ref: '#/components/schemas/Inventory_API_v1_Weight'
        container_type:
          $ref: '#/components/schemas/Inventory_API_v1_container_type'
        container_meets_hazmat_specs:
          type: boolean
          description: >-
            This flag indicates that the `RegulatedGoods` container is
            sufficient for a regulated (HAZMAT) product.
          example: true
        regulation_units:
          type: number
          description: >-
            These units are arbitrary and should be relative to the Regulation's
            Pickup Weight Limit. E.g. it could be in pounds, kilowatt/hours,
            etc.
          format: float
          example: 5
    Inventory_API_v1_Packaging:
      title: Packaging
      type: object
      description: Product Packaging information
      properties:
        require_packaging:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, packaging will require a Box with "Satisfies Overbox:
                Yes".
        require_weight_check:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, the associated product will require the use of a scale
                to verify that the package's weight falls within the expected
                amount. If this is set to No, this step will be skipped by the
                packer.
        require_confirmation_per_item:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, Packaging Products with "One Scan Per: Item" will
                require a scan for each item packed rather than just one for the
                first item in a package.
        unit_quantity:
          type: integer
          example: 1
          nullable: true
          description: >-
            Number of individually packaged items contained therein for purposes
            of special packaging features.
        bulk_quantity:
          type: integer
          nullable: true
          example: 10
          description: >-
            Prefer to split into packages when necessary using multiples of this
            amount.
        max_per_package:
          type: integer
          nullable: true
          example: 15
          description: >-
            The maximum quantity of this product to ever include in the same
            package. 

            Multiply by "Unit Quantity" to achieve common units between other
            products with the same "Ship Separate Tag" value.
        is_ship_separately:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                This item cannot ship in the same package as other items (unless
                they have the same "Ship Separate Tag").
        ship_separately_tag:
          type: string
          nullable: true
          description: >-
            Applies only if "Ship Separate" is "Yes". Assign the same tag to
            treat similar products as interchangeable 

            with respect to the "Ship Separate" and "Max Per Package" attribute.
          example: PVC
        can_tip:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, the item is allowed to be rotated vertically when
                packed.
        can_contain_other_items:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes then other smaller items are allowed to be placed within
                this larger item. This is useful when the item is hollow or is a
                bin/bucket.
        is_handling_surcharge:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                The Packaging Surcharge is applicable when shipped without an
                Overbox.
    Inventory_API_v1_custom_fields:
      type: array
      description: Custom field values as an array of code/value pairs.
      items:
        type: object
        properties:
          code:
            type: string
            description: The custom field code/identifier.
          value:
            description: The field value (type depends on field configuration).
          label:
            type: string
            description: For select fields, the display label of the selected option.
          options:
            type: object
            description: For multiselect fields, a map of option IDs to labels.
            additionalProperties:
              type: string
        required:
          - code
      example:
        - code: color
          value: 13
          label: Red and Black
        - code: cost_of_goods
          value: 41.32
        - code: allow_mailer
          value: true
    Inventory_API_v1_AbstractProduct:
      type: object
      properties:
        sku:
          type: string
          description: >-
            The Stock Keeping Unit (SKU) is a unique identifier for the
            `Product`.
          example: SKU-1AD
        name:
          type: string
          description: This is displayed as a short, descriptive title for the `Product`.
          example: Test Product
        is_enabled:
          type: boolean
          description: Disabled products are effectively deleted.
          enum:
            - true
            - false
          default: true
        merchant:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
            - description: The `Merchant` to which the product belongs.
        created_at:
          $ref: '#/components/schemas/Inventory_API_v1_created_at-optional'
        updated_at:
          $ref: '#/components/schemas/Inventory_API_v1_updated_at-optional'
    Inventory_API_v1_created_at:
      type: string
      format: date-time
      description: >-
        The date and time the object was created in RFC 3339 section 5.6
        notation.
      example: '2017-07-21T17:32:28Z'
      readOnly: true
    Inventory_API_v1_updated_at:
      type: string
      format: date-time
      description: >-
        The date and time the object was last updated in RFC 3339 section 5.6
        notation.\
          `Optional Field`
      example: '2017-07-21T17:39:43Z'
      nullable: true
      readOnly: true
    Inventory_API_v1_created_at-optional:
      type: string
      format: date-time
      description: >-
        The date and time the object was created in RFC 3339 section 5.6
        notation.\
          `Optional Field`
      example: '2017-07-21T17:32:28Z'
      nullable: true
      readOnly: true
    Inventory_API_v1_BrandRef:
      title: BrandRef
      type: object
      description: Reference a `Brand` by `id`.
      properties:
        type:
          type: string
          enum:
            - Brand
        id:
          type: integer
          format: int32
          description: The numeric `id` of a particular resource being updated.
          example: 4
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_sales_custom_fields:
      type: object
      description: >-
        Custom field values for the order, keyed by field code.


        The format of each value depends on the field's input type:

        - **select**: `{"id": <integer>, "label": "<string>"}`

        - **multiselect**: `[{"id": <integer>, "label": "<string>"}, ...]`

        - **currency**: Uses the Monetary type `{"amount": <number>, "currency":
        "<string>"}`

        - **boolean**: `{"value": <boolean>}`

        - **text/multiline-text/email/url/date**: `{"value": "<string>"}`

        - **number**: `{"value": <number>}`

        - **admin-user/client-user**: `{"value": <integer>}` (user ID)
      additionalProperties:
        $ref: '#/components/schemas/Inventory_API_v1_custom_field_value'
      example:
        is_gift:
          value: true
        order_details:
          value: test details
        department:
          id: 3
          label: Shipping
        priority_levels:
          - id: 1
            label: Urgent
          - id: 2
            label: High
        cost_of_goods:
          amount: 156.99
          currency: USD
        assigned_user:
          value: 42
    Inventory_API_v1_Detail:
      type: object
      properties:
        key:
          type: string
          description: Request field or dependency represented by the detail.
        message:
          type: string
          description: Human-readable detail value.
      required:
        - key
        - message
      additionalProperties: false
    Inventory_API_v1_WeightUnit:
      type: string
      description: This can be an imperial or metric unit for weight.
      enum:
        - lb
        - oz
        - kg
        - g
    Inventory_API_v1_LengthUnit:
      type: string
      description: The imperical or metric unit of measurement.
      enum:
        - in
        - mm
        - cm
        - m
    Inventory_API_v1_VolumeUnit:
      type: string
      description: The imperical or metric unit of measurement as a cubic value.
      enum:
        - in^3
        - mm^3
        - cm^3
        - m^3
    Inventory_API_v1_Monetary:
      title: Monetary
      type: object
      nullable: true
      properties:
        amount:
          type: number
          description: This is the monetary value..
          format: float
          example: 99
        currency:
          type: string
          description: An ISO 3166-1 alpha-3 currency code.
          example: USD
    Inventory_API_v1_country_extension:
      type: array
      nullable: true
      items:
        type: object
        properties:
          country_id:
            type: string
            description: This is the two-digit ISO (Alpha-2) country code.
          extension:
            type: string
            description: >-
              Country-specific extension to the 6-digit Harmonized System code.
              For imports into the United States this is the last 4 digits of
              the 10-digit HTS (Harmonized Tariff Schedule) code.
      example:
        - country_id: TW
          extension: '002'
        - country_id: US
          extension: '011'
    Inventory_API_v1_RegulationRef:
      title: Regulation
      type: object
      description: A reference to a `Regulation` by `id`.
      properties:
        type:
          type: string
          enum:
            - Regulation
          description: This property describes the type of object in the response body.
        id:
          type: integer
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_container_type:
      type: string
      nullable: true
      description: >-
        The Overpack Container Type can be a combination of material and
        container type such as Aluminum Box, Steel Drum, or a combination of a
        material and container type from these two lists:
          - `Material:` Aluminum, Fiberboard, Glass, Plywood, Plastic, Steel, Wood
          - `Container:` Bag, Bottle, Box, Bucket, Cylinder, Drum, Jerrican, Pail
      example: Plastic Box
    Inventory_API_v1_boolean:
      type: boolean
      enum:
        - true
        - false
      example: true
    Inventory_API_v1_MerchantRef:
      title: MerchantRef
      type: object
      description: Reference a `Merchant` by `id`.
      properties:
        type:
          type: string
          enum:
            - Merchant
        id:
          type: integer
          format: int32
          example: 4
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_updated_at-optional:
      type: string
      format: date-time
      description: >-
        The date and time the object was last updated in RFC 3339 section 5.6
        notation.
      example: '2017-07-21T17:39:43Z'
      nullable: true
      readOnly: true
    Inventory_API_v1_custom_field_value:
      description: Union type for all possible custom field value formats.
      anyOf:
        - $ref: '#/components/schemas/Inventory_API_v1_custom_field_scalar_value'
        - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
        - $ref: '#/components/schemas/Inventory_API_v1_custom_field_select_option'
        - $ref: '#/components/schemas/Inventory_API_v1_custom_field_multiselect_value'
    Inventory_API_v1_custom_field_scalar_value:
      type: object
      description: |-
        A wrapper for scalar custom field values.
        The value type depends on the field's input type:
        - **boolean**: boolean value
        - **text/multiline-text/email/url/date**: string value
        - **number**: number value
        - **admin-user/client-user**: integer value (user ID)
      required:
        - value
      properties:
        value:
          description: The field value. Type varies based on field configuration.
          oneOf:
            - type: boolean
            - type: string
            - type: number
            - type: integer
      additionalProperties: false
    Inventory_API_v1_custom_field_select_option:
      type: object
      description: A selected option for select type fields.
      required:
        - id
        - label
      properties:
        id:
          type: integer
          description: The option ID.
        label:
          type: string
          description: The display label for the selected option.
      additionalProperties: false
    Inventory_API_v1_custom_field_multiselect_value:
      type: array
      description: Array of selected options for multiselect type fields.
      items:
        $ref: '#/components/schemas/Inventory_API_v1_custom_field_select_option'
  responses:
    Inventory_API_v1_400-product-profile-bad-request:
      description: The Product Profile request was invalid and must be corrected.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Inventory_API_v1_BadRequest'
          example:
            errors:
              - type: parameters
                message: The supplied parameters are invalid.
    Inventory_API_v1_404-not-found:
      description: >-
        The requested resource was not found. It may have been deleted, it may
        have never existed, or you may not have permission to view it.
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      type: string
                      description: The error type code.
                      enum:
                        - not_found
                    message:
                      type: string
                      description: An English sentence describing the error type.
                    details:
                      type: array
                      description: >-
                        An array of objects describing which keys are
                        responsible for the error and detailed messages
                        describing why they are not valid.
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: The path to the key which relates to the error.
                          message:
                            type: string
                            description: >-
                              An English sentence describing the details of the
                              error.
                        additionalProperties: false
                  additionalProperties: false
                minItems: 1
            additionalProperties: false
          example:
            errors:
              - type: not_found
                message: The server could not find the requested resource.
    Inventory_API_v1_500-internal-server-error:
      description: >-
        Internal Server Error - Something wrong happened at server side. Contact
        server administrator for more details.
  securitySchemes:
    ShipStream_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Generate a JWT access token through a Custom Global Integration and
        provide it with each request in the `Authorization` header prefixed with
        "Bearer" and then a single space.

````