List Inventory Levels
GET/api/odoo-3pl/:integration_instance/inventory
Lists the stock Odoo 3PL (ShipPro) reports, one row per product per ShipPro location — rented locations and the bins and docks inside them.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
location_path is the full ShipPro path of the row's location. location_name is the rented location's name when the row sits directly in a rented location, otherwise the row's own path.
resolved_warehouse_id / resolved_warehouse_name give the SKU.io warehouse the stock belongs to: the warehouse mapped to the row's rented location, or — for a bin or dock — to the rented location whose path is the longest whole-segment prefix of the row's path (e.g. US/Stock/AREA-1/A-15-A resolves through US/Stock/AREA-1). Null when no mapped rented location covers the row.
Filters (all optional): filter[search] (product name, SKU, barcode), filter[stock_location_id] (comma-separated ShipPro location ids, exact), filter[only_mapped] (true = only products mapped to a SKU.io product), and operator filters filter[<field>.<operator>] on id, quantity, reserved, available (operators: is, is_not, is_one_of, is_not_one_of, greater_than, less_than, greater_than_or_equal, less_than_or_equal, between, is_empty, is_not_empty) and last_synced_at.
Sorts: id, quantity, reserved, available, last_synced_at, product_name, location_name (prefix with - for descending; default -id).
Pagination: page, per_page (default 10).
Authentication: requires a Bearer token.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.