> ## 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 Location Occupancies

> Returns a list of `LocationOccupancy` objects for the warehouse specified by an `id` path parameter, across
all merchants. Each object is one interval during which a location held inventory of one merchant's
product.

Intervals are recorded asynchronously, about 40 minutes after inventory moves. `meta.projected_through` is the UTC
instant up to which recorded intervals are complete; occupancy changes after it may not be reflected yet. It is
read before the intervals, so a result for a period that ends at or before it is final, except that an open
interval can still close (see the `sort` parameter).
Intervals before occupancy tracking began, at `meta.tracking_started_at`, are not available: locations
already occupied at that time have intervals with `open_reason` `backfill` that start when tracking began.

A client user's token returns only its own merchant's intervals, in the merchant's allowed warehouses and
in any other warehouse where the merchant has intervals. A staff user's token is limited to the
warehouses and merchants of the user's group. A warehouse outside the caller's scope returns `404`. A
caller limited to certain merchants receives `location` as a reference only, and `fields:location`
returns `400`, because the location may now hold another merchant's inventory.



## OpenAPI

````yaml GET /v1/inventory/warehouses/{id}/location-occupancies
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: LocationOccupancies
    x-displayName: LocationOccupancies
  - 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: PickingBatches
    x-displayName: PickingBatches
  - 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/warehouses/{id}/location-occupancies:
    get:
      tags:
        - LocationOccupancies
      summary: List Location Occupancies
      description: >-
        Returns a list of `LocationOccupancy` objects for the warehouse
        specified by an `id` path parameter, across

        all merchants. Each object is one interval during which a location held
        inventory of one merchant's

        product.


        Intervals are recorded asynchronously, about 40 minutes after inventory
        moves. `meta.projected_through` is the UTC

        instant up to which recorded intervals are complete; occupancy changes
        after it may not be reflected yet. It is

        read before the intervals, so a result for a period that ends at or
        before it is final, except that an open

        interval can still close (see the `sort` parameter).

        Intervals before occupancy tracking began, at
        `meta.tracking_started_at`, are not available: locations

        already occupied at that time have intervals with `open_reason`
        `backfill` that start when tracking began.


        A client user's token returns only its own merchant's intervals, in the
        merchant's allowed warehouses and

        in any other warehouse where the merchant has intervals. A staff user's
        token is limited to the

        warehouses and merchants of the user's group. A warehouse outside the
        caller's scope returns `404`. A

        caller limited to certain merchants receives `location` as a reference
        only, and `fields:location`

        returns `400`, because the location may now hold another merchant's
        inventory.
      operationId: getLocationOccupancies
      parameters:
        - name: id
          in: path
          schema:
            type: integer
            format: int32
          required: true
          description: The `id` of the referenced `Warehouse`.
        - $ref: '#/components/parameters/Inventory_API_v1_fields-location'
        - $ref: '#/components/parameters/Inventory_API_v1_fields-merchant'
        - $ref: '#/components/parameters/Inventory_API_v1_fields-product'
        - $ref: '#/components/parameters/Inventory_API_v1_fields-slot_type'
        - $ref: '#/components/parameters/Inventory_API_v1_fields-warehouse'
        - $ref: '#/components/parameters/Inventory_API_v1_location-occupancy-filter'
        - name: sort
          in: query
          schema:
            type: string
          required: false
          description: >-
            The default sort order is **descending** by `occupied_at`
            (`sort=-occupied_at`), with `id` breaking ties. Pages are linked
            with opaque cursors. Use `sort=vacated_at` to read the intervals
            that overlap a period (see the `filter` parameter); open intervals,
            whose `vacated_at` is NULL, come first. Filters that select only
            open intervals (`is_open:true` or `vacated_at{null:true}`) require
            this sort, unless they are combined with a `product_id`, `sku` or
            `location_id` filter. Use `sort=updated_at` with an
            `updated_at{gt:...}` filter to poll for intervals that opened or
            closed since a previous request; start each poll from the largest
            `updated_at` you received. Only one sort field is supported. The
            `product_id`, `sku` and `location_id` filters require the
            `occupied_at` sort.

            Closing an interval sets its `vacated_at` and `updated_at`, so these
            two fields can only be sorted in ascending order. Even then, an open
            interval that closes while you page forward through the results is
            returned again, with its `vacated_at`, on a later page. Deduplicate
            by `id`, keeping the row with the latest `updated_at`. The
            `occupied_at` order is never affected. The following fields are
            available for sorting:
              - `occupied_at`
              - `vacated_at`
              - `updated_at`
        - $ref: '#/components/parameters/Inventory_API_v1_count'
        - $ref: '#/components/parameters/Inventory_API_v1_cursor_end'
        - $ref: '#/components/parameters/Inventory_API_v1_cursor_start'
        - $ref: '#/components/parameters/Inventory_API_v1_limit'
      responses:
        '200':
          description: >-
            A dictionary with a `collection` property that contains a list of up
            to `limit` `LocationOccupancy`

            objects matching the query.
          content:
            application/json:
              schema:
                type: object
                properties:
                  collection:
                    type: array
                    description: A list of `LocationOccupancy` objects.
                    items:
                      $ref: '#/components/schemas/Inventory_API_v1_LocationOccupancy'
                  included:
                    $ref: '#/components/schemas/Inventory_API_v1_location-occupancies'
                  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:
                    allOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_meta'
                      - type: object
                        properties:
                          projected_through:
                            type: string
                            format: date-time
                            nullable: true
                            description: >-
                              UTC instant up to which recorded intervals are
                              complete, or NULL before the first projection run.
                            example: '2026-10-27T20:15:36.485Z'
                          tracking_started_at:
                            type: string
                            format: date-time
                            nullable: true
                            description: >-
                              UTC instant at which occupancy tracking began.
                              Intervals with `open_reason` `backfill` start at
                              this instant because the location was already
                              occupied.
                            example: '2026-10-27T18:02:11.000Z'
        '400':
          $ref: '#/components/responses/Inventory_API_v1_400-bad-request'
        '404':
          $ref: '#/components/responses/Inventory_API_v1_404-not-found'
        '500':
          $ref: '#/components/responses/Inventory_API_v1_500-internal-server-error'
