Ir al contenido

Rate limiting

Pickwise Public API aplica rate limiting por API Key para proteger la infraestructura y asegurar uso justo. Toda request cuenta contra el contador de tu key.

VentanaLímite por defecto
Por minuto60 requests
Por día10 000 requests
  • La ventana por minuto es sliding — no se resetea cada minuto exacto, sino que cuenta las últimas 60 segundos.
  • El límite aplica a todos los endpoints de la API (batch y single cuentan igual por request).
  • Si necesitás límites más altos, contactá a soporte@lubee.com.ar.

Toda respuesta (exitosa o no) incluye headers informativos para que puedas monitorear el uso:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1709827200
HeaderSignificado
X-RateLimit-LimitLímite máximo por minuto asignado a tu key.
X-RateLimit-RemainingRequests restantes en la ventana actual.
X-RateLimit-ResetTimestamp Unix (segundos) en que se resetea el contador.

Úsalos para reducir el ritmo proactivamente antes de llegar al límite.

Cuando excedés el límite, recibís:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 45
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Límite de requests excedido (60/min). Reintente en 45 segundos.",
"retryAfter": 45
},
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
  • retryAfter en segundos: cuánto esperar antes de reintentar.
  • Respetá ese valor. Reintentar antes solo suma más requests al contador.

Cuando recibís 429 (o errores 5xx), implementá retry con backoff exponencial. Usá retryAfter como primera opción; si no está presente, usá tu propio cálculo.

Ventana de terminal
# No hay manera robusta de hacer backoff en curl puro — usar wrapper en shell
for i in 1 2 3; do
response=$(curl -sS -w "\n%{http_code}" \
-X POST https://api-{CLIENTE}.pickwise.com.ar/api/v1/public/products \
-H "Authorization: Bearer pk_live_xxxx" \
-H "Content-Type: application/json" \
-d '{...}')
code=$(echo "$response" | tail -1)
if [ "$code" != "429" ] && [ "${code:0:1}" != "5" ]; then
echo "$response" | head -n -1
break
fi
sleep $((2 ** i))
done

Si tu volumen legítimo supera los 60 req/min (ej: sincronización inicial de un catálogo de 100k productos), contactanos a soporte@lubee.com.ar. Podemos:

  • Subir el límite permanentemente para tu key.
  • Aprobar un “burst” temporal para una ventana de migración.
  • Sugerir el endpoint batch si todavía no lo estás usando.