API · Atualizado em 12/10/2026
Limites de uso e idempotência na API
Conheça os limites de chamadas por chave, de corpo e de arquivo, e use o cabeçalho Idempotency-Key para repetir escritas sem duplicar nada.
Para proteger a operação de todos, cada chave tem um teto de chamadas. E, para que uma falha de rede não vire mensagem duplicada, as escritas aceitam um cabeçalho de idempotência: repetir a mesma chamada não repete o efeito.
Quando usar
Ao dimensionar uma integração que envia muitas chamadas, e sempre que uma escrita (enviar mensagem, abrir ticket, criar contato) puder ser repetida por retry automático.
Limites por chave
| Limite | Valor padrão | Observações |
|---|---|---|
| Chamadas por segundo | 20 | Vale para todas as rotas /v1 que a chave alcança, leituras incluídas |
| Chamadas por minuto | 600 | Contador independente do anterior |
POST /messages (raiz, estilo Blip) | 10 por segundo | Contador próprio |
POST /notifications (raiz, estilo Blip) | 20 por segundo | Contador próprio |
POST /commands (raiz, estilo Blip) | 20 por segundo | Contador próprio |
| Falhas de autenticação | 20 por minuto, por IP | Só falhas contam. Sucesso nunca conta |
Ao passar do limite, a API responde 429 com o código rate_limited e o cabeçalho Retry-After, em segundos:
{
"error": {
"code": "rate_limited",
"message": "Limite de requisições da chave excedido. Tente de novo depois do prazo em Retry-After.",
"detalhe": { "retryAfterSeconds": 1 }
}
}
Os limites são compartilhados entre todas as réplicas da API, então não dá para "burlar" abrindo conexões em paralelo.
Limites de tamanho e de lote
Valores padrão da plataforma.
| Item | Limite |
|---|---|
| Corpo JSON | 1 MB |
Upload de arquivo (POST /v1/attachments) | 100 MB por arquivo; áudio e vídeo até 16 MB |
| Arquivos por mensagem | 10 |
| Texto de mensagem | 4096 caracteres; legenda de mídia no WhatsApp, 1024 |
| Contatos por disparo de mensagem ativa | 15 |
| Destinatários por campanha | 5000 |
| Itens por página | 100 |
| Período de relatórios | 90 dias (histórico de conversas por chave: 92) |
Idempotência com Idempotency-Key
Envie o cabeçalho Idempotency-Key em qualquer escrita (POST, PUT, PATCH, DELETE). O valor é seu: de 1 a 128 caracteres ASCII visíveis, como um UUID.
- Gere um valor novo para cada operação que quer executar uma única vez.
- Envie a chamada com o cabeçalho.
- Se não souber se ela chegou (timeout, queda de rede), repita exatamente a mesma chamada, com o mesmo cabeçalho.
curl -s -X POST https://http.pipebr.app/v1/contacts/b3a1c9de-0000-4000-8000-000000000010/tickets \
-H "Authorization: Bearer $PIPE_CHAVE" \
-H "Idempotency-Key: 6f1d2a52-0000-4000-8000-0000000000aa" \
-H "Content-Type: application/json" \
-d '{"reason": "Cliente pediu atendimento humano"}'
O que acontece:
| Situação | Resposta |
|---|---|
| Primeira chamada com a chave | Executa e guarda a resposta de sucesso por 24 horas |
| Mesma chave, mesmo método, caminho e corpo | Devolve a resposta guardada, com o cabeçalho Idempotent-Replayed: true, sem executar de novo |
| Mesma chave com outro método, caminho ou corpo | 409 idempotency_conflict |
| Mesma chave enquanto a primeira ainda roda | 409 idempotency_in_progress |
| Chamada que deu erro (não 2xx) | Não é guardada. Pode repetir com a mesma chave |
| Upload multipart com o cabeçalho | 422 idempotency_unsupported |
A chave de idempotência vale por chave de API: duas integrações podem usar o mesmo valor sem se misturar.
Idempotência pelo id do envelope (estilo Blip)
Na rota POST /commands e nas rotas POST /messages e POST /notifications, a deduplicação usa o campo id do envelope, como na Blip. Veja Compatibilidade com a Blip.
Resultado esperado
Sua integração respeita o limite sem perder chamadas e repete escritas sem duplicar mensagens, tickets ou contatos.
Problemas comuns
- 429 mesmo com poucas chamadas: o limite é por chave, não por integração. Várias rotinas usando a mesma chave dividem o mesmo teto. Use uma chave por rotina.
- 429 por falhas de autenticação: uma chave errada em loop bloqueia aquele IP por até 1 minuto, inclusive para chamadas corretas vindas do mesmo IP.
- 409
idempotency_conflict: você reaproveitou um valor deIdempotency-Keyem outra operação. Gere um valor novo por operação.
Boas práticas
- Implemente espera crescente ao receber 429 ou 5xx e respeite o
Retry-After. - Gere a
Idempotency-Keyuma vez por operação e guarde junto do registro no seu sistema, para reaproveitar nos retries. - Para envios em volume, prefira campanhas, que têm fila e ritmo próprios.
Próximos passos
- Veja Enviar mensagens pela API para o envio de texto, mídia e modelos.
- Acompanhe as mudanças em Versões e notas de versão.
Perguntas frequentes
Quantas chamadas por segundo posso fazer?
Por padrão, 20 por segundo e 600 por minuto para cada chave. Passou disso, a resposta é 429 com Retry-After.
Para que serve o Idempotency-Key?
Para repetir uma escrita com segurança. Se a rede falhar e você reenviar a mesma chamada com a mesma chave de idempotência, o Pipe devolve a resposta guardada e não executa de novo.
Por quanto tempo a resposta fica guardada?
24 horas, por chave de API.
Respostas de erro ficam guardadas?
Não. Depois de corrigir o problema, você pode repetir a chamada com a mesma Idempotency-Key.
Esse artigo foi útil?
Obrigado pelo retorno!