components:
  parameters:
    Inventory_API_v1_fields-location:
      name: fields:location
      in: query
      required: false
      description: >-
        Specify additional fields of the `Location` 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_location-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-product:
      name: fields:product
      in: query
      required: false
      description: >-
        Specify additional fields of the `Product` or `Packaging*` 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_product-packaging-fields-enum'
    Inventory_API_v1_fields-slot_type:
      name: fields:slot_type
      in: query
      required: false
      description: >-
        Specify additional fields of the `SlotType` 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_slot_type-fields-enum'
    Inventory_API_v1_fields-warehouse:
      name: fields:warehouse
      in: query
      required: false
      description: >-
        Specify additional fields of the `Warehouse` 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_warehouse-fields-enum'
    Inventory_API_v1_location-occupancy-filter:
      name: filter
      in: query
      description: >-
        Using the [filtering syntax](/global-api/filtering-syntax), you may
        filter the results using the following fields:
          - `id`
          - `merchant_id`
          - `product_id` — one product (only the basic syntax / `eq` operator); only with the `occupied_at` sort
          - `sku` — the current SKU of one product (only the basic syntax / `eq` operator); also matches intervals
            that opened under an earlier SKU of the same product. A SKU shared by several merchants' products
            returns `400`; filter by `product_id` instead. Only with the `occupied_at` sort.
          - `location_id` — one location (only the basic syntax / `eq` operator); also matches intervals of deleted
            locations. Only with the `occupied_at` sort.
          - `is_open` — `true` or `false` (only the basic syntax / `eq` operator); `is_open:true` requires `sort=vacated_at`
            unless a `product_id`, `sku` or `location_id` filter is also given
          - `occupied_at`
          - `vacated_at` — use `{null:true}` for open intervals, with the same sort requirement as `is_open:true`
          - `updated_at` — only with `sort=updated_at` or `sort=-updated_at`

        Each filter names one field; a comma-separated list of fields is not
        supported.


        The date-time fields accept ISO 8601 values with the `eq`, `neq`, `in`,
        `nin`, `from`, `to`, `gt`, `gteq`, `lt`

        and `lteq` operators, and the `null` operator; other operators return
        `400`. `from` and `to` are inclusive. A value

        without a time zone offset is UTC. Times are stored with millisecond
        precision, so an `eq` value copied from a

        response matches that instant.


        An interval occupies its location from `occupied_at` up to, but not
        including, `vacated_at`. To select the

        intervals that overlap a period from `S` up to `E`, combine
        `occupied_at{lt:"E"}` with

        `vacated_at[{null:true},{gt:"S"}]` and `sort=vacated_at`: the read then
        starts at the open intervals and at `S`,

        and passes over only the intervals vacated since `S`. With the default
        `occupied_at` sort, the same filters

        pass over the warehouse's whole history before `S` to find the intervals
        that started before it. Inclusive

        `from`/`to` bounds would also return intervals that only touch the
        period: those vacated exactly at `S` or

        occupied exactly at `E`.
      required: false
      style: form
      explode: true
      schema:
        type: array
        items:
          type: string
      allowReserved: true
      examples:
        Open intervals:
          summary: Locations that are still occupied; use with `sort=vacated_at`.
          value:
            - is_open:true
        Overlapping October:
          summary: >-
            Intervals that overlap October 2026 (UTC); use with
            `sort=vacated_at`.
          value:
            - occupied_at{lt:"2026-11-01T00:00:00Z"}
            - vacated_at[{null:true},{gt:"2026-10-01T00:00:00Z"}]
        One merchant:
          summary: Intervals of one merchant.
          value:
            - merchant_id:4
        One location:
          summary: The history of one location.
          value:
            - location_id:1234
    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 end of the next page of
        results, non-inclusive.

        For collections sorted by `id` this is the last `id`. For other sort
        orders use the

        opaque cursor provided by the `previous` link and `meta.cursor_end` of
        the previous page;

        a plain record `id` is also accepted and resolves to that record's
        position in the sort order.

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

        For collections sorted by `id` this is the starting `id`. For other sort
        orders use the

        opaque cursor provided by the `next` link and `meta.cursor_start` of the
        previous page;

        a plain record `id` is also accepted and resolves to that record's
        position in the sort order.

        See [paging parameters](/global-api/paging-parameters) for more
        information on paging.
      schema:
        oneOf:
          - type: integer
          - type: string
      style: form
    Inventory_API_v1_limit:
      name: limit
      in: query
      description: A limit on the number of objects to be returned.
      style: form
      schema:
        type: integer
        example: 100
        default: 100
        minimum: 1
        maximum: 1000
  schemas:
    Inventory_API_v1_LocationOccupancy:
      title: LocationOccupancy
      type: object
      description: >-
        An interval during which one location held inventory of one merchant's
        product. An interval opens when the

        location becomes occupied and closes when it becomes empty. A location
        that is emptied and refilled within 60

        seconds (inclusive) with the same merchant, product and slot type keeps
        one interval, and the gap counts in

        `duration_seconds`. An interval is split (closed and reopened at the
        same instant) when the location's slot type

        changes while occupied. Closed intervals never change.


        The merchant, product, SKU, location label, slot type name and temporary
        flag are snapshots taken when the

        interval opened, so they survive later changes or deletion of the
        location, product or merchant. All times

        are UTC with millisecond precision.
      properties:
        type:
          type: string
          enum:
            - LocationOccupancy
          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: 3412
        merchant:
          description: >-
            Merchant that owned the stored product. NULL when the merchant was
            deleted.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
        warehouse:
          description: Warehouse that contains the location.
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_WarehouseRef'
        product:
          description: Product stored in the location. NULL when the product was deleted.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_StockableProductRef'
        location:
          description: >-
            Location that was occupied. NULL when the location was deleted;
            `location_label` keeps its label.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_LocationRef'
        location_label:
          type: string
          description: Label of the location when the interval opened.
          example: A-01-02-B
        sku:
          type: string
          description: SKU of the product when the interval opened.
          example: WIDGET-RED
        slot_type:
          description: >-
            Slot type of the location during the interval. NULL when the
            location had no slot type or the slot type was deleted.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_SlotTypeRef'
        slot_type_name:
          type: string
          nullable: true
          description: >-
            Name of the slot type when the interval opened, or NULL when the
            location had no slot type.
          example: Pallet Rack
        is_temp:
          type: boolean
          description: >-
            Whether the location was a temporary location when the interval
            opened.
          example: false
        occupied_at:
          type: string
          format: date-time
          description: >-
            When the location became occupied. Backfilled intervals start at the
            time tracking began.
          example: '2026-10-01T14:03:27.512Z'
        vacated_at:
          type: string
          format: date-time
          nullable: true
          description: When the location became empty, or NULL while the interval is open.
          example: '2026-10-09T08:15:00.004Z'
        duration_seconds:
          type: integer
          description: >-
            Whole seconds between `occupied_at` and `vacated_at`, or until now
            for an open interval.
          example: 670292
        is_open:
          type: boolean
          description: Whether the location is still occupied by this interval.
          example: false
        open_reason:
          type: string
          enum:
            - observed
            - backfill
            - split
            - reconcile
          description: >-
            Why the interval opened: `observed` inventory arrived, `backfill`
            the location was already occupied when tracking began, `split` the
            slot type changed, or `reconcile` a consistency repair.
          example: observed
        close_reason:
          type: string
          nullable: true
          enum:
            - observed
            - split
            - reconcile
            - null
          description: >-
            Why the interval closed: `observed` the location became empty,
            `split` the slot type changed, or `reconcile` a consistency repair.
            NULL while the interval is open.
          example: observed
        created_at:
          type: string
          format: date-time
          description: When the interval was recorded.
          example: '2026-10-01T14:04:00.120Z'
        updated_at:
          type: string
          format: date-time
          description: >-
            When the interval was last changed. An interval changes only when it
            closes.
          example: '2026-10-09T08:16:00.380Z'
      required:
        - type
        - id
        - warehouse
        - location_label
        - sku
        - is_temp
        - occupied_at
        - duration_seconds
        - is_open
        - open_reason
        - created_at
        - updated_at
    Inventory_API_v1_location-occupancies:
      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:
        SlotType:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_SlotType'
        Merchant:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Merchant'
        PackagingContainer:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingContainer'
        PackagingDataCollection:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingDataCollection'
        PackagingInfill:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingInfill'
        PackagingInstruction:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingInstruction'
        PackagingSupplies:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingSupplies'
        Product:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Product'
        Warehouse:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Warehouse'
        Location:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Location'
    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:
          description: >-
            A `cursor_start` value which resumes the results on the next page:
            the starting `id`

            for collections sorted by `id`, otherwise an opaque cursor bound to
            the requested sort.

            See [paging parameters](/global-api/paging-parameters) for more
            information on paging.
          oneOf:
            - type: integer
              nullable: true
            - type: string
        cursor_end:
          description: >-
            A `cursor_end` value which resumes the results on the previous page,
            non-inclusive: the

            last `id` for collections sorted by `id`, otherwise an opaque cursor
            bound to the requested sort.

            See [paging parameters](/global-api/paging-parameters) for more
            information on paging.
          oneOf:
            - type: integer
              nullable: true
            - type: string
        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_location-fields-enum:
      title: Location
      description: >-
        Specify additional fields of the `Location` object to be included in the
        response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - label
          - priority
          - qty_on_hand
          - qty_putaway
          - qty_unreserved
          - qty_reserved
          - qty_locked
          - is_temp
          - is_pickable
          - is_type_auto
          - created_at
          - updated_at
          - last_cyclecount_at
          - tags
          - lot
          - product
          - rack
          - slot_type
    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_product-packaging-fields-enum:
      title: Product Or Packaging
      description: >-
        Specify additional fields of the `Product` or `Packaging*` object to be
        included in the response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - created_at
          - updated_at
          - container_options
          - supplies_options
          - data_collection_options
          - instruction_options
          - infill_options
          - vendor_sku
          - manufacturer_part_number
          - unit_level
          - external_id
          - barcodes
          - goods_type
          - is_available
          - is_visible
          - weight
          - dimensions
          - volume
          - inventory
          - export
          - regulated_goods
          - packaging
          - custom_fields
    Inventory_API_v1_slot_type-fields-enum:
      title: SlotType
      description: >-
        Specify additional fields of the `SlotType` object to be included in the
        response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - name
          - is_pickable
          - sort_order
          - patterns
          - is_fixed_capacity
          - slot_dimensions
          - weight_capacity
          - trigger_doi_days
          - target_doi_days
          - created_at
          - updated_at
    Inventory_API_v1_warehouse-fields-enum:
      title: Warehouse
      description: >-
        Specify additional fields of the `Warehouse` object to be included in
        the response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - id
          - name
          - is_active
          - abbreviation
    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_WarehouseRef:
      title: WarehouseRef
      type: object
      description: A reference to a `Warehouse` by `id`.
      properties:
        type:
          type: string
          enum:
            - Warehouse
          description: This property describes the type of object in the response body.
        id:
          type: integer
          format: int32
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_StockableProductRef:
      title: StockableProductRef
      type: object
      description: A reference to a `Product` or stockable packaging type object by `id`.
      properties:
        type:
          type: string
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
          enum:
            - Product
            - PackagingContainer
            - PackagingInfill
            - PackagingSupplies
        id:
          type: integer
          description: >-
            The internal, read-only, `id` property used as a path parameter in a
            resource lookup.
          format: int32
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_LocationRef:
      title: LocationRef
      type: object
      description: A reference to a `Location` by `id`.
      properties:
        type:
          type: string
          description: This property describes the type of object in the response body.
          enum:
            - Location
        id:
          type: integer
          format: int32
          example: 42
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_SlotTypeRef:
      title: SlotTypeRef
      type: object
      description: A reference to a `SlotType` object.
      properties:
        type:
          type: string
          enum:
            - SlotType
          description: This property describes the type of object in the response body.
        id:
          type: integer
          example: 54
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_SlotType:
      title: SlotType
      type: object
      description: >-
        The `SlotType` object allows locations with common attributes or
        purposes to be easily distinguishable.

        The slot type also determines if a location is pickable or not which may
        affect whether or not the location

        can be reserved for shipments when creating a batch.


        A slot type may additionally declare a fixed physical capacity, which
        drives slot capacity and

        utilization calculations, and a list of label patterns that auto-assign
        the type to matching locations.
      properties:
        type:
          type: string
          enum:
            - SlotType
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          example: 54
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
        name:
          type: string
          maxLength: 45
          description: The descriptive name of the slot type, unique across slot types.
          example: Pickable Pallets
        is_pickable:
          type: boolean
          description: >-
            Whether or not the location is considered to be easy to pick from
            for the purpose of generating pickable batches.
          default: true
        sort_order:
          type: integer
          minimum: 0
          maximum: 65535
          example: 10
          description: >-
            The order in which this slot type's auto-assign patterns are tested,
            lowest first; among slot

            types sharing a sort order the newest is tested first. The first
            pattern to match a location

            label decides its slot type.\
              `Optional Field`
        patterns:
          type: array
          description: >-
            Label patterns that automatically assign this slot type to matching
            locations. Stored in a

            canonical order, which is not necessarily the order they were
            submitted in.\
              `Optional Field`
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Pattern'
        is_fixed_capacity:
          type: boolean
          example: true
          description: >-
            Whether slots of this type hold a fixed, known amount, making them
            eligible for slot capacity

            and utilization calculations. When enabled, all three slot
            dimensions are required.\
              `Optional Field`
        slot_dimensions:
          description: |-
            The interior dimensions of slots assigned to this slot type.\
              `Optional Field`
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_DimensionsWHD'
        weight_capacity:
          description: >-
            The maximum weight a slot of this type may hold, used to clamp
            computed slot capacities.

            Must not be negative.\
              `Optional Field`
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_WeightNonNegative'
        trigger_doi_days:
          type: number
          nullable: true
          minimum: 0
          maximum: 999999.9999
          example: 7
          description: >-
            The Slot Type's trigger threshold when a Replenishment Policy uses
            By Slot

            Type. `null` means this Slot Type has no default DOI band.\
              `Optional Field`
        target_doi_days:
          type: number
          nullable: true
          minimum: 0
          maximum: 999999.9999
          example: 21
          description: >-
            The Slot Type's target threshold when a Replenishment Policy uses By
            Slot

            Type. `null` means this Slot Type has no default DOI band.\
              `Optional Field`
        created_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-01T14:03:22Z'
          description: |-
            The UTC date and time the slot type was created.\
              `Optional Field`
        updated_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-01T14:03:22Z'
          description: |-
            The UTC date and time the slot type was last modified.\
              `Optional Field`
      required:
        - type
        - id
      additionalProperties: false
    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_PackagingContainer:
      title: PackagingContainer
      description: >-
        A reference to the `PackagingContainer` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingContainer
              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
            container_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        The weight of the container when packed with the
                        shipment items.
                dimensions:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Dimensions'
                    - description: >-
                        The dimensions of the container in imperial or metric
                        units.
                volume:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Volume'
                    - description: >-
                        The total volume of the container in imperial or metric
                        units.
                      readOnly: true
                manage_stock:
                  type: boolean
                  description: >-
                    This flag indicates whether or not to adjust the inventory
                    quantity of the packaging feature with each use. If `true`
                    then the inventory levels will decrease with each use. If
                    `no` then the inventory will not adjust with each use.
                  enum:
                    - true
                    - false
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                allow_for_warehouses:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected warehouses.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_WarehouseRef'
                allow_for_shipping_methods:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected carriers/shipping methods.
                  items:
                    type: string
                satisfies_overbox:
                  type: boolean
                  description: >-
                    Will be a valid container for products which have `Requires
                    Overbox: Yes`.
                  enum:
                    - true
                    - false
                use_for_bin_packing:
                  type: string
                  description: >-
                    Containers with "Use for Bin Packing: No" will not be used
                    by packing solution providers.
                  enum:
                    - 'yes'
                    - 'no'
                    - fallback
                weight_capacity:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        Maximum allowed weight of the container, including tare
                        weight.

                        `Optional Field`
                container_style:
                  type: string
                  description: >-
                    Specify the container type. Currently, only "Rigid Box" is
                    supported.
                  enum:
                    - rigid_box
                packaging_handling_surcharge:
                  type: boolean
                  description: >-
                    The Packaging Surcharge is applicable for this packaging
                    feature (e.g. cylindrical, non-fiberboard material,
                    protrusions, non-conveyable, etc.)
                  enum:
                    - true
                    - false
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_PackagingDataCollection:
      title: PackagingDataCollection
      description: >-
        A reference to the `PackagingDataCollection` object linked with
        Warehouse Inventory Location.
      allOf:
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingDataCollection
              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
            data_collection_options:
              type: object
              properties:
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                allow_for_shipping_methods:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected carriers/shipping methods.
                  items:
                    type: string
                apply_to_goods_type:
                  type: string
                  enum:
                    - any
                    - NORMAL
                    - ORM_D
                  description: >-
                    This packaging feature will be applied to all shipments
                    containing an item with this Goods Type. \

                    - `NORMAL` Not Regulated

                    - `ORM_D`  ORM-D

                    `Optional Field`
                never_apply_to_goods_type:
                  type: string
                  enum:
                    - NORMAL
                    - LIMITED_QUANTITIES_COMMODITIES
                    - HAZMAT
                  description: >-
                    This packaging feature will be applied to all shipments
                    which do not contain an item with this Goods Type. \

                    - `NORMAL` Not Regulated

                    - `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities:
                    Consumer Commodity

                    - `HAZMAT` Regulated

                    `Optional Field`
                apply_only_above_weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        If specified, this packaging product is not a
                        requirement for packages under the given weight when
                        "Always/Never Apply to Goods Type" is specified.

                        `Optional Field`
                one_per:
                  type: string
                  description: >-
                    The expected number of scans per shipment. The product "Unit
                    Quantity" is used as a multiplier for "One Scan Per: Each".
                  enum:
                    - order
                    - package
                    - item
                    - each
                require_scan_timing:
                  type: string
                  description: >-
                    Choose how the scan timer should begin recording time data
                    on this product or packaging feature.
                  enum:
                    - after_product_scan|on_full
                    - on_start
                disable_confirm_button:
                  type: boolean
                  description: >-
                    If "No", the user will be able to tap "Confirm" rather than
                    scanning a barcode.
                  enum:
                    - true
                    - false
                require_packaging_type:
                  type: string
                  description: >-
                    If specified, this packaging feature will only be applicable
                    when the container meets the chosen criteria based on the
                    container's "Satisfies Overbox" attribute when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - overbox
                    - non_overbox
                apply_unless_container_meets_hazmat:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will be applicable unless a
                    package contains a DG item with "Container Meets Hazmat
                    Specs: Yes" when "Always/Never Apply to Goods Type" is
                    specified.
                  enum:
                    - true
                    - false
                apply_to_multi_sku_package:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will only be applied to
                    packages containing more than one SKU when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - true
                    - false
                collect_data_pattern:
                  type: string
                  description: >-
                    Specify a Javascript-compatible regular expression which
                    describes the format of the data to be collected. Examples:
                    ".+" for anything, or "^[0-9]{15}$" for a 15-digit number.
                    See http://regexpal.com/
                apply_to_region:
                  type: string
                  description: >-
                    Unless specified, this packaging feature will apply to all
                    regions when "Always/Never Apply to Goods Type" is
                    specified.
                is_collected_data_unique:
                  type: boolean
                  description: >-
                    Prevent the same data collection value from being collected
                    more than once on the same shipment.
                  enum:
                    - true
                    - false
    Inventory_API_v1_PackagingInfill:
      title: PackagingInfill
      description: >-
        A reference to the `PackagingInfill` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingInfill
              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
            infill_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: |-
                        The weight of the infill.
                        `Optional Field`
                manage_stock:
                  type: boolean
                  description: >-
                    This flag indicates whether or not to adjust the inventory
                    quantity of the packaging feature with each use. If `true`
                    then the inventory levels will decrease with each use. If
                    `no` then the inventory will not adjust with each use.
                  enum:
                    - true
                    - false
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                disable_confirm_button:
                  type: boolean
                  description: >-
                    If "No", the user will be able to tap "Confirm" rather than
                    scanning a barcode.
                  enum:
                    - true
                    - false
                apply_unless_container_meets_hazmat:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will be applicable unless a
                    package contains a DG item with "Container Meets Hazmat
                    Specs: Yes" when "Always/Never Apply to Goods Type" is
                    specified.
                  enum:
                    - true
                    - false
                is_confirmation_required:
                  type: boolean
                  description: >-
                    If "Yes", this packer will be prompted and required to
                    confirm the use of infill.
                  enum:
                    - true
                    - false
                infill_horizontal:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Length'
                    - description: >-
                        The amount of space to reserve on each horizontal side
                        of the package for infill. \

                        `Optional Field`
                infill_vertical:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Length'
                    - description: >-
                        The amount of space to reserve on each vertical side of
                        the package for infill.

                        `Optional Field`
                infill_priority:
                  type: integer
                  description: >-
                    If multiple infill types are prescribed for a mix of items,
                    the infill with the lowest Infill Priority number will
                    prevail.
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_PackagingInstruction:
      title: PackagingInstruction
      description: >-
        A reference to the `PackagingInstruction` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingInstruction
              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
            instruction_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                allow_for_shipping_methods:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected carriers/shipping methods.
                  items:
                    type: string
                apply_to_goods_type:
                  type: string
                  enum:
                    - any
                    - NORMAL
                    - ORM_D
                  description: >-
                    This packaging feature will be applied to all shipments
                    containing an item with this Goods Type.

                    - `NORMAL` Not Regulated

                    - `ORM_D`  ORM-D

                    `Optional Field`
                never_apply_to_goods_type:
                  type: string
                  enum:
                    - NORMAL
                    - LIMITED_QUANTITIES_COMMODITIES
                    - HAZMAT
                  description: >-
                    This packaging feature will be applied to all shipments
                    which do not contain an item with this Goods Type.

                    - `NORMAL` Not Regulated

                    - `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities:
                    Consumer Commodity

                    - `HAZMAT` Regulated

                    `Optional Field`
                apply_only_above_weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        If specified, this packaging product is not a
                        requirement for packages under the given weight when
                        "Always/Never Apply to Goods Type" is specified. \

                        `Optional Field`
                one_per:
                  type: string
                  description: >-
                    The expected number of scans per shipment. The product "Unit
                    Quantity" is used as a multiplier for "One Scan Per: Each".
                  enum:
                    - order
                    - package
                    - item
                    - each
                require_scan_timing:
                  type: string
                  description: >-
                    Choose how the scan timer should begin recording time data
                    on this product or packaging feature.
                  enum:
                    - after_product_scan|on_full
                    - on_start
                disable_confirm_button:
                  type: boolean
                  description: >-
                    If "No", the user will be able to tap "Confirm" rather than
                    scanning a barcode.
                  enum:
                    - true
                    - false
                require_packaging_type:
                  type: string
                  description: >-
                    If specified, this packaging feature will only be applicable
                    when the container meets the chosen criteria based on the
                    container's "Satisfies Overbox" attribute when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - overbox
                    - non_overbox
                apply_to_region:
                  type: string
                  description: >-
                    Unless specified, this packaging feature will apply to all
                    regions when "Always/Never Apply to Goods Type" is
                    specified.
                apply_unless_container_meets_hazmat:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will be applicable unless a
                    package contains a DG item with "Container Meets Hazmat
                    Specs: Yes" when "Always/Never Apply to Goods Type" is
                    specified.
                  enum:
                    - true
                    - false
                apply_to_multi_sku_package:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will only be applied to
                    packages containing more than one SKU when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - true
                    - false
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_PackagingSupplies:
      title: PackagingSupplies
      description: >-
        A reference to the `PackagingSupplies` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingSupplies
              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
            supplies_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: |-
                        The weight of the infill.
                        `Optional Field`
                manage_stock:
                  type: boolean
                  description: >-
                    This flag indicates whether or not to adjust the inventory
                    quantity of the packaging feature with each use. If `true`
                    then the inventory levels will decrease with each use. If
                    `no` then the inventory will not adjust with each use.
                  enum:
                    - true
                    - false
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                allow_for_warehouses:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected warehouses.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_WarehouseRef'
                allow_for_shipping_methods:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected carriers/shipping methods.
                  items:
                    type: string
                packaging_handling_surcharge:
                  type: boolean
                  description: >-
                    The Packaging Surcharge is applicable for this packaging
                    feature (e.g. cylindrical, non-fiberboard material,
                    protrusions, non-conveyable, etc.)
                  enum:
                    - true
                    - false
                apply_to_goods_type:
                  type: string
                  enum:
                    - any
                    - NORMAL
                    - ORM_D
                  description: >-
                    This packaging feature will be applied to all shipments
                    which do not contain an item with this Goods Type.

                    - `NORMAL` Not Regulated

                    - `ORM_D`  ORM-D

                    `Optional Field`
                never_apply_to_goods_type:
                  type: string
                  enum:
                    - NORMAL
                    - LIMITED_QUANTITIES_COMMODITIES
                    - HAZMAT
                  description: >-
                    This packaging feature will be applied to all shipments
                    which do not contain an item with this Goods Type.

                    - `NORMAL` Not Regulated

                    - `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities:
                    Consumer Commodity

                    - `HAZMAT` Regulated

                    `Optional Field`
                apply_only_above_weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        If specified, this packaging supply is not a requirement
                        for packages under the given weight when "Always/Never
                        Apply to Goods Type" is specified.

                        `Optional Field`
                one_per:
                  type: string
                  description: >-
                    The expected number of scans per shipment. The product "Unit
                    Quantity" is used as a multiplier for "One Scan Per: Each".
                  enum:
                    - order
                    - package
                    - item
                    - each
                require_scan_timing:
                  type: string
                  description: >-
                    Choose how the scan timer should begin recording time data
                    on this product or packaging feature.
                  enum:
                    - after_product_scan|on_full
                    - on_start
                disable_confirm_button:
                  type: boolean
                  description: >-
                    If "No", the user will be able to tap "Confirm" rather than
                    scanning a barcode.
                  enum:
                    - true
                    - false
                require_packaging_type:
                  type: string
                  description: >-
                    If specified, this packaging feature will only be applicable
                    when the container meets the chosen criteria based on the
                    container's "Satisfies Overbox" attribute when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - overbox
                    - non_overbox
                apply_to_region:
                  type: string
                  description: >-
                    Unless specified, this packaging feature will apply to all
                    regions when "Always/Never Apply to Goods Type" is
                    specified.
                apply_unless_container_meets_hazmat:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will be applicable unless a
                    package contains a DG item with "Container Meets Hazmat
                    Specs: Yes" when "Always/Never Apply to Goods Type" is
                    specified.
                  enum:
                    - true
                    - false
                apply_to_multi_sku_package:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will only be applied to
                    packages containing more than one SKU when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - true
                    - false
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    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
            unit_level:
              type: string
              nullable: true
              enum:
                - each
                - inner_pack
                - case
                - pallet
                - null
              description: >-
                The declared packaging level used by Replenishment Policy Move
                In selection.

                Omit to preserve the current value, or set null to clear it.
                Saves that contradict

                the quantity-family size order are refused and identify both
                Products. Changing

                the level refreshes affected Replenishment Tasks. This field is
                optional.
              example: case
            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_Warehouse:
      title: Warehouse
      type: object
      description: >-
        A `Warehouse` represents a physical location from which you can store
        inventory and perform operations independently of other warehouses.
      properties:
        type:
          type: string
          enum:
            - Warehouse
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          format: int32
          example: 3
          readOnly: true
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
        name:
          type: string
          example: East Coast 1
          maxLength: 255
          description: The display name for the `Warehouse`.
        abbreviation:
          type: string
          maxLength: 10
          nullable: true
          example: EC1
          description: >-
            A short abbreviation for the `Warehouse`, up to 10 characters.
            Recommended to be fewer than 6 characters.\
              `Optional Field`
        is_active:
          type: boolean
          example: true
          description: >-
            This flag determines if the `Warehouse` is active and viable for
            fulfillment.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_Location:
      title: Location
      type: object
      description: >-
        A Location describes a user-specified inventory address within a
        warehouse.
      properties:
        type:
          type: string
          enum:
            - Location
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          example: 42
          readOnly: true
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
        label:
          type: string
          nullable: true
          example: A4-55-C3
          description: >-
            The human-readable name of a location and also the value encoded in
            location's barcode label.

            This value must be unique within each warehouse.
        priority:
          type: integer
          example: 10
          description: >-
            The inventory reservation order relative to other locations
            containing the same product.
        qty_putaway:
          type: number
          format: double
          example: 10
          readOnly: true
          nullable: true
          description: >-
            The quantity of a product associated with a Delivery that have not
            yet been committed to the inventory.
        qty_unreserved:
          type: number
          format: double
          example: 20
          readOnly: true
          nullable: true
          description: >-
            The quantity of a product not yet assigned to a specific Shipment.
            This does not imply that the inventory is Available.
        qty_reserved:
          type: number
          format: double
          example: 4
          readOnly: true
          nullable: true
          description: >-
            The quantity assigned to a Shipment or Work Order and ready to be
            picked.
        qty_on_hand:
          type: number
          format: double
          example: 34
          readOnly: true
          nullable: true
          description: >-
            The "On Hand" amount is the same as Put-Away + Unreserved + Reserved
            quantities.
        qty_locked:
          type: number
          format: double
          example: 4
          readOnly: true
          nullable: true
          description: >-
            The quantity that is reserved to a Shipment or Work Order as chosen
            specifically by a user and therefore should not be re-reserved to a
            new location on the fly in the event that an adjustment needs to
            re-optimize pick locations. This amount is already included in
            `qty_reserved` so is not added again to `qty_on_hand`.\
              `Optional Field`
        is_temp:
          type: boolean
          example: false
          readOnly: true
          nullable: true
          description: >-
            Temporary locations are used to track inventory that is being
            relocated and cannot be created or modified.\
              `Optional Field`
        is_pickable:
          type: boolean
          example: true
          nullable: true
          readOnly: true
          description: >-
            Whether or not the location is considered to be easy to pick from
            for the purpose of generating pickable batches.\
              `Optional Field`
        is_type_auto:
          type: boolean
          example: true
          nullable: true
          description: >-
            If Slot Type is "Automatic" then it will cause the type to be
            maintained automatically according to the Auto-Assign Patterns of
            the slot types.\
              `Optional Field`
        created_at:
          type: string
          format: datetime
          example: '2021-11-17T14:32:44Z'
          readOnly: true
          nullable: true
          description: |-
            The date and time when the object was created.\
              `Optional Field`
        updated_at:
          type: string
          format: datetime
          example: '2021-11-17T14:32:44Z'
          readOnly: true
          description: |-
            The date and time when the object was last updated.\
              `Optional Field`
        last_cyclecount_at:
          type: string
          format: datetime
          example: '2021-11-17T14:32:44Z'
          readOnly: true
          nullable: true
          description: |-
            The date and time when last cycle count was performed.\
              `Optional Field`
        tags:
          type: array
          description: >-
            The `LocationTag` objects assigned to this location. Soft-deleted
            tags remain assigned and

            are still listed, so resolve each reference to learn its current
            state.


            On create or update, a submitted array replaces the location's whole
            tag set (an empty

            array clears it) and an omitted key leaves it untouched. A
            soft-deleted tag may remain

            assigned but cannot be newly assigned. See the batch tags operation
            for adding or removing

            tags across many locations at once.\
              `Optional Field`
          items:
            $ref: '#/components/schemas/Inventory_API_v1_LocationTagRef'
        lot:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_LotRef'
            - description: A reference to the `Lot` object assigned to this location.
        product:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_StockableProductRef'
            - description: A reference to the stockable product assigned to this location.
        rack:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_RackRef'
            - description: >-
                A reference to the `Rack` to which this location is assigned.
                This may be managed automatically or assigned manually.
        slot_type:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_SlotTypeRef'
            - description: >-
                A reference to the `SlotType` object assigned to this location.
                This may be managed automatically or assigned manually.
        keep_capacity_on_slot_type_change:
          type: boolean
          writeOnly: true
          default: false
          example: false
          description: >-
            The location's own capacity figures were observed for its current
            Slot Type. When an update changes the

            `slot_type`, they are reset for every product and the location's
            capacity history records the reset.

            Send `true` to keep them instead; the history then records that they
            were kept. Ignored on create and when

            the Slot Type does not change.
    Inventory_API_v1_Pattern:
      title: SlotTypePattern
      type: object
      description: >-
        A rule that assigns its slot type to every location whose label matches
        `regex`, applied only

        to locations that are still set to automatic slot type assignment.
      properties:
        description:
          type: string
          example: Pallet racks on aisles A through D
          description: An explanation of which locations the pattern is meant to capture.
        regex:
          type: string
          example: P-[A-D]-\d+
          description: A regular expression matched against the whole location label.
        warehouses:
          type: array
          description: >-
            The warehouses the pattern applies to. An empty list, or omitting
            the property on a

            request, applies it to every warehouse. Always present in responses.
          items:
            $ref: '#/components/schemas/Inventory_API_v1_WarehouseRef'
      required:
        - description
        - regex
      additionalProperties: false
    Inventory_API_v1_DimensionsWHD:
      title: DimensionsWHD
      type: object
      nullable: true
      properties:
        width:
          type: number
          description: The width defined as a floating-point number up to 4 decimal places.
          format: float
          example: 48
        height:
          type: number
          description: >-
            The height defined as a floating-point number up to 4 decimal
            places.
          format: float
          example: 60
        depth:
          type: number
          description: The depth defined as a floating-point number up to 4 decimal places.
          format: float
          example: 42
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_LengthUnit'
    Inventory_API_v1_WeightNonNegative:
      title: WeightNonNegative
      type: object
      nullable: true
      description: >-
        A weight that describes a capacity or an allowance rather than a
        measurement, and so cannot be

        negative. Send `null` rather than an object without a `value` to clear a
        stored weight.
      required:
        - value
      properties:
        value:
          type: number
          description: >-
            The weight quantity defined as a floating point value of up to 4
            decimal places.
          format: float
          minimum: 0
          maximum: 99999999.999999
          example: 20
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_WeightUnit'
    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_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_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_barcodes:
      anyOf:
        - type: string
          nullable: true
          example: 956623520-4
        - type: array
          items:
            type: string
          nullable: true
          example:
            - 956623520-4
            - O-VS-Oregano-p3
    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_ProductRef:
      title: ProductRef
      type: object
      description: A reference to a `Product` object by `id`.
      properties:
        type:
          type: string
          enum:
            - Product
          description: This property describes the type of object in the response body.
        id:
          type: integer
          format: int32
          example: 3
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      additionalProperties: false
    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_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_Length:
      title: Length
      type: object
      nullable: true
      properties:
        value:
          type: number
          description: >-
            This value describes the length of the object as a floating-point
            number up to 4 decimal places.
          format: float
          example: 12
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_LengthUnit'
    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_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_LocationTagRef:
      title: LocationTagRef
      type: object
      description: A reference to a `LocationTag` object.
      properties:
        type:
          type: string
          enum:
            - LocationTag
          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.
          example: 4
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_LotRef:
      title: LotRef
      type: object
      description: >-
        A reference to a `Lot` object. The Lot records the time some inventory
        was originated (first received or

        otherwise created) and optionally a lot number and expiration date and
        may affect the order in which

        inventory is "burned" depending on the `LotType`.
      properties:
        type:
          type: string
          enum:
            - Lot
          description: This property describes the type of object in the response body.
        id:
          type: integer
          example: 54
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_RackRef:
      title: RackRef
      type: object
      description: >-
        A `Rack` is a grouping of locations in a warehouse implying a very close
        proximity.
      properties:
        type:
          type: string
          enum:
            - Rack
          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_LengthUnit:
      type: string
      description: The imperical or metric unit of measurement.
      enum:
        - in
        - mm
        - cm
        - m
    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_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_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_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_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_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-bad-request:
      description: >-
        The request was invalid. The client must change the request. See the
        response body for more details.
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      type: string
                      description: The error type code.
                      enum:
                        - parser
                        - parameters
                        - openapi
                    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: 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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.