Salta al contingut

Desenvolupadors

Límits de ritme

120 peticions per minut per credencial, capçaleres X-RateLimit i com reintentar després d'un 429.

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

  1. Si hi ha Retry-After, espera aquest temps abans de tornar-ho a provar.
  2. Si no, fes servir espera exponencial amb una mica d'aleatorietat (1 s, 2 s, 4 s…).
  3. A les creacions, reutilitza la mateixa Idempotency-Key per 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-Remaining i 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.