Barcode Lookup
GET/api/products/barcode-lookup
Exact-match barcode or SKU lookup for barcode scanning. Prioritises barcode match first, then falls back to SKU match. Only active products are returned. Returns null in data if no match found.
products:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Including stock levels — add ?with=inventory to return the aggregate (all-warehouse) stock figures alongside each match, instead of making a second call per product. It costs one extra indexed query for the whole batch, so a batch of 500 with stock levels still costs about the same as a batch of 5.
inventory_available is floored at zero and is what a picker can pull today. inventory_available_to_sell is the promiseable figure — it excludes stock in transit and subtracts backorders, and goes negative when commitments exceed stock on hand. A product that has never held stock has no inventory record and reads as zero across all six fields rather than null.
Request
Responses
- 200
- 401
- 403
- 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.
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.