Weet op het moment zelf of een post is geplaatst
Registreer één keer een URL en FoPost roept hem aan zodra een aflevering is afgerond. Elke gebeurtenis bevat het post-id, het account, het platform, de permalink of de fouttekst, zodat je systeem reageert zonder te pollen.
curl -X POST https://api.fopost.com/v1/webhooks \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "9b2f6c1e-...",
"url": "https://yourbrand.com/hooks/social",
"events": ["delivery.published", "delivery.failed", "post.published", "post.failed"]
}'Gaat af bij afronding
Eén gebeurtenis per aflevering op een account, verzonden zodra het netwerk bevestigt of weigert.
Ondertekend
Elk verzoek bevat een handtekening-header, zodat je kunt controleren dat het van ons komt.
Nieuwe pogingen
Bij een antwoord buiten de 2xx volgen nieuwe pogingen met backoff voordat de gebeurtenis vervalt.
Gebeurtenissen dekken de hele publicatiecyclus
delivery.published gaat af wanneer een netwerk de aflevering voor één account accepteert en bevat de permalink. delivery.failed gaat af wanneer publiceren niet lukt en bevat de fouttekst van het platform. post.published en post.failed gaan één keer per post af, nadat elk account is afgerond.
Webhook-documentatie lezen{
"event": "delivery.published",
"data": {
"postId": "7d3e0a52-...",
"postAccountId": "a3c5e7f9-...",
"accountId": "4a71d80b-...",
"platform": "linkedin",
"externalUrl": "https://linkedin.com/feed/update/..."
},
"timestamp": "2026-09-01T09:00:07Z"
}delivery.published
De permalink, klaar om op te slaan of vanuit je CMS naar te linken.
delivery.failed
De eigen foutmelding van het netwerk, zodat je de oorzaak oplost in plaats van te gokken.
Per werkruimte
Een webhook hoort bij één werkruimte en ziet alleen de posts van die werkruimte.
Vertrouw de payload voordat je ermee aan de slag gaat
Elk verzoek wordt ondertekend met het geheim dat je krijgt wanneer je de webhook aanmaakt. Bereken de handtekening over de ruwe body, vergelijk die met de header en weiger alles wat niet overeenkomt. Antwoord snel met een 2xx en doe het werk daarna.
Handtekeningcontrole bekijkenapp.post('/hooks/social', async (req, res) => {
const signature = req.header(SIGNATURE_HEADER) // header name is in the docs;
if (!verify(req.rawBody, signature, process.env.WEBHOOK_SECRET)) {
return res.status(401).end();
}
const { event, data } = req.body;
await queue.add(event, data);
res.status(200).end();
});Handtekening-header
Controleer met het geheim dat je bij het aanmaken hebt gekregen. Vernieuw het door de webhook opnieuw aan te maken.
Met tijdstempel
Met timestamp negeer je verouderde herhalingen en zet je gebeurtenissen in de juiste volgorde.
Idempotent via id
Nieuwe pogingen hebben hetzelfde gebeurtenis-id, dus een dubbele aflevering negeer je eenvoudig.
Endpoints aanmaken, opvragen en verwijderen vanuit code
Webhooks zijn gewone API-objecten. Maak er een per omgeving aan, vraag ze op om te controleren wat er is geregistreerd en verwijder wat je niet meer nodig hebt. Laat ze tijdens de ontwikkeling naar een staging-URL wijzen en schakel met één aanroep over naar productie.
Begin met bouwen
Endpoints opvragen
GET /v1/webhooks toont elke URL en de gebeurtenissen waarop die is geabonneerd.
Per omgeving
Registreer een aparte URL voor staging, zodat testposts nooit productie bereiken.
webhooks-scope
Endpoints beheren vraagt om een eigen scope. Een sleutel die alleen mag publiceren, kan er geen toevoegen.
Vragen over Webhooks, beantwoord
Welke gebeurtenissen zijn er beschikbaar?
Hoe controleer ik een webhook?
Wat als mijn endpoint niet bereikbaar is?
Kan ik gebeurtenissen voor één account ontvangen?
Kan ik testen zonder echt te publiceren?
Heb ik webhooks überhaupt nodig?
Bouw vandaag nog op de Webhooks
Starten is gratis en de volledige API is inbegrepen. Maak een sleutel aan en doe binnen enkele minuten je eerste aanroep.
Haal je API-sleutel op