> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arena-predictions.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retries and idempotency

> Which calls are safe to repeat, and which failures to retry.

## Safe to repeat

* Every `GET`.
* `DELETE /api_keys/{id}`. A second call answers `404 key_not_found`: the key is already gone.

`POST /api_keys` is **not** idempotent: every call creates a new key.

## When to retry

| Response | Action |
| - | - |
| Network error or timeout | Retry with exponential backoff. |
| `429` | Wait `Retry-After` seconds (also `error.retryAfterSeconds`), then retry. |
| `500`, `503` | Retry with backoff. `503` carries `Retry-After`. The key may be fine. |
| Any other `4xx` | Final. Fix the request. |

## Polling

There is no streaming under a key. Records reads are cached for 30 seconds (`Cache-Control: private, max-age=30`), and leaderboards refresh daily at about 05:10 UTC (`refreshedAt`), so polling faster gains nothing and spends [quota](/rate-limits).
