All endpoints
Reddit Posts

Reddit Posts API

Search Reddit posts by keyword. Returns each post's title, URL, subreddit, author, publication date, text, score, comment count, flair, and video and gallery links. Sort by newest, relevance, hot, top or most commented, narrow to a time window from the past hour to the past year or to one subreddit, and optionally include NSFW posts.

Price: $0.003 per request
Free tier: 50 requests/month
Endpoint
GET /v1/reddit/posts

Parameters

query *
Search keyword (max 500 characters)
page
Page number, 1-12 (default: 1). 20 posts per page
sort_by
Sort order: most_recent, relevance, hot, top, or most_commented (default: most_recent)
posted_ago
Only posts from this period: 1h, 24h, 7d, 30d, 12m, or all (default: all). Works with every sort_by, e.g. sort_by=relevance&posted_ago=24h for the most relevant posts of the past day
subreddit
Only posts from this subreddit, with or without r/ (e.g. Python)
include_nsfw
Set to true to include posts marked NSFW (left out by default)
get_sentiment
Set to true to add AI emotion analysis (+$0.001/request)

Response fields

posts
Array of matching posts
post_id
Post ID (the base-36 ID in the post URL)
title
Post title
url
Direct link to the post
date
Publication date and time (UTC)
author
Author's Reddit username ([deleted] for a deleted account)
author_url
Link to the author's profile (empty for a deleted account)
source
"Reddit"
domain
"reddit.com"
snippet
Post text (the title for link, image and video posts)
subreddit
Subreddit name
upvotes
Net upvotes (upvotes minus downvotes)
upvote_ratio
Fraction of votes that are upvotes, between 0 and 1
comments
Number of comments
crossposts
Number of times the post has been crossposted
flair
Post flair text, or empty string
link_url
The URL a link, image or video post shares (empty for text posts)
thumbnail
Thumbnail image URL, or empty string
is_video
Whether the post is a Reddit-hosted video
nsfw
Whether the post is marked NSFW
spoiler
Whether the post is marked as a spoiler
locked
Whether the post is locked to new comments
stickied
Whether the post is pinned in its subreddit
video_url
MP4 file of a Reddit-hosted video, or empty string. It can be silent (Reddit stores most video sound separately), so use video_hls_url for video with sound. Reddit can expire video links, so use them soon after fetching
video_hls_url
HLS stream (with sound) of a Reddit-hosted video, or empty string. Reddit can expire this link too
images
Image URLs: every image of a gallery post, in order, or the image of an image post (empty otherwise)
sentiment
Emotion analysis: emotions, dominant_emotion, emotional_intensity, polarity (when get_sentiment=true)
page
Current page number
count
Number of results returned

Example Request

curl "https://apidirect.io/v1/reddit/posts?query=programming&page=1&sort_by=hot" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "posts": [
    {
      "post_id": "1x8r41q",
      "title": "Trauma Based Programming",
      "url": "https://www.reddit.com/r/Vaporwave/comments/1x8r41q/trauma_based_programming/",
      "date": "2026-10-18 01:48:31",
      "author": "planomania-",
      "author_url": "https://www.reddit.com/user/planomania-",
      "source": "Reddit",
      "domain": "reddit.com",
      "snippet": "Trauma Based Programming",
      "subreddit": "Vaporwave",
      "upvotes": 51,
      "upvote_ratio": 0.93,
      "comments": 5,
      "crossposts": 0,
      "flair": "Video",
      "link_url": "https://v.redd.it/j0e5l6pgs4wh1",
      "thumbnail": "https://external-preview.redd.it/cnYxMDNma2dzNHdoMegLt1Xvsyv80gIh_B9028HKtv_zyFY-Iep2LPcXiPLG.jpeg?width=140&height=107&format=jpg&auto=webp&s=e9624aebe61f11dbf2668c392ad42fe0118d9bd5",
      "is_video": true,
      "nsfw": false,
      "spoiler": false,
      "locked": false,
      "stickied": false,
      "video_url": "https://v.redd.it/j0e5l6pgs4wh1/CMAF_1080.mp4?source=fallback",
      "video_hls_url": "https://v.redd.it/j0e5l6pgs4wh1/HLSPlaylist.m3u8?a=1794925791%2CYzAxYjJlZGNlMGY1MjUxOTVhYjVjYjk3YWIwOTM5YTEzNTRhNzZhZmQ4OWYxNmQ3N2VmNThmNjA2MTAyYmU0OQ%3D%3D&v=1&f=sd",
      "images": [],
      "sentiment": {
        "emotions": {
          "joy": 40,
          "trust": 55,
          "fear": 0,
          "surprise": 10,
          "sadness": 0,
          "disgust": 0,
          "anger": 0,
          "anticipation": 30
        },
        "dominant_emotion": "trust",
        "emotional_intensity": 5,
        "polarity": "positive"
      }
    }
  ],
  "page": 1,
  "count": 20
}

Frequently asked questions

What's the difference between hot, top, most_commented and most_recent?

Hot shows trending posts with recent activity. Top shows highest-voted posts. Most_commented shows the posts with the most comments. Most_recent shows posts in chronological order, newest first.

How do I get only recent posts?

Use the posted_ago parameter: 1h for the past hour, 24h for the past day, 7d for the past week, 30d for the past month, or 12m for the past year. It works with every sort_by, so sort_by=relevance&posted_ago=24h returns the most relevant posts from the past day.

Does the API include NSFW content?

Only if you ask: add include_nsfw=true to include posts marked NSFW.

Can I search within one subreddit?

Yes. Add subreddit=Python (or r/Python) to search only that subreddit.

How fresh is the Reddit data?

Our API provides real-time data from Reddit, with results going back multiple years to a few seconds ago.

How does pricing work?

You only pay for successful requests. The Reddit Posts API costs $0.003 per request. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 10 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Reddit Posts API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key