Recipe / Inventory

Read Inventory and Stock with the BSimple API

Use the BSimple API to read products, quantities, suppliers, locations, PAR targets, reorder recommendations and stocktake progress.

requestv1
$ GET /api/v1/inventory/list?q=FILTER
scoped access · JSON response

Read Inventory and Stock with the BSimple API

Use the BSimple API when an external portal, ordering site, dashboard or workflow needs current inventory information. The API separates product records from location, PAR, reorder and stocktake resources so an integration can request only what it needs.

Required scopes

  • inventory:read for products and item quantities.
  • suppliers:read for supplier records.
  • locations:read for inventory locations.
  • reorder:read for PAR targets and reorder recommendations.
  • stocktakes:read for stocktake records, progress and variances.

Grant write access only when the integration genuinely needs to add inventory items. The current public API does not provide general stock adjustments or stocktake-count writes.

Find inventory items

Search products by code, name or description:

curl --fail --silent \
  --header "X-API-Key: ${BSIMPLE_API_KEY}" \
  "${BSIMPLE_API_BASE}/inventory/list?q=FILTER&page=1&per_page=20"

Use /inventory/get/<code-or-id> to retrieve one item. The item code is the preferred business identifier when your application already has it.

Read locations

Use /locations/list to discover active physical or virtual locations, then /locations/get/<id> for a location detail response. Keep the BSimple location identifier in your integration rather than relying only on a display name, because names can change.

Read PAR and reorder information

PAR data helps an external dashboard understand the target quantity and current shortfall for a product at a location:

  • /par/list returns location/product PAR information.
  • /par/get/<location_id>/<product_id> returns the current quantity, target and non-negative shortfall.
  • /reorder/list returns products below their target, with an optional supplier filter.

These endpoints are read-only through the current public API. The integration can recommend or display purchasing work, but it should not imply that it can submit a purchase order unless a future API release adds that capability.

Read stocktakes

The stocktake endpoints expose the operational state of a count without allowing the external application to alter the count:

  • /stocktakes/list finds stocktakes by completion or location.
  • /stocktakes/active finds the current unfinished stocktake.
  • /stocktakes/expected/<id> reads expected location-scoped rows.
  • /stocktakes/progress/<id> reads total, counted, remaining and variance counts.
  • /stocktakes/not-counted/<id> finds expected products still outstanding.
  • /stocktakes/variance/<id> finds completed rows that differ from the snapshot.

This is useful for a warehouse dashboard or management report that needs visibility without becoming the system that performs the count.

Pagination and freshness

All list responses use the standard data and meta envelope. Follow meta.total_pages and store the last successful page or checkpoint in your integration. If an external ordering system needs a guaranteed current quantity, request the relevant item or location data at the point where the decision is made rather than relying indefinitely on a cached response.

The current public API does not provide webhooks. Read polling and reconciliation before designing a synchronisation loop.

Related documentation

Ready when you are

Build it against
a real account.

Build with a free trial