ShipBob subpackage_inventory API

The subpackage_inventory API from ShipBob — 9 operation(s) for subpackage_inventory.

OpenAPI Specification

shipbob-subpackage-inventory-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API Reference subpackage_billing subpackage_inventory API
  version: 1.0.0
servers:
- url: https://api.shipbob.com
- url: https://sandbox-api.shipbob.com
tags:
- name: subpackage_inventory
paths:
  /2026-01/inventory-level:
    get:
      operationId: get-all-inventory-levels
      summary: Get All Inventory Levels
      description: Retrieves current inventory levels across all locations. Returns available, on-hand, committed, and other quantity types. Supports filtering by inventory IDs and product attributes.
      tags:
      - subpackage_inventory
      parameters:
      - name: SearchBy
        in: query
        description: 'Search is available for 3 fields: Inventory ID, Name, and SKU. Expected behavior for search by Inventory ID is exact match. Expected behavior for search by Inventory Name or SKU is partial match (consecutive characters, case insensitive).'
        required: false
        schema:
          type: string
      - name: InventoryIds
        in: query
        description: Comma-separated list of inventory IDs to filter results. Use this to retrieve inventory levels for specific inventory items only.
        required: false
        schema:
          type: string
      - name: IsActive
        in: query
        description: Filter inventory levels by active status. Set to true to return only active inventory items, false for inactive items. Omit to return all items regardless of status.
        required: false
        schema:
          type: boolean
      - name: IsDigital
        in: query
        description: Filter inventory levels by digital product status. Set to true to return only digital products, false for physical products. Digital products are items that don't require physical fulfillment.
        required: false
        schema:
          type: boolean
      - name: PageSize
        in: query
        description: Number of inventory level items to return per page. Controls pagination size for the response.
        required: false
        schema:
          type: string
          format: int32
      - name: SortBy
        in: query
        description: Sort results by field name. Default is ascending order. Prefix with '-' for descending order (e.g., '-total_on_hand_quantity' sorts by quantity descending). Multiple fields can be comma-separated.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryQuantityResponsePagedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory-level/{inventoryId}:
    get:
      operationId: get-inventory-levels
      summary: Get Inventory Levels
      description: Retrieves the aggregated inventory levels for a specific inventory item across all locations, including available, on-hand, committed, and other quantity types.
      tags:
      - subpackage_inventory
      parameters:
      - name: inventoryId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryQuantityResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory/{inventoryId}:
    get:
      operationId: get-inventory
      summary: Get Inventory
      description: Retrieves detailed information about a specific inventory item by its ID, including product details, variant information, and associated metadata.
      tags:
      - subpackage_inventory
      parameters:
      - name: inventoryId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory:
    get:
      operationId: get-all-inventories
      summary: Get All Inventories
      description: Retrieves a paginated list of all inventory items. Supports filtering by active status, tags, and various product attributes. Use query parameters to search and filter results.
      tags:
      - subpackage_inventory
      parameters:
      - name: SearchBy
        in: query
        description: 'Search is available for 3 fields: Inventory ID, Name, and SKU. Expected behavior for search by Inventory ID is exact match. Expected behavior for search by Inventory Name or SKU is partial match (consecutive characters, case insensitive).'
        required: false
        schema:
          type: string
      - name: FilterOperations
        in: query
        description: Advanced filtering operations. Apply multiple key-value filters to refine inventory results. Each filter operation contains a 'key' (field name) and 'rawValue' (filter value) to match.
        required: false
        schema:
          type: string
      - name: InventoryIds
        in: query
        description: Comma-separated list of inventory IDs to filter results. Use this to retrieve information for specific inventory items only.
        required: false
        schema:
          type: string
      - name: IsActive
        in: query
        description: Filter by active status. True returns only active inventory items, False returns only inactive items. Omit to return both.
        required: false
        schema:
          type: boolean
      - name: IsDigital
        in: query
        description: Filter by digital product status. True returns only digital products (no physical fulfillment), False returns only physical products. Omit to return both.
        required: false
        schema:
          type: boolean
      - name: PageSize
        in: query
        description: Number of items to return per page. Controls pagination size for the response.
        required: false
        schema:
          type: string
          format: int32
      - name: SortBy
        in: query
        description: Sort results by field name. Default is ascending order. Prefix with '-' for descending order (e.g., '-name' sorts by name descending). Multiple fields can be comma-separated.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryResponsePagedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory/history:query:
    post:
      operationId: query-inventory-history-events
      summary: Query Inventory History Events
      description: Fetches inventory movement events that change on-hand quantities within the ShipBob network. Returns events such as receiving/stow, order picks, adjustments, restocks, and attribute updates. Filter by inventory IDs, event category, date range, and facility. Supports cursor-based pagination for large result sets.
      tags:
      - subpackage_inventory
      parameters:
      - name: cursor
        in: query
        description: ''
        required: false
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FulfillmentCenterInventoryService.InventoryHistoryResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FulfillmentCenterInventoryService.MerchantHistoryRequest'
  /2026-01/inventory-level/locations:
    get:
      operationId: get-all-inventory-levels-grouped-by-fulfillment-center
      summary: Get All Inventory Levels Grouped By Fulfillment Center
      description: Retrieves inventory levels for all inventory items grouped by fulfillment center location. Supports filtering by location type, location ID, and various product attributes.
      tags:
      - subpackage_inventory
      parameters:
      - name: LocationType
        in: query
        description: 'Filter by location type. Valid values: ''hub'', ''spoke'', or ''lts''. Defaults to all locations if not specified.'
        required: false
        schema:
          type: string
      - name: LocationId
        in: query
        description: Filter by specific fulfillment center location ID. Use this to retrieve inventory levels for a particular fulfillment center.
        required: false
        schema:
          type: string
          format: int32
      - name: SearchBy
        in: query
        description: 'Search is available for 3 fields: Inventory ID, Name, and SKU. Expected behavior for search by Inventory ID is exact match. Expected behavior for search by Inventory Name or SKU is partial match (consecutive characters, case insensitive).'
        required: false
        schema:
          type: string
      - name: InventoryIds
        in: query
        description: Comma-separated list of inventory IDs to filter results. Use this to retrieve location-grouped inventory levels for specific inventory items only.
        required: false
        schema:
          type: string
      - name: IsActive
        in: query
        description: Filter inventory levels by active status. Set to true to return only active inventory items, false for inactive items. Omit to return all items regardless of status.
        required: false
        schema:
          type: boolean
      - name: IsDigital
        in: query
        description: Filter inventory levels by digital product status. Set to true to return only digital products, false for physical products. Digital products are items that don't require physical fulfillment.
        required: false
        schema:
          type: boolean
      - name: PageSize
        in: query
        description: Number of location-grouped inventory level items to return per page. Controls pagination size for the response.
        required: false
        schema:
          type: string
          format: int32
      - name: SortBy
        in: query
        description: Sort results by field name. Default is ascending order. Prefix with '-' for descending order (e.g., '-name' sorts by name descending). Multiple fields can be comma-separated.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryQuantityFcResponsePagedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory-level/{inventoryId}/locations:
    get:
      operationId: get-inventory-levels-grouped-by-fulfillment-center
      summary: Get Inventory Levels Grouped By Fulfillment Center
      description: Retrieves inventory levels for a specific inventory item broken down by fulfillment center location. Shows quantity breakdowns for each location where the inventory is stored.
      tags:
      - subpackage_inventory
      parameters:
      - name: inventoryId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryQuantityFcResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory-level/lots:
    get:
      operationId: get-all-inventory-levels-grouped-by-lot
      summary: Get All Inventory Levels Grouped By Lot
      description: Retrieves inventory levels for all inventory items grouped by lot number. Enables tracking of inventory across multiple lots, including expiration dates and manufacturing batch information.
      tags:
      - subpackage_inventory
      parameters:
      - name: LocationId
        in: query
        description: Filter by specific fulfillment center location ID. Use this to retrieve lot-based inventory levels for a particular warehouse or distribution center.
        required: false
        schema:
          type: string
          format: int32
      - name: SearchBy
        in: query
        description: 'Search is available for 3 fields: Inventory ID, Name, and SKU. Expected behavior for search by Inventory ID is exact match. Expected behavior for search by Inventory Name or SKU is partial match (consecutive characters, case insensitive).'
        required: false
        schema:
          type: string
      - name: InventoryIds
        in: query
        description: Comma-separated list of inventory IDs to filter results. Use this to retrieve lot-grouped inventory levels for specific inventory items only.
        required: false
        schema:
          type: string
      - name: IsActive
        in: query
        description: Filter inventory levels by active status. Set to true to return only active inventory items, false for inactive items. Omit to return all items regardless of status.
        required: false
        schema:
          type: boolean
      - name: IsDigital
        in: query
        description: Filter inventory levels by digital product status. Set to true to return only digital products, false for physical products. Digital products are items that don't require physical fulfillment.
        required: false
        schema:
          type: boolean
      - name: PageSize
        in: query
        description: Number of lot-grouped inventory level items to return per page. Controls pagination size for the response.
        required: false
        schema:
          type: string
          format: int32
      - name: SortBy
        in: query
        description: Sort results by field name. Default is ascending order. Prefix with '-' for descending order (e.g., '-lot_date' sorts by lot date descending). Multiple fields can be comma-separated.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryQuantityLotResponsePagedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/inventory-level/{inventoryId}/lots:
    get:
      operationId: get-inventory-levels-grouped-by-lot
      summary: Get Inventory Levels Grouped By Lot
      description: Retrieves inventory levels for a specific inventory item broken down by lot number. Useful for tracking inventory by manufacturing lot, expiration date, or batch information.
      tags:
      - subpackage_inventory
      parameters:
      - name: inventoryId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.InventoryQuantityLotResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
