---
title: "Reddit Subreddit Posts"
method: GET
path: "/v1/reddit/subreddit/posts"
tags: ["Reddit"]
---

# Reddit Subreddit Posts

`GET /v1/reddit/subreddit/posts`

## Request

- Base URL: `https://apidirect.io`
- URL: `https://apidirect.io/v1/reddit/subreddit/posts`
- Auth: API key in header `X-API-Key`

Get a subreddit's posts by name or URL. Sort by hot, new, top, rising or controversial, with a time window (past hour to all time) for top and controversial, and optionally only posts with one flair. Returns title, text, author, date, score, upvote ratio, comment count, flair, shared link, video and gallery links and NSFW flags for each post, 25 per page, up to about 1,000 posts. Works for NSFW subreddits. Supports fetching multiple pages in a single API call (billed per page).

**Price:** $0.003 per page. **Free tier:** 50 requests/month.

## Query parameters

- `subreddit` string
- `url` string
- `sort_by` 'hot' | 'most_recent' | 'top' | 'rising' | 'controversial'
- `posted_ago` '1h' | '24h' | '7d' | '30d' | '12m' | 'all'
- `flair` string
- `pages` integer
- `get_sentiment` boolean

## Response `200`

Successful response

- RedditSubredditPostsResponse: Inferred from a live response. Any field can be null or absent, and new fields may be added at any time.
  - `posts` object[], nullable
    - `post_id` string, nullable
    - `title` string, nullable
    - `url` string, nullable
    - `date` string, nullable
    - `author` string, nullable
    - `author_url` string, nullable
    - `source` string, nullable
    - `domain` string, nullable
    - `snippet` string, nullable
    - `subreddit` string, nullable
    - `upvotes` number, nullable
    - `upvote_ratio` number, nullable
    - `comments` number, nullable
    - `crossposts` number, nullable
    - `flair` string, nullable
    - `link_url` string, nullable
    - `thumbnail` string, nullable
    - `is_video` boolean, nullable
    - `nsfw` boolean, nullable
    - `spoiler` boolean, nullable
    - `locked` boolean, nullable
    - `stickied` boolean, nullable
    - `video_url` string, nullable
    - `video_hls_url` string, nullable
    - `images` unknown[], nullable
      - unknown
  - `subreddit` string, nullable
  - `sort_by` string, nullable
  - `pages` number, nullable
  - `count` number, nullable

## Other responses

- `400`: Bad request: missing or invalid parameters
- `401`: Unauthorized: invalid or missing API key
- `402`: Free tier used up for this endpoint and no payment method on file (`payment_required`).
- `403`: Account blocked after a failed payment (`account_blocked`).
- `404`: Subreddit is private or banned
- `429`: Rate limit exceeded or too many concurrent requests
- `500`: Internal server error
- `502`: Temporary failure retrieving Reddit data. Please retry shortly.
- `503`: Service temporarily unavailable. Please retry shortly.
- `504`: The request timed out

---

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