Per protegir el servei, cada credencial pot fer 120 peticions per minut. El límit és per credencial: dues credencials d'un mateix club tenen comptadors independents.
Capçaleres
Les respostes autenticades que arriben al limitador inclouen:
| Capçalera | Significat |
|---|---|
X-RateLimit-Limit |
Peticions permeses per minut (120). |
X-RateLimit-Remaining |
Peticions que et queden a la finestra actual. |
X-RateLimit-Reset |
Instant en què es reinicia la finestra, com a timestamp Unix en segons. |
No apareixen a les respostes 401 ni a 403 feature_disabled, perquè aquestes peticions es rebutgen abans de comptar.
curl -s -i "$PRANARP_URL/api/v1/me" -H "Authorization: Bearer $PCK_TOKEN" | grep -i '^x-ratelimit'
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 119
X-RateLimit-Reset: 1792692060
Quan te'n passes: 429
En superar el límit reps 429 amb el codi rate_limited, les capçaleres X-RateLimit-* (amb Remaining: 0) i Retry-After, amb els segons que has d'esperar:
HTTP/1.1 429 Too Many Requests
Retry-After: 23
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1792692083
{
"error": { "code": "rate_limited", "message": "Too many requests.", "details": {} }
}
Com reintentar
- Si hi ha
Retry-After, espera aquest temps abans de tornar-ho a provar. - Si no, fes servir espera exponencial amb una mica d'aleatorietat (1 s, 2 s, 4 s…).
- A les creacions, reutilitza la mateixa
Idempotency-Keyper no duplicar.
Un exemple senzill en shell:
for attempt in 1 2 3 4 5; do
status=$(curl -s -o /tmp/out.json -D /tmp/headers.txt -w '%{http_code}' \
"$PRANARP_URL/api/v1/spaces" -H "Authorization: Bearer $PCK_TOKEN")
[ "$status" != "429" ] && break
wait=$(grep -i '^retry-after:' /tmp/headers.txt | tr -dc '0-9')
sleep "${wait:-$((2 ** attempt))}"
done
Com no arribar al límit
- Fes servir els webhooks en lloc de consultar el llistat de reserves cada pocs segons.
- Demana pàgines grans (
limit=200) en comptes de moltes de petites; vegeu paginació. - Desa en memòria cau els espais, que canvien poc.
- Vigila
X-RateLimit-Remainingi redueix el ritme abans d'arribar a zero.
Si el teu cas d'ús necessita un límit més gran, escriu-nos a hello@pranarp.com explicant què integres i amb quin volum.