Limites de taxa

Visão geral

Seja um token distribuído por meio do Portal do desenvolvedor, concessão OAuth ou do back-end de contas que serve aos aplicativos do próprio Frame.io, **todas as chamadas de API ao Frame.io têm limites de taxa.**Os limites de taxa se aplicam a todas as solicitações de API de um usuário (independentemente de qual token ou método de autenticação é usado), são esgotados e reabastecidos progressivamente e são refletidos nos cabeçalhos de resposta de cada solicitação feita à API do Frame.io.Cada ponto de acesso é configurado com seus próprios limites, que variam de até 10 solicitações/minuto a até 100 solicitações/segundo.As solicitações que excederam o limite de taxa para um ponto de acesso específico recebem um erro HTTP 429 em resposta.

Esgotamento e reabastecimento

A API do Frame.io usa uma estratégia de leaky bucket de limitação de taxa progressiva, na qual os limites são atualizados gradualmente durante a janela de tempo definidaEm outras palavras, não há conceito de corte rígido após o qual os limites são atualizados para um recurso específico (ou seja, estratégias de aplicação de “janela fixa” e “janela deslizante”).Em vez disso, os limites restantes são constantemente atualizados em um ritmo relativo ao limite e à janela de tempo de um recurso.

Backoff exponencial

Nossa estratégia recomendada para gerenciar limites de taxa geralmente é chamada de “backoff exponencial”.

Resumindo:

  • Ao receber um erro 429, pause por um período (normalmente um segundo)
  • Se outro erro 429 for recebido, aumente exponencialmente o período de espera até que a função normal seja retomada

Cabeçalhos

As respostas às solicitações de API sempre incluem os três cabeçalhos a seguir que devem ser utilizados para limitar suas solicitações de saída:

CabeçalhoValor
x-ratelimit-limitO limite de taxa para este caminho de recurso, medido em solicitações.
x-ratelimit-remainingO número de solicitações restantes na janela de tempo atual.
x-ratelimit-windowA janela de tempo para os limites do caminho deste recurso, medida em milissegundos (ms).

Exemplo

O exemplo a seguir é da resposta para GET v2/assets/:id/children, para buscar os ativos filhos de uma raiz de projeto, pasta ou pilha de versões.O limite para esse caminho é de 40 solicitações por 60.000 ms (um minuto), e restam 39 solicitações após uma ter sido feita.

x-ratelimit-limit → 40
x-ratelimit-remaining → 39
x-ratelimit-window → 60000

Detalhes

Os limites de taxa variam muito entre os caminhos de recursos na API do Frame.io.Abaixo estão alguns detalhes selecionados, expressos para facilitar a leitura como recurso e ação (por exemplo, “Ativos — Atualizar” em vez de PUT /assets/:id).

Como regra geral, os caminhos de recursos que criam novos dados são limitados a 100 chamadas por minuto ou menos, e os caminhos de recursos que buscam listas de ativos são limitados a 200 chamadas por minuto.

RecursoAçãoLimite (solicitações)Janela de limite (ms)
Ativoscreate51,000
Ativosupdate10
Ativosread51,000
Comentários
Apresentações
Projetos
Links de revisão
Equipes
Membros da equipe
create10060,000
Pesquisarread20060,000