components:
  schemas:
    Inventory.InventoryQuantityResponsePagedResponse:
      type: object
      properties:
        first:
          type:
          - string
          - 'null'
          description: URL to retrieve the first page of results. Null if already on the first page.
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Inventory.InventoryQuantityResponse'
          description: Array of inventory quantity items in the current page of results.
        last:
          type:
          - string
          - 'null'
          description: URL to retrieve the last page of results. Null if already on the last page.
        next:
          type:
          - string
          - 'null'
          description: URL to retrieve the next page of results. Null if on the last page.
        prev:
          type:
          - string
          - 'null'
          description: URL to retrieve the previous page of results. Null if on the first page.
      title: Inventory.InventoryQuantityResponsePagedResponse
    Inventory.WeightResponse:
      type: object
      properties:
        unit:
          type:
          - string
          - 'null'
          description: Unit of measurement for weight (e.g., pounds, kilograms)
        value:
          type: number
          format: double
          description: Weight value of the inventory item
      title: Inventory.WeightResponse
    Inventory.HazmatResponse:
      type: object
      properties:
        is_hazmat:
          type: boolean
          description: Indicates if the inventory item is classified as hazardous material
        validated:
          type: boolean
          description: Indicates whether hazmat status has been validated and confirmed
      title: Inventory.HazmatResponse
    Inventory.InventoryResponsePagedResponse:
      type: object
      properties:
        first:
          type:
          - string
          - 'null'
          description: URL to retrieve the first page of results. Null if already on the first page.
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Inventory.InventoryResponse'
          description: Array of inventory items in the current page of results.
        last:
          type:
          - string
          - 'null'
          description: URL to retrieve the last page of results. Null if already on the last page.
        next:
          type:
          - string
          - 'null'
          description: URL to retrieve the next page of results. Null if on the last page.
        prev:
          type:
          - string
          - 'null'
          description: URL to retrieve the previous page of results. Null if on the first page.
      title: Inventory.InventoryResponsePagedResponse
    Inventory.InventoryQuantityFcResponse:
      type: object
      properties:
        inventory_id:
          type: integer
          description: Unique identifier for the inventory item
        locations:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Inventory.FulfillmentCenterResponse'
          description: List of fulfillment centers and their respective inventory quantities
        name:
          type:
          - string
          - 'null'
          description: Name of the inventory item
        sku:
          type:
          - string
          - 'null'
          description: Stock keeping unit identifier
      title: Inventory.InventoryQuantityFcResponse
    Inventory.InventoryQuantityFcResponsePagedResponse:
      type: object
      properties:
        first:
          type:
          - string
          - 'null'
          description: URL to retrieve the first page of results. Null if already on the first page.
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Inventory.InventoryQuantityFcResponse'
          description: Array of location-grouped inventory quantity items in the current page of results.
        last:
          type:
          - string
          - 'null'
          description: URL to retrieve the last page of results. Null if already on the last page.
        next:
          type:
          - string
          - 'null'
          description: URL to retrieve the next page of results. Null if on the last page.
        prev:
          type:
          - string
          - 'null'
          description: URL to retrieve the previous page of results. Null if on the first page.
      title: Inventory.InventoryQuantityFcResponsePagedResponse
    FulfillmentCenterInventoryService.InventoryHistoryDetails:
      type: object
      properties:
        committed_quantity_change:
          type: integer
          description: The change in committed (allocated) quantity.
        expiration_date:
          type:
          - string
          - 'null'
          format: date-time
          description: The expiration date for this inventory lot, if applicable.
        facility_id:
          type: integer
          description: The fulfillment center ID where this quantity change occurred.
        inventory_status:
          type:
          - string
          - 'null'
          description: The current status of the inventory.
        location_id:
          type: integer
          description: The physical shelf/bin location ID within the fulfillment center.
        lot_number:
          type:
          - string
          - 'null'
          description: The lot number associated with this inventory, if applicable.
        operational_stage:
          $ref: '#/components/schemas/FulfillmentCenterInventoryService.YukiOperationalStageEnumTypeResponse'
          description: The operational stage of the inventory (e.g., available, reserved, in-transit).
        pack_description_id:
          $ref: '#/components/schemas/FulfillmentCenterInventoryService.Ulid'
          description: Identifier for the packaging configuration of this inventory.
        quantity_change:
          type: integer
          description: The change in on-hand quantity. Positive for increments, negative for decrements.
        sku:
          type:
          - string
          - 'null'
          description: The merchant SKU for this inventory item.
        yuki_id:
          $ref: '#/components/schemas/FulfillmentCenterInventoryService.Ulid'
          description: Unique identifier for the physical inventory unit (Yuki) in ShipBob's system.
      title: FulfillmentCenterInventoryService.InventoryHistoryDetails
    Inventory.ProblemDetails:
      type: object
      properties:
        detail:
          type:
          - string
          - 'null'
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
        status:
          type:
          - integer
          - 'null'
          description: The HTTP status code for this occurrence of the problem.
        title:
          type:
          - string
          - 'null'
          description: A short, human-readable summary of the problem type.
        type:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the problem type. This URI should provide human-readable documentation for the problem.
      title: Inventory.ProblemDetails
    Inventory.InventoryQuantityLotResponse:
      type: object
      properties:
        inventory_id:
          type: integer
          description: Unique identifier for the inventory item
        lots:
          type:
          - array
          - 'nu

# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shipbob/refs/heads/main/openapi/shipbob-subpackage-inventory-api-openapi.yml