Skip to main content
Em vez de consultar em loop, deixe a Leme chamar você. Passe um callbackUrl ao criar um run e a Leme envia um POST assinado para essa URL quando o run chega a um estado final — ou pausa para aprovação.
A URL precisa ser HTTPS pública na porta padrão. URLs apontando para redes privadas são rejeitadas com 422 callback_url_invalid.

Eventos

O payload é propositalmente enxuto — identificadores e status, nunca a resposta do agent:
Ao recebê-lo, busque o resultado com GET /api/v1/runs/:id. Isso mantém conteúdo sensível fora do seu endpoint de webhook e garante que você sempre leia o estado mais recente.

Verificar a assinatura

Toda entrega é assinada seguindo a especificação Standard Webhooks, o mesmo esquema usado por OpenAI e Svix. Três headers acompanham a requisição: Primeiro, obtenha o secret de assinatura do projeto (exige token read_write):
Depois, verifique com qualquer biblioteca Standard Webhooks:
Verifique sempre contra o corpo bruto da requisição, antes de qualquer parse de JSON. Rejeite entregas cuja assinatura não bater.

Rotacionar o secret

Se o secret vazar — ou no seu ciclo normal de rotação — gere um novo:
O secret anterior continua assinando por 24 horas, para você fazer a transição sem perder entregas. Durante essa janela, webhook-signature carrega duas assinaturas — a entrega é válida se qualquer uma bater, o que toda biblioteca Standard Webhooks já trata por você.

Retentativas e confiabilidade

Entregas são at least once. Se o seu endpoint não responder 2xx em 15 segundos, a Leme tenta de novo: após 1 minuto, 5 minutos, 30 minutos e 2 horas. Depois de cinco tentativas falhas, a entrega é marcada como esgotada. Como retentativas podem se sobrepor ao seu processamento, torne seu handler idempotente — deduplique pelo webhook-id. Você pode inspecionar o estado da entrega a qualquer momento no recurso do run:

Boas práticas

  • Responda rápido. Confirme com 2xx imediatamente e processe de forma assíncrona; o timeout de 15 segundos inclui o seu handler.
  • Deduplique pelo webhook-id. Retentativas reutilizam o mesmo ID.
  • Não confie só no payload. Verifique a assinatura e busque o run pela API para obter o estado autoritativo.
  • Fique de olho em entregas esgotadas. Se esgotaram, seu endpoint ficou fora do ar por horas — consulte os runs em andamento para se atualizar.