Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/shipbob-subpackage-inventory-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: 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:
FulfillmentCenterInventoryService.InventoryHistoryResponse:
type: object
properties:
data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/FulfillmentCenterInventoryService.InventoryHistory'
description: Array of inventory history events matching the query criteria.
first:
type:
- string
- 'null'
description: URL to retrieve the first page of results.
last:
type:
- string
- 'null'
description: URL to retrieve the last page of results.
next:
type:
- string
- 'null'
description: URL to retrieve the next page of results. Null if no more results available.
prev:
type:
- string
- 'null'
description: URL to retrieve the previous page of results. Null if on the first page.
title: FulfillmentCenterInventoryService.InventoryHistoryResponse
Inventory.FulfillmentCenterResponse:
type: object
properties:
awaiting_quantity:
type: integer
description: Quantity expected to arrive at this location
committed_quantity:
type: integer
description: Quantity reserved for existing orders at this location
fulfillable_quantity:
type: integer
description: Quantity available to fulfill new orders at this location
internal_transfer_quantity:
type: integer
description: Quantity in transit to or from this location
location_id:
type: integer
description: Unique identifier for the fulfillment center location
name:
type:
- string
- 'null'
description: Name of the fulfillment center
on_hand_quantity:
type: integer
description: Total quantity physically present at this location
title: Inventory.FulfillmentCenterResponse
Inventory.Lots:
type: object
properties:
awaiting_quantity:
type: integer
description: Quantity expected to arrive for this lot
committed_quantity:
type: integer
description: Quantity reserved for existing orders from this lot
fulfillable_quantity:
type: integer
description: Quantity available to fulfill new orders for this lot
internal_transfer_quantity:
type: integer
description: Quantity in transit between locations for this lot
locations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Inventory.FulfillableQuantityByFulfillmentCenter'
description: Breakdown of lot quantities by fulfillment center location
lot_date:
type:
- string
- 'null'
format: date-time
description: Expiration or manufacturing date associated with this lot
lot_number:
type:
- string
- 'null'
description: Unique lot or batch number for this inventory grouping
on_hand_quantity:
type: integer
description: Total quantity physically present for this lot
title: Inventory.Lots
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
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.InventoryResponse:
type: object
properties:
barcode:
type:
- string
- 'null'
description: Barcode associated with the inventory item
dimensions:
$ref: '#/components/schemas/Inventory.DimensionsResponse'
description: Physical dimensions of the inventory item
inventory_id:
type: integer
description: Unique identifier for the inventory item
is_case:
type: boolean
description: Indicates if the inventory item is stored in cases
is_lot:
type: boolean
description: Indicates if the inventory item is tracked by lot number
name:
type:
- string
- 'null'
description: Name of the inventory item
sku:
type:
- string
- 'null'
description: Stock keeping unit identifier
user_id:
type: integer
description: User ID associated with this inventory item
variant:
$ref: '#/components/schemas/Inventory.VariantResponse'
description: Variant details including active status and product characteristics
weight:
$ref: '#/components/schemas/Inventory.WeightResponse'
description: Weight information of the inventory item
title: Inventory.InventoryResponse
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.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
FulfillmentCenterInventoryService.YukiOperationalStageEnumTypeResponse:
type: object
properties:
description:
type:
- string
- 'null'
description: Human-readable description of the operational stage (e.g., 'Available', 'Reserved', 'In T
# --- 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