Limites de requisições
Entenda como funciona a limitação de requisições, o acesso aos dados por plano e como lidar com respostas 429.
GET /api/v1/limits para consultar seu plano e seus limites atuais de forma programática.| Plano | Requisições / min | Pico / s |
|---|---|---|
| Builder (incl. teste grátis de 3 dias) | 250 | 12 |
| Pro | 750 | 40 |
| Enterprise | Personalizado | Personalizado |
O limite por minuto usa uma janela deslizante. O pico usa um token bucket.
No plano Builder — incluindo o teste grátis de 3 dias, que é o Builder completo — o acesso fica restrito aos mercados mais recentes. Os planos Pro e Enterprise têm acesso ilimitado a todos os mercados e snapshots.
| Tipo de mercado | Builder | Pro / Enterprise |
|---|---|---|
| 5m | 4,100 | Ilimitado |
| 15m | 1,400 | Ilimitado |
| 1hr | 350 | Ilimitado |
| 4hr | 85 | Ilimitado |
| 24hr | 14 | Ilimitado |
Quando uma consulta de lista ultrapassa o teto do seu plano, o limit da resposta é reduzido e um campo warning é incluído.
O número de chaves de API ativas que você pode ter depende do seu plano. Chaves revogadas ou expiradas não contam para o limite.
Toda resposta inclui headers de limite de requisições para que você acompanhe seu uso em tempo real.
X-RateLimit-Limit: 250
X-RateLimit-Remaining: 237
X-RateLimit-Reset: 1740800060Como lidar com respostas 429
Quando você excede seu limite de requisições, a API retorna o código de status 429 com um header Retry-After indicando quantos segundos esperar. O corpo da resposta inclui os campos error, message e retry_after.
import time
import requests
def fetch_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code == 429:
wait = int(response.headers.get("Retry-After", 2 ** attempt))
time.sleep(wait)
continue
return response
raise Exception("Rate limit exceeded after retries")Se você tentar acessar um mercado, ou os snapshots dele, que esteja fora da janela de dados do seu plano, a API retorna 403 Forbidden. Faça upgrade do seu plano ou acesse um mercado mais recente.
{
"error": "Forbidden",
"message": "Your builder plan only includes the most recent markets for this type. Upgrade for full access.",
"tier": "builder"
}