---
title: "Get posts feed"
method: GET
path: "/v1/posts/feed"
tags: ["posts"]
---

# Get posts feed

`GET /v1/posts/feed`

Retrieve a curated, paginated list of posts.

## Query parameters

- `cursor` string
- `limit` integer
- `includeContent` union
  - boolean
  - string

## Response `200`

Feed items retrieved successfully

- object
  - `items` object[], required — Array of items in this page
    - `post` object, required — The post content
      - `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
      - `imageAlt` string — Alternative text describing the cover image, shown to screen readers and when the image fails to load
      - `publishedAt` string — Epoch timestamp when the post was published
      - `updatedAt` string — Epoch 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 — Rendered HTML content of the post
      - `json` string — TipTap JSON representation of the post content structure. This is the source of truth that the staticHtml and markdown is generated from
      - `markdown` string — Markdown source of the post content
      - `coinId` string — ID of the associated coin, if the post is coined
      - `categories` string[] — Categories/tags associated with this post
      - `canonicalUrl` string, uri — Canonical URL used in rendered metadata. This does not change the Paragraph permalink.
      - `publishOnline` boolean — Whether the published post is visible on the public website
      - `communityId` string — Subscriber segment id selected for newsletter delivery
      - `authors` object[] — Authors of this post
        - `id` string, required — Unique identifier for the user
        - `walletAddress` string — Wallet address of the user
        - `avatarUrl` string, uri — URL to the user's avatar image
        - `publicationId` string, required — ID of the publication this user belongs to
        - `name` string — Display name of the user
        - `bio` string — Brief biography of the user (max 500 characters)
      - `authorIds` string[] — IDs of the authors of this post
      - `views` number — Total views. Only included when fetching your own posts via GET /v1/posts
      - `status` 'published' | 'draft' | 'scheduled' | 'archived' — Current publish status. Only set on authenticated endpoints (listOwn, getById for your own post). Use this instead of publishedAt to determine publish state — publishedAt is preserved across unpublishing.
    - `publication` object, required — The publication this post belongs to
      - `id` string, required — Unique identifier for the publication
      - `name` string, required — Display name of the publication
      - `ownerUserId` string, required — ID of the user who owns this publication
      - `slug` string, required — URL-friendly identifier for the publication; accessible at paragraph.com/@[slug]
      - `customDomain` string, uri — Custom domain configured for this publication
      - `summary` string — Brief description of the publication (max 500 characters)
      - `logoUrl` string, uri — URL to the publication's logo image
      - `postListType` 'feed' | 'grid' | 'full-post' — Homepage layout. 'feed' is a single-column list of cards, 'grid' is a 3-column grid, 'full-post' shows full posts in a single column.
      - `themeColor` 'default' | 'orange-500' | 'rose-600' | 'pink-500' | 'fuchsia-600' | 'purple-600' | 'violet-600' | 'indigo-600' | 'blue-600' | 'sky-600' | 'cyan-600' | 'teal-600' | 'emerald-600' | 'green-600' | 'lime-600' | 'yellow-700' | 'amber-600' | 'orange-600' | 'stone-800' | 'rose-900' | 'indigo-950' | 'teal-950' | 'lime-950' | 'orange-950' — Theme accent color for the publication
      - `headerFont` 'default' | 'serif' | 'mono' — Font family used for headers
      - `bodyFont` 'default' | 'serif' | 'mono' — Font family used for body text
      - `showMostPopular` boolean — Whether the 'most popular posts' widget is shown
      - `hideStats` boolean — Whether to hide stats like subscriber count, post count, and collects
      - `featuredPost` string — Featured post selector. Use 'latest' for the most recent post, 'popular' for the most-viewed post, 'disabled' to hide the featured slot, or the ID of a specific post in this publication.
      - `enableTableOfContents` boolean — Whether the table of contents is enabled on posts
      - `enableSubscribePopup` boolean — Whether to show the subscribe popup to first-time visitors arriving from external links
      - `enableSubscribeScroll` boolean — Whether to show the subscribe popup when first-time visitors scroll a post
      - `pinnedPostIds` string[] — Ordered list of post IDs pinned to the top of the publication's homepage. Pinned posts render in their own section above the regular feed.
      - `emailNotifications` object — Owner-side email notification toggles
        - `newSubscriber` boolean — Email the writer when a new free subscriber signs up
    - `user` object, required — The user who owns the publication this post belongs to
      - `id` string, required — Unique identifier for the user
      - `walletAddress` string — Wallet address of the user
      - `avatarUrl` string, uri — URL to the user's avatar image
      - `publicationId` string, required — ID of the publication this user belongs to
      - `name` string — Display name of the user
      - `bio` string — Brief biography of the user (max 500 characters)
  - `pagination` object, required
    - `cursor` string — Cursor for fetching the next page of results
    - `hasMore` boolean, required — Whether more results are available
    - `total` number — Total number of items available

## Other responses

- `400` — Invalid request parameters
- `500` — Internal server error

## Changes

- **2026-08-28** `8108f2a53d2e` — 3 info
  - added the optional property `items/items/post/canonicalUrl` to the response with the `200` status
  - added the optional property `items/items/post/communityId` to the response with the `200` status
  - added the optional property `items/items/post/publishOnline` to the response with the `200` status
- **2026-08-25** `a38cc07e90d8` — 1 info
  - added the optional property `items/items/post/imageAlt` to the response with the `200` status
- **2026-08-19** `0b69669d5430` — 2 warning
  - removed the optional property `items/items/publication/disableComments` from the response with the `200` status
  - removed the optional property `items/items/publication/emailNotifications/newComment` from the response with the `200` status
- **2026-08-19** `f76f6f333ba8` — 3 warning
  - removed the optional property `items/items/publication/disableHighlights` from the response with the `200` status
  - removed the optional property `items/items/publication/emailNotifications/newContentCollected` from the response with the `200` status
  - removed the optional property `items/items/publication/emailNotifications/newPaidSubscriber` from the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/paragraph-xyz/apis/paragraph-api/changes/v1/posts/feed/get.md)

---

[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/8108f2a53d2e/schema)
