Social Media

Reddit API

The Reddit API returns subreddit posts, comments, search and user data as clean JSON.

10 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary subreddit_posts endpoint returns posts with title, author, score, comment count, timestamp and URL, and you can pull a post's comments with deep pagination, search across Reddit, fetch a user profile, read subreddit_about and discover trending communities. It is built for social listening, market research and RAG pipelines that need live Reddit data — logged-out, no account pool — without a fragile scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/reddit/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "subreddit": "python",
    "limit": 10
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "reddit",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 3400.5,
    "record_count": 10,
    "bytes": 33855,
    "cache_hit": false,
    "completeness_pct": 100,
    "requests": 1,
    "source_used": "arctic",
    "pagination": {
      "next_cursor": null,
      "has_more": false
    }
  },
  "data": {
    "results": [
      {
        "id": "1v00o59",
        "fullname": "t3_1v00o59",
        "title": "Bulletproofing User Sync: Handling Clerk and Auth0 Webhook Failures",
        "author": "JadeLuxe",
        "subreddit": "Python",
        "score": 1,
        "upvote_ratio": 1,
        "num_comments": 0,
        "created_utc": 1784392821,
        "url": "https://www.reddit.com/r/Python/comments/1v00o59/bulletproofing_user_sync_handling_clerk_and_auth0/",
        "permalink": "https://www.reddit.com/r/Python/comments/1v00o59/bulletproofing_user_sync_handling_clerk_and_auth0/",
        "selftext": "[removed]",
        "flair": "Discussion",
        "over_18": false,
        "spoiler": false,
        "stickied": false,
        "locked": false,
        "is_self": true,
        "is_video": false,
        "domain": "self.Python",
        "thumbnail": null,
        "num_crossposts": 0,
        "total_awards_received": 0,
        "edited": false
      },
      {
        "id": "1v0030v",
        "fullname": "t3_1v0030v",
        "title": "How I built an offline, AI-driven Live Caption Video Player using PySide6, VLC, and Vosk",
        "author": "abbaaminu",
        "subreddit": "Python",
        "score": 1,
        "upvote_ratio": 1,
        "num_comments": 1,
        "created_utc": 1784391428,
        "url": "https://www.reddit.com/r/Python/comments/1v0030v/how_i_built_an_offline_aidriven_live_caption/",
        "permalink": "https://www.reddit.com/r/Python/comments/1v0030v/how_i_built_an_offline_aidriven_live_caption/",
        "selftext": "",
        "flair": "News",
        "over_18": false,
        "spoiler": false,
        "stickied": false,
        "locked": false,
        "is_self": true,
        "is_video": false,
        "domain": "self.Python",
        "thumbnail": null,
        "num_crossposts": 0,
        "total_awards_received": 0,
        "edited": false
      },
      {
        "id": "1v001ni",
        "fullname": "t3_1v001ni",
        "title": "How I built an offline, AI-driven Live Caption Video Player using PySide6, VLC, and Vosk",
        "author": "abbaaminu",
        "subreddit": "Python",
        "score": 1,
        "upvote_ratio": 0.99,
        "num_comments": 2,
        "created_utc": 1784391336,
        "url": "https://www.reddit.com/r/Python/comments/1v001ni/how_i_built_an_offline_aidriven_live_caption/",
        "permalink": "https://www.reddit.com/r/Python/comments/1v001ni/how_i_built_an_offline_aidriven_live_caption/",
        "selftext": "[removed]",
        "flair": "Showcase",
        "over_18": false,
        "spoiler": false,
        "stickied": false,
        "locked": false,
        "is_self": true,
        "is_video": false,
        "domain": "self.Python",
        "thumbnail": null,
        "num_crossposts": 0,
        "total_awards_received": 0,
        "edited": false
      }
    ],
    "count": 10,
    "type": "post"
  }
}
Actions

What the Reddit API does

ActionDescriptionConcrete use caseKey params
subreddit_postsPosts in a subreddit, ranked by `sort`. Returns title/author/score/comment-count. Supports deep paging (`page`) and `flair` filtering.Ops teams call subreddit_posts to get posts in a subreddit, ranked by `sort`.subreddit, sub, sort, time, limit, ...
post_commentsThreaded comments for a post. Returns author/body/score per comment.Developer tools call post_comments to get threaded comments for a post.post_id, id, url, sort, limit, ...
searchSearch posts, comments, or users by `q` and/or `subreddit`/`author`. Returns results[]. Cursor pagination + `flair` filter apply on the live source.Validation workflows call search to search posts, comments, or users by `q` and/or `subreddit`/`author`.q, query, subreddit, sub, author, ...
userUser profile or content. kind=about returns karma/profile; submitted/comments list items (with deep paging).Data-quality teams call user to get user profile or content.username, user, name, kind, limit, ...
subreddit_aboutSubreddit metadata: subscribers, description, created date, etc.Ops teams call subreddit_about to get subreddit metadata.subreddit, sub, source
communitiesSearch subreddits by name/keyword — find communities matching a term, with each one's subscribers, title, description and over-18 flag.Developer tools call communities to search subreddits by name/keyword.q, limit
trendingSite-wide discovery — hot/popular posts from r/popular or r/all (what's trending across Reddit right now), or the most-popular communities. No subreddit needed.Validation workflows call trending to get site-wide discovery.scope, kind, sort, time, limit, ...
user_searchFind Reddit users by name/keyword — people search. Returns matching profiles with karma. (Same as search with type=user.)Data-quality teams call user_search to find Reddit users by name/keyword.q, query, username, limit, after, ...
load_more_commentsExpand the collapsed 'more comments' nodes from a post_comments call — pass that response's more_ids to reveal the rest of the thread (build the FULL comment tree).Ops teams call load_more_comments to get expand the collapsed 'more comments' nodes from a post_comments call.post_id, link_id, id, url, more_ids, ...
subreddit_extrasPublic subreddit extras: the community's rules and its wiki page index/content. (Moderator list is mod-only on Reddit and is not available logged-out.)Developer tools call subreddit_extras to get public subreddit extras.subreddit, sub, include, wiki_page, source
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/reddit/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"subreddit":"python","limit":10}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.reddit.search with {"subreddit":"python","limit":10}.
Use cases

