Rate limits

Limites de uso por plano

Aplicamos rate limit por API key, em uma janela móvel de 1 hora. Os uploads diretos ao R2 com URLs pré-assinadas NÃO contam contra esse limite — só as chamadas aos endpoints /v1/* contam.

Limites por plano

PlanoRequests/horaNotas
Free100Suficiente para avaliar e integrar.
Pro1.000Cobre a maioria dos centros de radiologia.
Clínica5.000Para integrações com PMS ou marketplaces.
Ultra10.000Teto padrão. Acima disso solicite Enterprise.
Enterprise> 10.000 (sob medida)Acordo sob medida + SLA dedicado. Escreva para soporte@cbcthub.com.
As keys de sandbox (cbct_test_*) usam um bucket separado com 1.000 req/h, independente do plano. Não consomem sua cota de produção.

Você pode ver o consumo em tempo real de cada key em /dashboard/api/usage (gráfico por hora, chamadas por endpoint e 429 recentes).

Quando você excede o limite

http
HTTP/1.1 429 Too Many Requests
Retry-After: 1847
X-RateLimit-Limit: 1000
X-RateLimit-Reset: 1780201234

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded (1000 requests/hour). Retry in 1847s.",
    "retry_after_seconds": 1847
  }
}

Headers de resposta

Em cada resposta 429 incluímos esses headers para você implementar backoff corretamente:

  • Retry-Aftersegundos até a janela ser resetada
  • X-RateLimit-Limitseu limite atual por hora
  • X-RateLimit-Resettimestamp Unix de quando reseta

Boas práticas

  • Faça cache da resposta de GET /v1/me — não chame antes de cada operação.
  • Para upload em massa, paralelize com um semáforo (ex.: 10 concorrentes).
  • Se você precisar de >10.000 requests/hora sustentado, fale conosco: montamos um acordo Enterprise sob medida.