Esta página foi traduzida automaticamente. O original em inglês é a versão canônica. Ler em inglês
Pular para o conteúdo principal

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ívelOrdens/minCancelamentos/minRequisições de API/minMáx. de Ordens AbertasMáx. de Posições
Padrão6012060010050
Nível 130603005020
Nível 21203001.200500200
Market Maker6001.2006.0002.000Ilimitado

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çalhoDescriçãoExemplo
X-RateLimit-LimitMáximo de requisições permitidas por janela60
X-RateLimit-RemainingRequisições restantes na janela atual42
X-RateLimit-ResetTimestamp Unix de quando a janela reinicia1737312060
Retry-AfterSegundos 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 /order
  • DELETE /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 LimiteDescriçãoRejeição
Máx. de Ordens AbertasMáximo de ordens abertas simultâneasOrdem rejeitada antes de chegar ao engine
Máx. de PosiçõesMá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

  1. Monitore os cabeçalhos: Acompanhe X-RateLimit-Remaining de forma proativa
  2. Respeite o Retry-After: Aguarde a duração especificada antes de tentar novamente
  3. 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

  1. Use endpoints em lote: POST /bulk_order para múltiplas ordens em uma única requisição
  2. Agrupe cancelamentos: DELETE /bulk_order ou DELETE /bulk_order_cloid em vez de múltiplas requisições DELETE /order
  3. WebSocket para atualizações: Assine as atualizações de ordens em vez de consultar GET /orders repetidamente

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 HTTPCódigo de ErroDescrição
429rate_limit_exceededLimite de requisições excedido, tente novamente após o tempo especificado

Consulte Erros para a referência completa de erros.