A API pública da VMArea usa dois buckets encadeados, ambos com Redis como backend — os limites são compartilhados entre todas as instâncias da API.Documentation Index
Fetch the complete documentation index at: https://docs.vmarea.com/llms.txt
Use this file to discover all available pages before exploring further.
Limites atuais
| Bucket | Limite | Chaveado por | Aplica-se a |
|---|---|---|---|
| API pública (por token) | 600 requisições / minuto (10 RPS sustentado) | ID do token de API | Toda requisição /api/public/v1/* após autenticação bem-sucedida com x-api-key |
| Fallback global (por IP) | 100 requisições / minuto | Endereço IP | Todo o tráfego — principalmente para conter abusos em rotas não autenticadas (login, cadastro) |
Idempotency-Key para que retentativas seguras não consumam cota extra — veja Idempotência.
Resposta 429
Quando você excede algum dos limites, a API retorna HTTP429 Too Many Requests com o envelope padrão:
error identifica qual bucket foi atingido (por token ou fallback global por IP).
Cabeçalhos
Toda resposta inclui os cabeçalhos padrão de rate limit;Retry-After é adicionado nas respostas 429.
| Cabeçalho | Descrição |
|---|---|
X-RateLimit-Limit | Número máximo de requisições permitidas na janela atual. |
X-RateLimit-Remaining | Requisições restantes na janela atual. |
X-RateLimit-Reset | Segundos até a janela reiniciar. |
Retry-After | Segundos para aguardar antes de tentar novamente (apenas em 429). |
Tratando 429 no seu cliente
LeiaRetry-After para o tempo mínimo de espera, depois aplique backoff exponencial com jitter começando em 1 segundo:
Boas práticas
- Use
Idempotency-Keypara escritas. Retentativas seguras não consomem cota extra nem criam recursos duplicados. - Agrupe leituras onde possível. Endpoints de listagem paginados são mais eficientes do que múltiplos GETs individuais.
- Faça cache dos dados do catálogo. Planos, regiões e templates de SO mudam raramente — armazene-os localmente em vez de buscar repetidamente.
- Use webhooks para mudanças de estado. Assinar
vm.started,vm.stoppedetc. evita polling em loop emGET /vms/:id. - Precisa de limites maiores? Entre em contato com o suporte — 10 RPS cobre praticamente todas as integrações, mas podemos aumentar os limites por token sob solicitação.