Authentication
Send your API key as a bearer token with every request.
The Authorization header
POST /bigblue.storeapi.v1.PublicAPI/ListOrders HTTP/1.1
Host: api.bigblue.co
Authorization: Bearer <api_key>
Content-Type: application/json
{}This is the only supported method. Query-string keys, basic auth and OAuth aren't supported.
Creating keys
Create keys in the Bigblue app by creating an integration. Each key belongs to an integration, and the API reads these integration settings on every request:
- Primary warehouse
- Warehouse IDDefault warehouse for auto-fulfilled orders. Override it per order with
auto_fulfill_warehouse. - Auto-fulfill orders
- On or offWhether orders created with this key go to the warehouse automatically. You can't set this per request.
- Display name
- TextShown in the app so you can tell integrations apart.
Two keys on the same account can therefore handle the same
CreateOrder request differently. If
auto-fulfillment is off, the auto_fulfill_* fields on the order are ignored.
Use one key per system
Create a separate integration for each system that calls Bigblue. Orders record
the integration that created them, and
ListOrders with via_api: true returns only the
calling key's orders.
Scope
A key gives access to one Bigblue account and one integration. You can only read and write that account's data.
Your account has a four-character tenant code. Product, bundle, order and return
IDs start with it: an account with the tenant BGBL has products such as
BGBL-ESPSRT-SMAL and bundles such as BGBLBU-KITSTA-2024. See
Identifiers.
Rotating keys
You can have several active keys, so you can rotate without downtime:
Requests with a revoked key fail with permission_denied. Data created with that
key isn't affected.
Errors
{ "code": "unauthenticated", "msg": "api key must be included" }Check that the header is named Authorization and that the value starts with
Bearer followed by a space.
{ "code": "permission_denied", "msg": "unauthorized" }The response is the same in all three cases. Check that you copied the whole key.
403 is also used for rate limiting
A 403 with the code resource_exhausted means you exceeded the rate limit. Check
the code field, not only the HTTP status. See
Rate limits.
Storing keys
- Keep keys on your server, in a secret manager. Never put them in browser code, mobile apps or public repositories.
- Bigblue logs each request with its integration, method and payload. You can review activity per key in the app.
- There is no sandbox or test key. Test with read-only requests first, and delete any test products you create.
Webhooks use a different secret
Webhook requests come from Bigblue to you and don't use your API key. Bigblue signs them with your account's shared secret. See Verify signatures.