Skip to main content
The Bloobank API applies rate limits per credential to protect platform stability. This page documents how clients should interpret rate-limit responses and back off gracefully.

How limits are applied

Limits are applied after authentication. An unauthenticated burst will fail with SIGNATURE_INVALID long before it consumes quota.

When you exceed a limit

The API returns HTTP 429 with error.status: "RESOURCE_EXHAUSTED":
The response also includes a Retry-After HTTP header carrying the same hint as metadata.retry_after_seconds.
1

Honor Retry-After when present

Use either the Retry-After header or details[0].metadata.retry_after_seconds. Wait at least that long before retrying.
2

Apply exponential backoff with jitter

For repeated RESOURCE_EXHAUSTED (or in absence of Retry-After), back off exponentially: min(2^attempt × base_delay, max_delay) and add full jitter.
3

Bound your retries

Three attempts is a reasonable default. After that, surface the failure to the caller — escalating without backoff would compound the throttling.
4

Keep `idempotencyKey` stable across retries

Throttled creates should retry with the same idempotencyKey so a partially-succeeded request is not duplicated. See Idempotency.

Backoff reference

A canonical exponential backoff with full jitter (AWS guidance):

What does not count against quota

  • Failed authentication (SIGNATURE_INVALID, TIMESTAMP_SKEW_EXCEEDED, REPLAY_DETECTED). These are rejected at the edge and do not consume per-endpoint quota — but they do consume an authentication-attempt quota with its own (more permissive) limit.
  • Webhook acknowledgements (your 2xx response to a delivery). Webhooks are server→you; no quota applies on the return path.

Best practices

Increasing your limit

Per-credential limits are configurable for production workloads. To request an increase, contact your Bloobank account team with:
  1. Your X-Access-Key (the credential needing the bump).
  2. The endpoint(s) and target rate.
  3. A brief description of the workload (steady vs. bursty, peak hours, etc.).

Next

Retry strategy

Backoff for UNAVAILABLE and RESOURCE_EXHAUSTED in detail.

Webhooks

Reduce polling — receive state changes by push.