Documentation Index
Fetch the complete documentation index at: https://docs.rail.cl/llms.txt
Use this file to discover all available pages before exploring further.
Límites por tipo de endpoint
| Endpoint group | Rate limit | Burst | Notas |
|---|---|---|---|
Read (GET /v1/links, /v1/accounts, /v1/accounts/{id}/movements, etc) | 100 req/min por API key | 20 | Mismo bucket para todos los GETs |
Sync write (POST /v1/refresh_intents) | 10 req/min por API key | 5 | Independiente del cooldown de 5min por link |
Widget tokens (POST /v1/widget_tokens) | 30 req/min por API key | 10 | |
Resources write (POST /v1/links/{id}/pause, DELETE /v1/links/{id}, etc) | 30 req/min por API key | 10 | |
| Webhook deliveries (read) | 60 req/min por API key | 20 |
Los límites son por API key, no por client. Si tenés
sk_live + sk_test, cada una tiene su propio bucket. Las pk_* comparten bucket con su sk_* del mismo modo.Headers en cada response
Todos los responses incluyen:| Header | Significa |
|---|---|
X-RateLimit-Limit | Tu límite efectivo para este bucket (req/min) |
X-RateLimit-Remaining | Cuántos requests te quedan en la ventana actual |
X-RateLimit-Reset | Unix timestamp de cuándo se resetea el bucket |
Cuando excedés — 429
Retry-After te dice cuántos segundos esperar antes de reintentar.
Manejo recomendado
Patrones que disparan 429
| Anti-patrón | Por qué te bloquea |
|---|---|
Polear /v1/refresh_intents/{id} cada 1s | Excedés 100 req/min en pocos minutos. Polear cada 5-10s en su lugar (o usar webhooks). |
| Listar todos los movimientos sin paginar bien | Loop sin condición de salida = burst inmediato. |
Crear un refresh_intent por cada user en un cron | Hacelo escalonado o usá los syncs automáticos de Rail (cada 4h). |
Pedir upgrade
Si tu use case legítimo requiere límites más altos, contactanos en soporte@rail.cl con:- Tu
client_id(lo ves en el dashboard) - Caso de uso + volumen esperado
- Endpoint/bucket específico