Webhooks
Receba notificações quando um novo rascunho estiver pronto — depois busque o artigo completo via API.
Configure URL de webhook e secret em Integrações. Quando um rascunho fica pronto, enviamos article.ready com slug e dicas de fetch. Seu backend verifica HMAC e chama GET /posts/{slug} para importar contentHtml.
Eventos
article.ready— Um rascunho ficou pronto com pontuação de qualidade — busque o HTML completo via API usando o slugwebhook.test— Enviado ao chamar POST /api/v1/webhooks/test
Verificação de assinatura
Enviamos X-GrowthDaily-Timestamp (segundos Unix) e X-GrowthDaily-Signature (HMAC-SHA256 hex de `{timestamp}.{rawBody}` usando seu secret de webhook).
import { createHmac, timingSafeEqual } from "crypto";
function verify(secret, rawBody, timestamp, signatureHex) {
const expected = createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const a = Buffer.from(expected, "utf8");
const b = Buffer.from(signatureHex, "utf8");
if (a.length !== b.length) return false;
return timingSafeEqual(a, b);
}{
"event": "article.ready",
"siteId": "uuid",
"postId": "uuid",
"slug": "my-post",
"title": "My post",
"trustScore": 94,
"qualityBand": "premium",
"assuranceLabel": "High confidence",
"language": "en",
"sourcePostId": null,
"status": "draft",
"at": "2026-07-21T12:00:00.000Z",
"fetch": {
"path": "/api/v1/sites/{siteId}/posts/{slug}",
"hint": "GET with Bearer token to import contentHtml"
}
}Após article.ready
Use o slug do payload (ou fetch.path) para chamar GET /api/v1/sites/{siteId}/posts/{slug}. Importe contentHtml, seo e faqJsonLd no CMS — publique no seu cronograma.
Garantias de entrega
Cada evento é enviado uma vez com POST HTTP e timeout de 8 segundos. Não repetimos entregas falhadas automaticamente. Um webhook falhado não bloqueia novos rascunhos. Cada tentativa aparece em Integrações → Entregas recentes.
Handlers idempotentes
Responda com HTTP 2xx rapidamente. Deduplique importações com postId (ou siteId + slug). Se perder um evento, use GET /posts com updatedAfter — veja a referência da API.
Log de entregas
Sucesso e falha aparecem no painel de integrações com status HTTP e horário.