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

# Search Reddit Posts

`GET /v1/reddit/posts`

## Request

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

Search for Reddit posts by keyword across all subreddits. Returns post ID, title, URL, author and profile link, subreddit, content snippet (the post body, or the title when the post has no body), upvotes, upvote ratio, comment and crosspost counts, flair, the link a link post shares, thumbnail, video links (an MP4 file and an HLS stream with sound) for Reddit-hosted videos, every image of a gallery or image post, and NSFW, spoiler, locked and pinned flags. Supports sort by hot, top, most recent, relevance or most commented, an optional time window (posted_ago) from the past hour to the past year, an optional subreddit to search within, and include_nsfw to include posts marked NSFW (left out by default). Each page returns up to 20 posts, and pages 1 to 12 cover up to 250 posts per query.

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

## Query parameters

- `query` string, required
- `page` integer
- `sort_by` 'most_recent' | 'relevance' | 'hot' | 'top' | 'most_commented'
- `posted_ago` '1h' | '24h' | '7d' | '30d' | '12m' | 'all'
- `subreddit` string
- `include_nsfw` boolean
- `get_sentiment` boolean

## Response `200`

Successful response

- SearchRedditResponse: 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` string[], nullable
  - `page` 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`).
- `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 data source did not respond in time. Please retry shortly.

---

[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)
