Limites de uso
Requisições por token
Seção intitulada “Requisições por token”Cada token tem 120 requisições por minuto, num balde de 60 que se recarrega em 30 segundos (2 requisições por segundo). Dá para fazer uma rajada de 60 de uma vez; depois, o balde volta a encher aos poucos.
Toda resposta a um token traz os cabeçalhos do rascunho da IETF draft-ietf-httpapi-ratelimit-headers:
RateLimit-Policy: "token";q=60;w=30RateLimit: "token";r=57;t=2| Cabeçalho | Parâmetro | O que diz |
|---|---|---|
RateLimit-Policy |
q=60 |
O tamanho do balde |
w=30 |
Os segundos para o balde encher do zero | |
RateLimit |
r |
Quantas requisições ainda cabem agora |
t |
Os segundos até o balde estar cheio de novo |
Acima do limite, a resposta é 429 com o código rate_limited e o cabeçalho Retry-After, em segundos, até a próxima requisição caber:
HTTP/1.1 429 Too Many RequestsContent-Type: application/problem+jsonRetry-After: 1RateLimit: "token";r=0;t=30Como tratar:
- Espere o
Retry-Afterantes de repetir. Não repita em laço sem espera. - Para varrer muitos recursos, pagine com
limit=100(Paginação) em vez de buscar um a um. - Ao acompanhar uma operação, respeite o
Retry-Afterdela (Operações assíncronas): consultar mais rápido não acelera nada. - Os limites valem por instância da plataforma e podem mudar: trate o
429sempre peloRetry-After, sem contar com um número fixo.
Limites de operações
Seção intitulada “Limites de operações”Algumas operações têm limite próprio, além do limite do token:
| Operação | Limite | Resposta |
|---|---|---|
| Abrir chamados | 10 por dia por conta (rajada de 5) | 429 rate_limited |
| Responder chamados | 60 por hora por conta (rajada de 20) | 429 rate_limited |
| Contratar com cupom e conferir cupom | 20 tentativas por hora por conta (rajada de 10) e 40 por hora por IP | 429 coupon.rate_limited |
| Digitar no console serial | 20 envios por segundo por sessão | 429 cloud.console_rate_limited |
Cotas da conta
Seção intitulada “Cotas da conta”| Recurso | Cota | Resposta acima dela |
|---|---|---|
| IPs elásticos | 10 por conta | 422 cloud.quota_exceeded |
| Redes privadas | 5 por conta | 422 cloud.quota_exceeded |
| Sessões de console serial abertas | 5 por conta (1 por servidor) | 422 cloud.quota_exceeded (409 cloud.console_open no mesmo servidor) |
| Sessões de VPN da IPMI abertas | 5 por conta (1 por servidor) | 422 cloud.quota_exceeded (409 cloud.vpn_session_open no mesmo servidor) |
GET /cloud/network mostra quanto das cotas de rede a conta usa (quotas). Precisa de mais? Abra um chamado.
Tamanhos
Seção intitulada “Tamanhos”| O quê | Limite |
|---|---|
| Corpo JSON de uma requisição | 1 MiB |
user_data |
64 KiB depois de decodificado (User data) |
| Chaves SSH num deploy | 20 |
| Tags de um servidor | 20, cada uma com até 64 caracteres (letras minúsculas, números e - _ . : = /) |
| Descrição de um servidor | 500 caracteres |
| Descrição de uma rede privada | 80 caracteres |
| Chamado | assunto até 150 caracteres e mensagem até 5.000 |
| Console serial | até 64 itens e 4.096 bytes por envio |
| Itens por página | 100 nas listas por cursor; 200 nas faturas |
Tempo de uma requisição
Seção intitulada “Tempo de uma requisição”Uma requisição comum tem até 30 segundos; acima disso a resposta é 503 request.timeout. Contratar um servidor ou um IP elástico tem até 90 segundos: use um tempo limite de cliente de pelo menos 2 minutos nessas chamadas.