How it works
Every time an article publishes, Ryze sends one HTTP request to your endpoint:- Method:
POST - Headers:
Authorization: Bearer <your token>,Content-Type: application/json - Body:
body_html is ready-to-serve HTML, body_markdown is the same article in Markdown, and blocks carries Ryze’s structured rich blocks (TL;DR, stats, FAQ) when the article has them. image.url is a permanently hosted copy of the featured image — save it or hotlink it. primary_keyword and image can be null.
Your endpoint should upsert by slug — if an article with that slug already exists, replace it. Republishing an updated article sends the same slug again, and your upsert is what makes the update land. Return any 2xx status to confirm; anything else (including redirects) is treated as a failure and shown in Ryze with your endpoint’s response.
Step 1 — Build the endpoint on your site
1
Create a POST route
Add an HTTPS endpoint on your site, e.g.
https://yoursite.com/api/articles/webhook. Plain HTTP is not accepted.2
Check the bearer token
Generate a long random token and have the endpoint reject any request whose
Authorization: Bearer header doesn’t match it.3
Save the article
Parse the JSON body, store the article (most receivers save
body_html plus the meta fields) so your site renders it at a stable URL — ideally your blog URL + slug (see below). Upsert by slug and respond 200.Step 2 — Connect in Ryze
In Workspace Settings → Integrations, click Connect on the Custom Webhook card and fill in:- Webhook URL — the endpoint you built, e.g.
https://yoursite.com/api/articles/webhook - Bearer token — the token your endpoint expects (stored encrypted)
- Blog URL — where published articles appear publicly, e.g.
https://yoursite.com/blog
The article’s public link is built as Blog URL + slug (e.g.
https://yoursite.com/blog/example-article-slug). Make sure your site serves articles at that path — Ryze also uses it to periodically verify published pages are still live.What the webhook can and can’t do
- Publishing and updating work fully — every publish and republish is a POST your endpoint upserts.
- Removing an article is not part of the contract. When you delete an article in Ryze, the live copy stays on your site until you remove it there — Ryze tells you this wherever it applies.
- Images: the featured image arrives as a hosted
image.urlyou can save or hotlink. Inline article images are already embedded inbody_html.
Troubleshooting
- “rejected the article (HTTP 401/403)” — the bearer token in Ryze doesn’t match what your endpoint checks. Reconnect with the right token.
- “rejected the article (HTTP 30x)” — your endpoint redirected. Ryze doesn’t follow redirects; point the Webhook URL at the final address.
- “could not be reached” — the endpoint is down, unreachable from the public internet, or not answering within 30 seconds.
- Article publishes but the page 404s — your site isn’t serving the article at
Blog URL + slug; adjust the route or the Blog URL so they match.

