Webhook: we push
The moment an article goes out we post the full content to your endpoint. The request carries a signature and a site identifier, so you can verify it really came from us.
Integration
If you run a system we have no dedicated integration for — a custom CMS, Framer, Notion, an internal app — there are two paths: we push, or you pull.
What we need from you
What lands on the destination
How it works
The moment an article goes out we post the full content to your endpoint. The request carries a signature and a site identifier, so you can verify it really came from us.
GET /api/v1/posts returns the list of published articles and /api/v1/posts/{slug} the full text. A key is bound to one site, so it cannot read anyone elses content.
When we correct a text, the webhook receives the same article flagged as an update and the API returns the new version. Matching happens on our identifier rather than the slug, so a changed URL breaks nothing.
Limits
It's on the page on purpose. Better seen now than after the first publish.
FAQ
We send an HMAC-SHA256 signature of the body in a header, and the same secret as a Bearer token. Verify the signature, which also covers the payload, or just the token if you want something simple.
We retry. Transient failures such as network errors, 5xx and rate limits go back in the queue; permanent ones such as a bad signature or a missing route are reported in the panel instead of being retried forever.
Yes. Webhook for new articles and the API for history is a common pairing, because one site is allowed several destinations at once.
Other integrations
Next step
Connect any site — services, webshop or blog. The plan builds itself, articles are written and published on schedule, and the first one is free.