Skip to main content
Cada chave de API tem seu próprio orçamento de requisições. O orçamento é contado por chave, não por endereço IP nem por servidor: todas as máquinas que compartilham uma chave compartilham o orçamento dela, e duas chaves nunca compartilham um orçamento.

O orçamento

A janela é fixa. Ela começa com a primeira requisição que a chave faz depois do fim da janela anterior e é reiniciada 60 segundos depois. Toda requisição que passa pela autenticação conta, qualquer que seja o resultado: um 200, um 400, um 404 ou um 429 usam uma unidade cada. As requisições continuam contando enquanto você está acima do limite, mas não aumentam a janela. Requisições recusadas com 401 api_keys.invalid ou 403 api_keys.scope_missing são descartadas antes da verificação do orçamento: não contam e não trazem cabeçalhos de limite.
Estes são os valores atuais. Leia o orçamento nos cabeçalhos da resposta em vez de fixá-lo no código, para que sua integração acompanhe qualquer mudança.

Cabeçalhos em toda resposta

Toda resposta a uma requisição autenticada informa o estado do orçamento em duas famílias de cabeçalhos: os amplamente usados X-RateLimit-* e os cabeçalhos RateLimit do rascunho da IETF.

Quando você passa do limite: 429

A requisição que ultrapassa o orçamento é recusada com 429 Too Many Requests, um cabeçalho Retry-After com os segundos de espera, os mesmos cabeçalhos de limite e um documento de problema com o código common.too_many_requests.
Accept-Language: pt
Uma requisição recusada não leu nem alterou nada. É seguro repeti-la depois de esperar os segundos de Retry-After.

Como esperar

Bons hábitos:
  • Espere o Retry-After em todo 429. Tentar antes só soma requisições recusadas à mesma janela.
  • Diminua o ritmo antes de bater no limite. Quando X-RateLimit-Remaining estiver perto de 0, espere X-RateLimit-Reset segundos antes da próxima rajada.
  • Use páginas grandes. Percorra as listas paginadas com limit=200 (veja Paginação).
  • Guarde em cache o que muda pouco. Unidades, depósitos e categorias não precisam ser lidos a cada execução.
  • Consulte as exportações com calma. Uma consulta a cada poucos segundos basta enquanto uma exportação está sendo gerada (veja Exportações do resumo gerencial).
  • Não rode processos sobrepostos com a mesma chave. Agende um depois do outro.
  • Use uma chave por integração. Cada chave tem seu próprio orçamento, então um processo pesado não deixa outro sem requisições.
Se sua integração precisar de um orçamento maior, escreva para team@muveya.com informando o volume de requisições esperado.

Páginas relacionadas