Skip to main content
Proposed defaults — pending product confirmation. The exact rate-limit values and header names below are aligned with industry conventions (AWS, GitHub, Stripe). Concrete numbers for the BlooBank Transactions Engine will be finalized before this page exits “Proposed” status.
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.