Skip to main content
Each API key can make 25 requests per second. Bulk endpoints count as one request, however many ids they carry.
Your codeAPI key
Tolt25 req/s
1GET /v2/partners (26th/s)
2429 Retry-After: 1
3wait 1s
4GET /v2/partners
5200 X-RateLimit-Remaining: 24

Headers

Over the limit, you get 429:

Back off and retry

The SDKs already retry twice, waiting for Retry-After: TypeScript on 408, 429 and 5xx; Python on 408, 409, 429, 5xx and connection errors. Raise maxRetries (TypeScript) or max_retries (Python) if you need more. With plain HTTP, wait yourself:
TypeScript
POST /v2/transactions has no idempotency key, but a charge_id acts as one per customer: retrying a request that carries one is safe, because a transaction that was already created comes back as 409 already_exists. Without a charge_id, a 429 is still safe to retry (nothing was written), but a timeout or 5xx may have created the transaction, so check with GET /v2/transactions?customer_id=... before retrying and turn off SDK retries for this call: { maxRetries: 0 } in TypeScript, request_options={"max_retries": 0} in Python.

Stay under the limit

  • Page with limit=100 instead of many small pages.
  • Use bulk endpoints (/bulk/approve, /bulk/decline, /bulk/reject) for up to 100 ids per call.
  • Use webhooks instead of polling.
  • Watch X-RateLimit-Remaining and slow down before it hits zero.
Need more? Email support@tolt.io.