---
title: "List subreddit posts"
method: POST
path: "/v1/reddit/subreddit/posts"
tags: ["Reddit"]
---

# List subreddit posts

`POST /v1/reddit/subreddit/posts`

List posts from a subreddit, optionally filtered by sort order and timeframe. Returns a paginated list of posts. Use the `nextPageToken` field from the response to retrieve subsequent pages.

<span>⚡ <strong>Rate limit:</strong> 300 requests per 1 minute</span>

<span>💰 <strong>Cost:</strong> 2 credits per page of results&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `subreddit` string, required — Subreddit name (e.g. 'AskReddit'), r/ prefix form (e.g. 'r/AskReddit'), or full subreddit URL.
  - `sort` 'best' | 'hot' | 'new' | 'top' | 'rising' — Sort order for subreddit posts.
  - `timeframe` 'all' | 'day' | 'week' | 'month' | 'year' — Time window for filtering. Only applies when `sort` is 'top'; ignored for other sort modes (which are inherently time-ordered).
  - `nextPageToken` string, nullable — Pagination token from a previous response to retrieve the next page. Omit for the first page.

## Response `200`

Default Response

- object
  - `output` object, required
    - `posts` object[], required — List of subreddit posts.
      - `id` string, required — Stable Reddit post identifier (e.g. `ablzuq`). Use this as the primary key when storing posts in a database. Pass as `t3_<id>` to `/reddit/post/comments` to fetch comments for this post.
      - `title` string, nullable — Post title.
      - `author` string, nullable — Author username.
      - `subreddit` string, nullable — Subreddit name.
      - `bodyText` string, nullable — Post body text.
      - `url` string, nullable — Content URL. For link posts this is the external URL the post points at; for text and media posts it is the post's permalink on Reddit.
      - `permalink` string, nullable — Reddit discussion URL. Always points at the post's comments page on reddit.com regardless of post type.
      - `score` number, nullable — Net vote score (upvotes minus downvotes, subject to Reddit vote fuzzing).
      - `upvoteRatio` number, nullable — Ratio of upvotes to total votes (0 to 1).
      - `commentCount` number, nullable — Number of comments.
      - `thumbnailUrl` string, nullable — Thumbnail URL when available.
      - `publishedAt` string, nullable — Publication timestamp in ISO 8601 format.
      - `isVideo` boolean, nullable — True when the post contains video media.
      - `isOver18` boolean, nullable — True when the post is marked NSFW.
      - `isSpoiler` boolean, nullable — True when the post is marked as a spoiler.
    - `nextPageToken` string, nullable — Token to retrieve the next page. Pass as `nextPageToken` in the next request. Null if no more pages.
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/versions/0c537984b99f/schema)
