Limites de taxa
Um rate limit define o número máximo de requisições que uma aplicação pode fazer à API dentro de um período de tempo específico. Esse mecanismo é fundamental para manter a saúde geral e a confiabilidade dos serviços.
Por que usamos rate limiting
- Evita que um único cliente sobrecarregue os servidores com requisições excessivas.
- Garante tempos de resposta consistentes e previsíveis para todos os clientes.
- Protege os serviços de backend contra picos de tráfego inesperados.
- Mantém um padrão de carga estável e controlado na infraestrutura.
- Fortalece a defesa contra tentativas de ataque, como força bruta.
- Mitiga o risco de negação de serviço distribuída (DDoS).
- Reduz o impacto causado por integrações mal implementadas.
- Limita o dano potencial resultante de credenciais de API comprometidas.
- Garante acesso equilibrado aos recursos da API para todos os clientes.
- Evita que o uso abusivo por parte de alguns degrade a experiência de outros usuários.
- Permite priorizar o tráfego de acordo com critérios e necessidades de negócio.
- Incentiva práticas de consumo da API mais eficientes e sustentáveis.
Como o rate limiting funciona
Cada chamada de API conta para o limite permitido de requisições por segundo. O valor padrão é 10 RPS por tenant. Quando o limite é excedido, a API retorna HTTP 429 Too Many Requests.
Os limites exatos são configurados por tenant. Entre em contato com o time da Unico para confirmar os limites aplicados à sua conta antes de dimensionar para integrações de alto throughput.
Tratando erros 429
Se sua operação vai ter um aumento no volume de requisições (temporário ou permanente), notifique o time da Unico para elevar o rate limit do seu ambiente. Essa solicitação deve ser feita antes de o volume efetivamente aumentar, para evitar que sua aplicação fique inoperante.
- Audite seu código para identificar padrões ineficientes de uso da API.
- Verifique se há loops não intencionais ou chamadas de API redundantes.
- Distribua as requisições de forma mais uniforme ao longo do tempo, em vez de enviá-las em grandes rajadas.
- Faça cache de dados frequentemente acessados que raramente mudam.
- Use o access token OAuth2 durante todo o seu TTL de 1 hora — não chame
POST /oauth2/tokenpor requisição. - Implemente estratégias apropriadas de invalidação de cache.
Assine Webhooks e Eventos para PROCESS_STATE_FINISHED em vez de fazer polling em GET /client/v1/process/\{id\}. Um loop de polling pode facilmente esgotar o orçamento de GET-process em tráfego intenso.
O que acontece quando você atinge o limite
A plataforma retorna:
HTTP/1.1 429 Too Many Requests
Retry-After: 12
| Header | Significado |
|---|---|
Retry-After | Número de segundos a aguardar antes de tentar novamente. Respeite-o. |
Se Retry-After estiver ausente, use backoff exponencial (1s, 2s, 4s, 8s, …) com limite de 60s.
Considerações de concorrência
Os rate limits limitam requisições por minuto, mas a plataforma também possui limites de concorrência no nível de infraestrutura. Mesmo que você tenha orçamento para 100 requisições/minuto, disparar todas as 100 no mesmo segundo tem mais chance de ser rejeitado do que distribuí-las ao longo do minuto.
Para integrações de alto throughput, busque um RPS constante em vez de rajadas.
Entrega de webhook do Magic Link
A Trully tem suas próprias cotas de entrega para o Webhook V2. Espera-se que o servidor de webhook responda em até 1 minuto; respostas mais lentas são descartadas (o processo do usuário não é afetado). Para processamento consistente, confirme o webhook rapidamente e processe-o de forma assíncrona.
Próximos passos
- Autenticação — estratégia de cache do token.
- Webhooks e Eventos — substituindo polling por push.
- Códigos de erro > Política de retry — quando (e quando não) tentar novamente.