Content webhooks
Connect your own site to the studio: when a blog post or FAQ set is ready, one click sends it to your backend as JSON, so your CMS can ingest and publish it — images and JSON-LD included.
Setup
- Open Settings → Content webhooks (below Search Console).
- Enter one or both callback URLs — endpoints on your site that accept a JSON
POST. They must be public hosts (localhost and private ranges are refused). - In AEO Studio, the Send to site buttons appear on the blog and FAQ cards once the matching callback is saved.
Blog post payload
Sent to the blog callback. coverImageUrl is null when the draft has no generated cover; imageUrls lists every generated image referenced in the HTML (they are served permanently, hotlinking is fine — or download and rehost).
{
"type": "blog_post",
"title": "AI Visibility Guide",
"metaDescription": "How to be the answer AI engines cite.",
"bodyHtml": "<h1>…</h1><p>…</p>",
"coverImageUrl": "https://seoruna.com/api/public/blog-images/<id>",
"imageUrls": ["https://seoruna.com/api/public/blog-images/<id>"],
"generatedAt": "2026-08-03T10:00:00.000Z"
}FAQ payload
Sent to the FAQ callback. jsonLdis the ready-to-inline FAQPage schema — render the Q&A on the page and put the JSON-LD in a <script type="application/ld+json"> tag.
{
"type": "faq",
"url": "https://yoursite.com/page",
"coreQuery": "online doktor randevusu",
"faqs": [
{ "question": "…", "answer": "…" }
],
"jsonLd": "{ \"@context\": \"https://schema.org\", \"@type\": \"FAQPage\", … }",
"generatedAt": "2026-08-03T10:00:00.000Z"
}Delivery semantics
- One POST per click — nothing is sent automatically.
- 10 second timeout, no retries; the studio shows your endpoint's HTTP status either way. Respond with any 2xx to acknowledge.
- Requests carry
User-Agent: Seoruna-Webhook/1.0andContent-Type: application/json.