The fastest way to scrape Reddit at scale. Our Reddit API returns structured JSON for posts, full comment trees, subreddit metadata, and user profiles — no Reddit API key required.
No credit card required · PAYG credits never expire
// Search Reddit for AI posts, top of the week
import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
const results = awaitclient.reddit.search.posts({
q: 'artificial intelligence',
sort: 'top',
t: 'week',
limit: 25
}){
"posts": [{
"id": "1a2b3c4",
"title": "GPT-5 launches with multimodal reasoning",
"author": "techreporter42",
"subreddit": "r/artificial",
"score": 12847,
"num_comments": 934,
"created_utc": "2026-05-20T14:23:11Z"
}],
"pagination": { "after": "t3_1a2b3c4" }
}Structured JSON responses covering posts, comments, subreddits, and users. No HTML parsing. No Reddit API registration needed.
/v1/reddit/search/posts/v1/reddit/search/subreddits/v1/reddit/search/users/v1/reddit/domains/{domain}/posts/v1/reddit/posts/trending/v1/reddit/posts/{post_id}/v1/reddit/posts/{post_id}/comments/v1/reddit/posts/{post_id}/duplicates/v1/reddit/subreddits/{subreddit}/v1/reddit/subreddits/{subreddit}/posts/v1/reddit/subreddits/{subreddit}/rules/v1/reddit/subreddits/{subreddit}/wiki/v1/reddit/subreddits/{subreddit}/wiki/{page}/v1/reddit/subreddits/popular/v1/reddit/subreddits/new/v1/reddit/users/{username}/v1/reddit/users/{username}/posts/v1/reddit/users/{username}/comments/v1/reddit/users/{username}/moderated/v1/reddit/users/{username}/trophiesWe return the full set of content datapoints Reddit exposes — 75+ fields across posts, comments, subreddits, and users. Every field is typed native JSON — integers, booleans, floats, and ISO 8601 datetimes. No string coercion required. A representative subset is shown below.
idstringReddit post ID (base36)titlestringPost title as submitted by authorauthorstringUsername of the post authorsubredditstringSubreddit the post belongs tosubreddit_subscribersintegerSubscriber count of the host subredditscoreintegerNet upvote score (upvotes minus downvotes)upsintegerUpvote countdownsintegerDownvote countupvote_ratiofloatFraction of votes that are upvotes (0–1)num_commentsintegerTotal number of comments on the posttotal_awards_receivedintegerNumber of awards the post has receivedurlstringLink URL if link post, or permalink if text postselftextstringBody text for self posts (markdown)created_utcdatetimePost creation time (UTC, ISO 8601)editedboolean|floatFalse, or edit timestamp if the post was editedis_selfbooleanTrue for text posts, false for link postsis_videobooleanWhether the post is a native Reddit videois_nsfwbooleanNSFW flag set by author or moderatorslockedbooleanWhether comments are locked on the postarchivedbooleanWhether the post is archived (read-only)distinguishedstringDistinguished status (moderator, admin) if anylink_flair_textstringPost flair text if set by author or moderatorauthor_premiumbooleanWhether the author has Reddit PremiumthumbnailstringThumbnail image URL for the postmediaobjectEmbedded media metadata (video, oEmbed, etc.)idstringReddit comment ID (base36)authorstringUsername of the comment authorbodystringComment text (markdown)body_htmlstringRendered HTML of the comment bodyscoreintegerNet upvote score of the commentupsintegerUpvote countcontroversialityintegerReddit controversiality flag (0 or 1)total_awards_receivedintegerNumber of awards on the commentdepthintegerNesting depth within the comment treecreated_utcdatetimeComment creation time (UTC, ISO 8601)editedboolean|floatFalse, or edit timestamp if editedis_submitterbooleanWhether the commenter is the original posterdistinguishedstringModerator/admin distinguished status if anyrepliesarrayNested child comments (recursive tree)namestringSubreddit display nametitlestringSubreddit titlepublic_descriptionstringShort public-facing descriptiondescriptionstringFull sidebar description (markdown)subscribersintegerTotal subscriber countcreated_utcdatetimeSubreddit creation date (UTC, ISO 8601)subreddit_typestringpublic, private, restricted, etc.over18booleanWhether the subreddit is marked NSFWlangstringPrimary language of the subredditcommunity_iconstringCommunity icon image URLbanner_background_imagestringBanner image URLprimary_colorstringBrand primary color (hex)idstringReddit account ID (base36)namestringReddit usernamedisplay_name_prefixedstringUsername with u/ prefixlink_karmaintegerKarma accumulated from post submissionscomment_karmaintegerKarma accumulated from commentsawardee_karmaintegerKarma earned from awards receivedawarder_karmaintegerKarma earned from awards giventotal_karmaintegerCombined karma across all sourcescreated_utcdatetimeAccount creation date (UTC, ISO 8601)is_goldbooleanWhether the account has Reddit Premium / Goldis_employeebooleanWhether the account is a Reddit employeeis_modbooleanWhether the account moderates any subredditverifiedbooleanAccount verified statushas_verified_emailbooleanWhether the account has a verified emailicon_imgstringProfile avatar image URLNo Reddit app registration. No OAuth flow. No rate limit management.
Call any Reddit endpoint with your ScrapeBadger API key and parameters — search query, subreddit name, post ID, or username. REST or SDK.
ScrapeBadger manages Reddit sessions, resolves collapsed comment threads, and handles rate limiting automatically. No Reddit developer account needed.
Receive typed JSON with native integers, booleans, and ISO 8601 timestamps. No HTML to parse, no brittle selectors, no "load more" pagination to resolve manually.
Reddit is the internet's largest collection of unfiltered human opinions. Our API makes that data accessible for research, monitoring, and AI applications.
Track mentions of your brand, product, or competitors across all of Reddit. Monitor sentiment trends, identify key subreddits where your audience is active, and catch emerging issues before they escalate.
Extract authentic consumer opinions, feature requests, and pain points directly from Reddit discussions. Reddit data gives unfiltered voice-of-customer insights unavailable in surveys or review sites.
Identify rising topics and viral posts early using score velocity and comment count signals. Monitor r/trending, domain posts, and hot listings across topic subreddits in real time.
Map subreddit growth, moderator networks, and cross-community migration patterns. Understand community dynamics, identify influential users, and discover niche communities around specific topics.
Collect rich structured text data — long-form posts, comment threads, technical discussions — for training LLMs, sentiment classifiers, topic models, and question-answering systems.
Monitor competitor mentions, product feedback threads, and AMA discussions. Track which subreddits discuss competing products and what pain points users highlight versus your offering.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| Endpoint | Credits / request | PAYG | Subscription |
|---|---|---|---|
Search Posts /v1/reddit/search/posts | 2 credits | — | — |
Search Subreddits /v1/reddit/search/subreddits | 2 credits | — | — |
Search Users /v1/reddit/search/users | 2 credits | — | — |
Domain Posts /v1/reddit/domains/{domain}/posts | 2 credits | — | — |
Trending Posts /v1/reddit/posts/trending | 1 credit | — | — |
Get Post /v1/reddit/posts/{post_id} | 2 credits | — | — |
Post Comments /v1/reddit/posts/{post_id}/comments | 3 credits | — | — |
Post Duplicates /v1/reddit/posts/{post_id}/duplicates | 3 credits | — | — |
Get Subreddit /v1/reddit/subreddits/{subreddit} | 2 credits | — | — |
Subreddit Posts /v1/reddit/subreddits/{subreddit}/posts | 2 credits | — | — |
Subreddit Rules /v1/reddit/subreddits/{subreddit}/rules | 1 credit | — | — |
Wiki Pages /v1/reddit/subreddits/{subreddit}/wiki | 1 credit | — | — |
Wiki Page Content /v1/reddit/subreddits/{subreddit}/wiki/{page} | 3 credits | — | — |
Popular Subreddits /v1/reddit/subreddits/popular | 1 credit | — | — |
New Subreddits /v1/reddit/subreddits/new | 1 credit | — | — |
Get User /v1/reddit/users/{username} | 2 credits | — | — |
User Posts /v1/reddit/users/{username}/posts | 2 credits | — | — |
User Comments /v1/reddit/users/{username}/comments | 2 credits | — | — |
User Moderated /v1/reddit/users/{username}/moderated | 3 credits | — | — |
User Trophies /v1/reddit/users/{username}/trophies | 1 credit | — | — |
See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.
ScrapeBadger's Reddit API handles the hard parts of Reddit data extraction — session management, comment tree resolution, and rate limiting — so your pipeline keeps running.
You do not need to register a Reddit app or manage OAuth tokens. ScrapeBadger handles all Reddit authentication transparently — your only credential is your ScrapeBadger API key.
Reddit collapses deep comment threads behind "load more" barriers. Our Post Comments endpoint resolves all collapsed threads and returns the complete nested comment tree in a single response.
Responses reflect current Reddit state — live vote counts, current comment totals, active flair, and up-to-date user karma. No cache lag from stale snapshots.
The Post Duplicates endpoint finds all cross-posts and reposts of the same URL across Reddit, including original source subreddits and engagement metrics per submission.
All responses return typed, normalized JSON. Scores, karma, timestamps, and booleans are native types — no string coercion, no HTML to parse, no brittle CSS selectors.
Official SDKs in 12 languages. In Python/Node call reddit.search.posts(), reddit.posts.comments(), or reddit.users.profile() directly — same surface in Go, Rust, PHP, C#, Java, Kotlin, Ruby, Swift, Dart and C++, or use the REST API.
Get started in minutes with Node.js, Python, or plain HTTP requests.
The scrapebadger Node.js library wraps the Reddit API with typed methods. Install with npm install scrapebadger, then start extracting Reddit data in a few lines of code.
import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Search top posts about AI this week
const posts = await client.reddit.search.posts({
q: 'artificial intelligence',
sort: 'top',
t: 'week',
limit: 10
})
// Fetch full comment tree for first post
const comments = await client.reddit.posts.comments({
postId: posts.posts[0].id
})
console.log(`${comments.tree.length} top-level comments`)from scrapebadger import ScrapeBadger
client = ScrapeBadger("sb_live_...")
# Get top posts from r/MachineLearning
posts = client.reddit.subreddits.posts(
subreddit="MachineLearning",
sort="top",
t="month",
limit=25
)
# Print titles and scores
for post in posts.posts:
print(f"{post.score:>6} {post.title[:60]}")Common questions about scraping Reddit with the API — Python, Node.js, or REST.
No. You do not need to register a Reddit application, obtain OAuth tokens, or manage Reddit rate limits. ScrapeBadger handles all Reddit authentication and session management on your behalf. Your only credential is your ScrapeBadger API key, which you include as a Bearer token in your requests.
Responses reflect near-real-time Reddit state. Vote scores, comment counts, flair, and user karma are fetched live on each request with no intermediate caching. Post creation timestamps and comment timestamps are the original Reddit UTC values in ISO 8601 format.
Yes. Every post object includes an is_nsfw boolean field that reflects the NSFW flag set by authors and moderators. You can filter NSFW content client-side using this field, or pass an nsfw=false query parameter on search and subreddit listing endpoints to exclude NSFW results at the API level.
The Search Posts endpoint supports the full Reddit Lucene-style search syntax including field operators (title:keyword, author:username, subreddit:name), boolean operators (AND, OR, NOT), and phrase matching with quotes. The sort parameter accepts relevance, hot, top, new, and comments. The t parameter sets the time range: hour, day, week, month, year, or all.
Reddit natively collapses deep threads behind paginated "load more" stubs. The Post Comments endpoint automatically resolves all collapsed comment stubs and returns the full nested comment tree in a single API call. Comments are returned as a recursive tree structure with reply arrays, preserving Reddit's threading hierarchy. Deep threads with hundreds of nested replies are fully resolved.
Rate limits depend on your ScrapeBadger subscription plan. All plans support burst requests. Unlike the official Reddit API (which caps at 100 requests per minute and requires OAuth), ScrapeBadger has no per-account rate limits from Reddit — our infrastructure distributes requests across multiple sessions to avoid throttling.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Reddit endpoints — search, posts, comments, subreddits, users — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · Global Reddit coverage