Identity
Resolve your account, list vendors, stores, and suppliers.
Catalog: Items
Create, list, update, archive, and bulk-sync inventory items.
Catalog: Bulk sync
Sync units, suppliers, and classification assignments in bulk.
Recipes
Manage sales, production, and subrecipe definitions.
Operations
Record goods receipts, stock counts, waste, transfers, and production.
Procurement
Manage par levels and get suggested reorder quantities.
Webhooks
Subscribe to inventory transaction and purchase order events.
Base URL
/api/v1/public/.
The base URL is provided by Fire when you set up your integration. Use
https://stg.boh.api.fire.rest for staging and the production URL for live operations.Authentication
Every request requires an API key in thex-api-key header. API keys are created and managed from the Account & access → API keys screen in the BOH backoffice, or via the API Keys endpoints.
account header.
Key scopes
Each key is granted one or more scopes that restrict which endpoints it can call. A key with the* wildcard scope can call everything.
The vendor ID
Most routes include a{vendorId} path parameter. A vendor represents a BOH-configured entity (a restaurant brand or operating unit). Retrieve your vendor ID from List vendors or the backoffice.
Request and response format
- All request bodies use
Content-Type: application/json. - All responses are JSON.
- Timestamps are ISO 8601 (
2026-08-07T14:30:00.000Z). - Monetary amounts use the account currency (configured in Account settings).
Async write model
Most write operations (goods receipts, stock counts, waste events, transfers, production batches) are asynchronous. The response is immediate but the stock movements are posted within seconds. A successful write returns atracking_id:
GET /api/v1/public/operations/transactions/{trackingId} or GET /api/v1/public/operations/transactions to follow the processing status.
Idempotency
Submit the sameidempotency_key string twice; the second call returns the original response with "idempotent": true and does not reprocess. Idempotency keys expire after 24 hours.
Errors
All error responses share the same envelope:Rate limits
Default rate limits by scope:
When the limit is exceeded the response is
429 and includes Retry-After and X-RateLimit-* headers. Limits can be overridden per key by Fire support.
external_user_id
Endpoints that create or mutate operational documents accept an optionalexternal_user_id string in the body. BOH stores it as the human actor for audit purposes. For catalog CRUD it is optional; for operational documents it is strongly recommended.
