---
title: "Get post by ID"
method: GET
path: "/v1/posts/{postId}"
tags: ["posts"]
---

# Get post by ID

`GET /v1/posts/{postId}`

Retrieve detailed information about a specific post

## Path parameters

- `postId` string, required

## Response `200`

Post details retrieved successfully

- object — Post details retrieved successfully
  - `id` string, required — Unique identifier for the post
  - `title` string, required — Title of the post
  - `imageUrl` string, uri — Optional URL to the post's main image
  - `publishedAt` string, date-time — ISO 8601 timestamp when the post was published
  - `updatedAt` string, date-time — ISO 8601 timestamp when the post was last updated
  - `subtitle` string — Optional subtitle or brief summary
  - `slug` string, required — URL-friendly identifier for the post; accessible at paragraph.com/@[publicationSlug]/[slug]
  - `staticHtml` string, required — Rendered HTML content of the post
  - `json` string, required — TipTap JSON representation of the post content structure. This is the source of truth that the staticHtml and markdown is generated from
  - `markdown` string, required — Markdown source of the post content
  - `coinId` string — ID of the associated coin, if the post is coined

## Other responses

- `404` — Post not found
- `500` — Internal server error

---

[API](https://skmtc.dev/paragraph-xyz/apis/paragraph-api.md) · [All operations](https://skmtc.dev/paragraph-xyz/apis/paragraph-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/paragraph-xyz/paragraph-api/revisions/d35bed74f2ca/schema)
