---
title: "Get a post"
method: GET
path: "/api/content/v1/posts/{slug}"
tags: ["Content API"]
---

# Get a post

`GET /api/content/v1/posts/{slug}`

## Request

- Base URL: `https://revnu.com`
- URL: `https://revnu.com/api/content/v1/posts/{slug}`
- Auth: HTTP bearer

One post, render-ready: markdown and safe HTML, table of contents, head metadata, JSON-LD and related posts.

**Response.** ```json
{
  "redirected": false,
  "blog": { "blogSlug": "…", "creatorName": "…", "authorName": "…", "logoUrl": "…", "baseUrl": "…" },
  "nav": [{ "type": "blog", "prefix": "blog", "label": "All" }, { "type": "how_to", "prefix": "guides", "label": "Guides" }],
  "post": {
    "slug": "graph-rag",
    "title": "…",
    "contentType": "how_to",
    "canonicalPath": "/guides/graph-rag",
    "canonicalUrl": "https://yourdomain.com/blog/guides/graph-rag",
    "metaDescription": "…",
    "authorName": "…",
    "readingMinutes": 8,
    "body": { "markdown": "…", "html": "…" },
    "toc": [{ "text": "…", "slug": "…" }],
    "heroImageUrl": "https://…",
    "faqItems": [{ "question": "…", "answer": "…" }],
    "citations": ["https://…"],
    "publishedAt": 1753000000000,
    "updatedAt": 1753100000000
  },
  "headMeta": {
    "title": "…",
    "description": "…",
    "canonical": "…",
    "robots": "index,follow",
    "openGraph": { "url": "…", "type": "article", "image": { "url": "…", "width": 1200, "height": 630 } },
    "twitter": { "card": "summary_large_image", "image": { "url": "…" } }
  },
  "jsonLd": [{ "@type": "Article" }, { "@type": "BreadcrumbList" }, { "@type": "FAQPage" }],
  "related": [{ "slug": "…", "title": "…", "contentType": "blog", "canonicalPath": "/…" }]
}
```

## Path parameters

- `slug` string, required

## Response `200`

``json { "redirected": false, "blog": { "blogSlug": "…", "creatorName": "…", "authorName": "…", "logoUrl": "…", "baseUrl": "…" }, "nav": [{ "type": "blog", "prefix": "blog", "label": "All" }, { "type": "how_to", "prefix": "guides", "label": "Guides" }], "post": { "slug": "graph-rag", "title": "…", "

- object
  - `redirected` boolean, required
  - `blog` object, required
    - `blogSlug` string, required
    - `title` string, nullable, required
    - `creatorName` string, required
    - `creatorOneliner` string, nullable, required
    - `creatorTargetUrl` string, nullable, required
    - `authorName` string, nullable, required
    - `authorPhotoUrl` string, nullable, required
    - `logoUrl` string, nullable, required
    - `baseUrl` string, required
    - `flatContentPaths` boolean
    - `trailingSlash` boolean
  - `nav` object[], required
    - `type` string, required
    - `prefix` string, required
    - `label` string, required
  - `post` object, required
    - `slug` string, required
    - `title` string, required
    - `contentType` 'alternative' | 'blog' | 'comparison' | 'glossary' | 'how_to' | 'use_case', required
    - `canonicalPath` string, required
    - `canonicalUrl` string, required
    - `metaDescription` string, nullable, required
    - `authorName` string, required
    - `readingMinutes` number, required
    - `heroImageUrl` string, nullable, required
    - `citations` string[], required
    - `faqItems` object[], required
      - `question` string, required
      - `answer` string, required
    - `publishedAt` number, required
    - `updatedAt` number, nullable, required
    - `body` object, required
      - `markdown` string, required
      - `html` string, required
    - `toc` object[], required
      - `text` string, required
      - `slug` string, required
  - `related` object[], required
    - `slug` string, required
    - `title` string, required
    - `contentType` string, required
    - `canonicalPath` string, required
  - `headMeta` object, required
    - `title` string, required
    - `description` string, required
    - `canonical` string, required
    - `robots` string, required
    - `openGraph` object, required
      - `title` string, required
      - `description` string, required
      - `url` string, required
      - `type` string, required
      - `siteName` string, required
      - `locale` string, required
      - `publishedTime` string, required
      - `modifiedTime` string, required
      - `authors` string[], required
      - `image` object, required
        - `url` string, required
        - `width` number, required
        - `height` number, required
        - `alt` string, required
    - `twitter` object, required
      - `card` string, required
      - `title` string, required
      - `description` string, required
      - `image` object, required
        - `url` string, required
        - `alt` string, required
  - `jsonLd` object[], required

## Other responses

- `400`: an unrecognised type, or a non-numeric since or limit on the list
- `401`: missing or malformed Authorization header
- `404`: unknown or revoked token, or unknown slug; indistinguishable on purpose
- `429`: slow down; Retry-After is set

---

[API](https://skmtc.dev/revnu/apis/revnu-api.md) · [All operations](https://skmtc.dev/revnu/apis/revnu-api/llms.txt) · [OpenAPI document](https://skmtc.dev/revnu/apis/revnu-api/revisions/52e523c2db61?raw)
