Limites de Requisições
Limitação de requisições por carteira para operações de ordens e requisições de API.
Visão Geral
A limitação de requisições é aplicada por carteira usando um algoritmo de janela fixa. Os limites são aplicados a:
- Colocação de ordens (
POST /order) - Cancelamento de ordens (
DELETE /order) - Requisições de API (uso geral dos endpoints)
Os limites são reiniciados a cada 60 segundos.
Limites Padrão
| Nível | Ordens/min | Cancelamentos/min | Requisições de API/min | Máx. de Ordens Abertas | Máx. de Posições |
|---|---|---|---|---|---|
| Padrão | 60 | 120 | 600 | 100 | 50 |
| Nível 1 | 30 | 60 | 300 | 50 | 20 |
| Nível 2 | 120 | 300 | 1.200 | 500 | 200 |
| Market Maker | 600 | 1.200 | 6.000 | 2.000 | Ilimitado |
Novas carteiras recebem os limites padrão. Entre em contato com o suporte para upgrades de nível.
Resposta de Limite de Requisições
Quando um limite de requisições é excedido, a API retorna 429 Too Many Requests:
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded for OrderPlacement: 60 per minute, retry after 45 seconds",
"retry_after_secs": 45,
"limit": 60
}
Cabeçalhos de Resposta
Todos os endpoints com limitação de requisições incluem estes cabeçalhos tanto em respostas de sucesso quanto de erro:
| Cabeçalho | Descrição | Exemplo |
|---|---|---|
X-RateLimit-Limit | Máximo de requisições permitidas por janela | 60 |
X-RateLimit-Remaining | Requisições restantes na janela atual | 42 |
X-RateLimit-Reset | Timestamp Unix de quando a janela reinicia | 1737312060 |
Retry-After | Segundos até nova tentativa (somente em 429) | 45 |
Exemplos de Cabeçalhos de Resposta
Requisição bem-sucedida:
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1737312060
Requisição limitada:
HTTP/1.1 429 Too Many Requests
Retry-After: 45
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1737312060
Categorias de Limites de Requisições
Os limites de requisições são rastreados separadamente para cada tipo de ação:
Colocação de Ordens
Aplica-se a:
POST /order(ordens de opções)POST /bulk_order(ordens em lote, cada ordem no lote conta)PUT /bulk_order(substituições em lote, cada substituição conta)
Cancelamento de Ordens
Aplica-se a:
DELETE /orderDELETE /bulk_order(cancelamentos em lote, cada cancelamento conta)DELETE /bulk_order_cloid(cancelamentos em lote por ID de ordem do cliente, cada cancelamento conta)
Requisições de API
Aplica-se ao uso geral da API em todos os endpoints autenticados.
Limites de Posições e Ordens
Além dos limites de requisições, as carteiras têm limites máximos de ordens abertas e posições:
| Tipo de Limite | Descrição | Rejeição |
|---|---|---|
| Máx. de Ordens Abertas | Máximo de ordens abertas simultâneas | Ordem rejeitada antes de chegar ao engine |
| Máx. de Posições | Máximo de posições únicas (-1 = ilimitado) | Ordem rejeitada se criaria uma nova posição |
Quando os limites são excedidos:
{
"error": "limit_exceeded",
"message": "Maximum open orders limit exceeded (100)"
}
Boas Práticas
Lidando com Limites de Requisições
- Monitore os cabeçalhos: Acompanhe
X-RateLimit-Remainingde forma proativa - Respeite o Retry-After: Aguarde a duração especificada antes de tentar novamente
- Implemente backoff: Use backoff exponencial em respostas 429 repetidas
import time
def place_order_with_retry(order, max_retries=3):
for attempt in range(max_retries):
response = api.place_order(order)
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue
return response
raise RateLimitError("Max retries exceeded")
Otimizando o Uso de Requisições
- Use endpoints em lote:
POST /bulk_orderpara múltiplas ordens em uma única requisição - Agrupe cancelamentos:
DELETE /bulk_orderouDELETE /bulk_order_cloidem vez de múltiplas requisiçõesDELETE /order - WebSocket para atualizações: Assine as atualizações de ordens em vez de consultar
GET /ordersrepetidamente
Monitoramento
Acompanhe estas métricas no lado do cliente:
- Taxa de requisições por tipo de ação
- Tendências de
X-RateLimit-Remaining - Frequência de respostas 429
- Durações médias de
Retry-After
Referência de Erros
| Status HTTP | Código de Erro | Descrição |
|---|---|---|
| 429 | rate_limit_exceeded | Limite de requisições excedido, tente novamente após o tempo especificado |
Consulte Erros para a referência completa de erros.