BigblueDevelopers

Rate limits

Each Bigblue account can make 200 requests per minute across all endpoints and API keys.

Limit
200 requests per minute
Per Bigblue account, not per API key.
Window
Rolling one minute
Not reset at the start of each minute.
Scope
All endpoints
Reads and writes from all integrations on the account share the limit.
When exceeded
HTTP 403
The code is resource_exhausted. The request is rejected.

Error response

403
{
  "code": "resource_exhausted",
  "msg": "You've exceeded your quota of requests per minute. Please try again in a few seconds."
}

The status is 403, not 429

Authentication errors also use 403. Check the code: resource_exhausted means rate limited, permission_denied means a problem with the key.

The API doesn't send X-RateLimit-* or Retry-After headers. Use backoff when you get resource_exhausted.

What counts

Every request with a valid key counts, including requests that fail validation. Requests with a missing or invalid key don't count.

All API keys on an account share the same limit. A batch job and a storefront on the same account use the same 200 requests per minute.

Staying under the limit

Use large pages

With pages of 250, 200 requests return 50,000 objects. With pages of 10, they return 2,000. See Pagination for the maximum page sizes.

Use webhooks instead of polling

Webhooks send inventory and order status changes to you and don't count against the limit.

Limit batch jobs

Run imports and nightly syncs in a separate worker with two to four requests at a time, so they don't block order creation.

Back off with jitter

On resource_exhausted, wait a few seconds before retrying. Add random jitter so parallel workers don't retry at the same moment. See the retry example.

Example: syncing a catalogue

For 8,000 products, 20,000 inventory rows and 5,000 orders:

WorkRequestsTime at 200 per minute
Create 8,000 products, one request each8,000About 40 minutes
Read 20,000 inventory rows with page_size: 100020Seconds
Read 5,000 orders with page_size: 10050Seconds

Creating objects takes the most requests because there are no batch endpoints. Run imports at a steady rate in the background, and leave room for live traffic.

On this page