Who uses this API and why

  • Market researchers call subreddit_posts and search to track what communities say about a product.
  • RAG pipelines pull post_comments to ground an AI assistant in real Reddit discussion.
  • Social-listening tools use trending and user to monitor rising topics and influential accounts.
FAQ

Questions developers ask before integrating

What is the Reddit API?

Reddit API is a ReefAPI endpoint group for posts, comments, subreddits and search. It returns live JSON through POST requests under /reddit/v1.

Is the Reddit API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Reddit calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Reddit login or account?

No login to Reddit is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Reddit data?

The page example is captured from a live subreddit_posts call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Reddit API use?

Reddit actions currently cost 1-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Reddit from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call reddit actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Reddit API a Reddit scraper?

It is the managed alternative to a DIY Reddit scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same posts, comments, subreddits and search back as clean JSON.

Why does my Reddit scraper keep getting blocked?

Most Reddit scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / reddit

Reddit

Posts, comments, subreddits and search.

base /reddit/v110 endpoints
post/reddit/v1/subreddit_posts1 credit

Posts in a subreddit, ranked by `sort`. Returns title/author/score/comment-count. Supports deep paging (`page`) and `flair` filtering.

ParameterAllowed / rangeDescription
subredditrequiredSubreddit name (without 'r/').
sort = hotoptionalhot · new · top · rising · controversialHow posts are ranked.
time = dayoptionalhour · day · week · month · year · allTime window — applies ONLY when sort = top or controversial.
limit = 10optional1–100How many posts to return (1–100).
flairoptionalFilter to one post flair, e.g. 'Discussion' (case-insensitive, live source only).
source = autooptionalauto · live · arctic · pullpushWhich Reddit data source to use — 'auto' picks the best source automatically.
page = 1optional1–20Deep paging: page 2 returns the NEXT batch after page 1 (server chains cursors for you, 1–20). Live source only — archive sources page via after_utc/before_utc.
cursoroptionalNext page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
Try in playground →
post/reddit/v1/post_comments1 credit

Threaded comments for a post. Returns author/body/score per comment.

ParameterAllowed / rangeDescription
post_idrequiredPost ID or full Reddit URL.
sort = topoptionaltop · new · controversial · old · qaComment ordering.
limit = 50optional1–500How many comments (1–500).
depth = 10optional1–50Comment-tree depth (1–50).
source = autooptionalauto · live · arctic · pullpushWhich Reddit data source to use — 'auto' picks the best source automatically.
Try in playground →
post/reddit/v1/user1 credit

User profile or content. kind=about returns karma/profile; submitted/comments list items (with deep paging).

ParameterAllowed / rangeDescription
usernamerequiredReddit username (without 'u/').
kind = aboutoptionalabout · submitted · commentsWhat to return.
limit = 25optional1–100How many items (for submitted/comments, 1–100).
sort = newoptionalnew · top · hotOrdering (for submitted/comments).
source = autooptionalauto · live · arctic · pullpushWhich Reddit data source to use — 'auto' picks the best source automatically.
page = 1optional1–20Deep paging: page 2 returns the NEXT batch after page 1 (server chains cursors for you, 1–20). Live source only — archive sources page via after_utc/before_utc.
cursoroptionalNext page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
Try in playground →
post/reddit/v1/subreddit_about1 credit

Subreddit metadata: subscribers, description, created date, etc.

ParameterAllowed / rangeDescription
subredditrequiredSubreddit name (without 'r/').
source = autooptionalauto · live · arctic · pullpushWhich Reddit data source to use — 'auto' picks the best source automatically.
Try in playground →
post/reddit/v1/communities1 credit

Search subreddits by name/keyword — find communities matching a term, with each one's subscribers, title, description and over-18 flag.

ParameterAllowed / rangeDescription
qrequiredName or keyword to search subreddits for.
limit = 25optional1–100Max communities to return (1–100).
Try in playground →
post/reddit/v1/load_more_comments3 credits

Expand the collapsed 'more comments' nodes from a post_comments call — pass that response's more_ids to reveal the rest of the thread (build the FULL comment tree).

ParameterAllowed / rangeDescription
post_idrequiredThe post these comments belong to (ID or Reddit URL).
more_idsrequiredComma-separated comment IDs from a post_comments response's more_ids list (or comments[].more_ids).
limit = 100optional1–100Max collapsed IDs to expand per call (1–100; Reddit caps ~100).
sort = topoptionaltop · new · controversial · old · qaComment ordering.
source = autooptionalauto · live · arctic · pullpushWhich Reddit data source to use — 'auto' picks the best source automatically.
Try in playground →
post/reddit/v1/subreddit_extras3 credits

Public subreddit extras: the community's rules and its wiki page index/content. (Moderator list is mod-only on Reddit and is not available logged-out.)

ParameterAllowed / rangeDescription
subredditrequiredSubreddit name (without 'r/').
include = rules,wikioptionalWhich extras to return: 'rules', 'wiki', or both (comma-separated).
wiki_pageoptionalFetch ONE wiki page's full content (e.g. 'index', 'faq'). Omit to list available page names.
source = autooptionalauto · live · arctic · pullpushWhich Reddit data source to use — 'auto' picks the best source automatically.
Try in playground →