Skip to main content

Teto geral

Cada chave tem 600 requisições por minuto. Ao estourar, a resposta é 429 com Retry-After em segundos. O teto é por chave, não por IP: rodar de vários servidores não multiplica o limite. E não existe requisição de graça, uma resposta vazia custa o mesmo que uma cheia.
Os cabeçalhos RateLimit-* da resposta não são o teto da sua chave. Eles vêm da borda e contam um orçamento compartilhado por endereço de origem — dois sistemas atrás do mesmo IP dividem esse número, e ele não sabe nada da sua chave. Para saber quando voltar, use o Retry-After do 429, que é o único que fala da sua chave.

Teto de vídeo

A emissão de URL de mídia (/api/devices/{id}/media-url) tem teto próprio de 12 por minuto por chave, bem menor que o geral. A diferença existe porque esta chamada não é uma leitura: para devolver um endereço que abre, a plataforma prepara a transmissão da câmera, e isso é um recurso caro. Doze por minuto é o orçamento de quem pede no clique. Um mural de seis tiles cabe duas vezes por minuto; pedir para as quarenta câmeras do condomínio de uma vez não cabe nenhuma.
Se o 429 chegar, espere o Retry-After. Não faça retry imediato: a chamada seguinte custa o mesmo que a primeira e não chega mais perto de abrir o vídeo.
Peça a URL quando for exibir. Ela tem prazo próprio, então guardar para depois não economiza chamada, só entrega um endereço vencido.

O orçamento, por rota

A conta que decide o seu desenho

O erro caro é varrer diagnóstico. Para 40 condomínios com 25 câmeras cada:
Diagnóstico é sob demanda, não vigília. Com probe=true (o padrão) ele disca na câmera. O desenho certo tem dois níveis: a frota diz quem está sem imagem; o diagnóstico diz por quê, e só para as que apareceram.

Polling

  • Inventário: com updated_since o delta é barato — 1×/min cabe. A leitura COMPLETA (sem updated_since) é a da primeira carga: 1×/hora basta.
  • Eixo de imagem (?transmitting=no): 1×/min, pela conta inteira. Confira transmitting_witness_fresh antes de concluir. Em false, “nenhuma sem imagem” significa “sem medição”.
  • Diagnóstico: sob demanda, quando alguém for olhar.
  • Eventos: avance com since a partir do último que você já tem. Se uma janela devolveu exatamente limit linhas, ela transbordou: caminhe para trás com until. Ver Ler os eventos sem varrer.
  • Retry: respeite o Retry-After do 429. Em 5xx, recuo progressivo. Nunca retry imediato em rota de mídia.

Prazos das URLs assinadas

Todo endereço de vídeo, foto ou gravação que a API devolve é assinado e vence.
Quem arquiva, arquiva os bytes. Guardar o link produz um dossiê que abre hoje e falha em seis meses, e você descobre no dia em que alguém precisa dele.
Baixe no mesmo momento em que decide guardar. Para reabrir depois, peça o recurso de novo: a assinatura sai nova.