Skip to main content
Every request to the Ralph Studio API counts against your plan’s rate limit. Requests that exceed the limit are rejected with a 429 response they are not queued or delayed.

How limits work

Rate limits are measured in two ways simultaneously:
  • Requests per second (RPS): a burst limit on how many requests you can send in any single second
  • Requests per month: a rolling total across your billing period
Both limits apply at the same time. You can hit the monthly cap without ever triggering the per-second limit, and vice versa.

Per-plan limits

Limits apply per API key, not per account. If you have multiple keys on the same plan they each get the full limit.

Rate limit headers

Every response includes headers showing your current limit status:
Read these headers on every response and slow down before X-RateLimit-Remaining reaches zero.

429 response

When you exceed the limit:
The response still includes the rate limit headers so you know exactly when to retry:
Do not retry immediately. Wait until X-RateLimit-Reset before sending the next request.

Handling 429s in a script

Strategies for staying within limits

Batch with multicall Instead of calling call-contract once per token in a list, use multicall-contract to fetch all results in a single request:
One request instead of three. Use wider time windows for block queries Querying blocks in a single large window costs one request. Querying the same range in ten small windows costs ten:
Cache responses that do not change Some data is immutable once written. Cache these aggressively: Poll at a reasonable interval If you are watching for new transactions or blocks, polling faster than one block time gives you no new data but burns requests. Alephium produces one block every 16 seconds per chain on average.

Next steps

Error handling

Full error code reference and retry logic

Authentication

API keys, slugs, and header format