Content API / Get a post
Get a post
One post, render-ready: markdown and safe HTML, table of contents, head metadata, JSON-LD and related posts.
curl -H "Authorization: Bearer $REVNU_TOKEN" \
https://revnu.com/api/content/v1/posts/graph-ragResponse
{
"blog": { "creatorName": "…", "authorName": "…", "logoUrl": "…", "baseUrl": "…" },
"post": {
"slug": "graph-rag",
"title": "…",
"canonicalPath": "/guides/graph-rag",
"canonicalUrl": "https://yourdomain.com/blog/guides/graph-rag",
"body": { "markdown": "…", "html": "…" },
"toc": [{ "text": "…", "slug": "…" }],
"heroImageUrl": "https://…",
"faqItems": [{ "question": "…", "answer": "…" }],
"citations": ["https://…"],
"publishedAt": 1753000000000,
"updatedAt": 1753100000000
},
"headMeta": { "title": "…", "description": "…", "canonical": "…", "openGraph": {}, "twitter": {} },
"jsonLd": [{ "@type": "Article" }, { "@type": "BreadcrumbList" }, { "@type": "FAQPage" }],
"related": [{ "slug": "…", "title": "…", "canonicalPath": "…" }]
}Using it
Routing. Use
canonicalPath:/{slug}for regular posts,/{prefix}/{slug}for typed content such as guides and comparisons. Mount everything under one path, for example/blog.Links between posts in
body.htmlare root-relative. If your blog mounts at/blog, rewrite them once when rendering:html.replace(/href="\/(?!\/)/g, 'href="/blog/').Styling. Wrap
body.htmlin a container and style plain tags. Raw HTML in the source is escaped andjavascript:URLs are rejected, so it is safe to inject.Head tags. Pipe
headMetainto your framework's metadata API and embed eachjsonLdentry in a<script type="application/ld+json">. This is the same structured data the hosted blog ships.Hero image.
heroImageUrlis a stable URL; hotlink it.
404 for an unknown slug or an unknown or revoked token.
Agents: this page is also markdown at /docs/content-post.md, answers Accept: text/markdown, and is listed in /docs/llms.txt.
Frequently Asked Questions
The HTML, unless you have a reason not to. It is the hosted blog's exact pipeline, already escaped, with a table of contents to match. The markdown is there for full control.