Skip to main content

Reddit Scraper API

Search posts, fetch comment trees, explore subreddits, and retrieve user profiles from Reddit. The API handles TLS fingerprinting, proxy rotation, and anti-bot bypass automatically — no Reddit API key or OAuth setup needed.

Key Features

22 Endpoints

Search, posts, comments, subreddits, users, wiki, trending, and cross-post detection.

No Reddit API Key

We handle all authentication and rate limiting. Just use your ScrapeBadger API key.

Comment Trees

Full nested comment threads with configurable depth control (0-10 levels).

Search Syntax

Full Reddit search operators: title:, author:, subreddit:, flair:, AND/OR/NOT.

Anti-Bot Bypass

Automatic TLS fingerprint rotation and residential proxy routing.

SDK Support

First-class support via the ScrapeBadger Node.js and Python SDKs.

Quick Start

import ScrapeBadger from 'scrapebadger';

const client = new ScrapeBadger({ apiKey: 'YOUR_API_KEY' });

// Search posts
const results = await client.reddit.search.posts({
  q: 'artificial intelligence',
  sort: 'top',
  t: 'week',
  limit: 10,
});

console.log(results.posts);

Endpoints

EndpointCreditsDescription
GET /v1/reddit/search/posts2Search posts globally or within a subreddit
GET /v1/reddit/search/subreddits2Search for subreddits by keyword
GET /v1/reddit/search/users2Search for Reddit users
GET /v1/reddit/domains/{domain}/posts2Get posts linking to a specific domain

Posts

EndpointCreditsDescription
GET /v1/reddit/posts/trending1Trending posts from Reddit’s front page
GET /v1/reddit/posts/{post_id}2Get post details by ID
GET /v1/reddit/posts/{post_id}/comments3Comment tree with depth control
GET /v1/reddit/posts/{post_id}/duplicates3Cross-posts and duplicates

Subreddits

EndpointCreditsDescription
GET /v1/reddit/subreddits/{subreddit}2Subreddit metadata
GET /v1/reddit/subreddits/{subreddit}/posts2Subreddit posts (hot/new/top/rising)
GET /v1/reddit/subreddits/{subreddit}/rules1Subreddit rules
GET /v1/reddit/subreddits/{subreddit}/wiki1List wiki pages
GET /v1/reddit/subreddits/{subreddit}/wiki/{page}3Wiki page content
GET /v1/reddit/subreddits/popular1Popular subreddits
GET /v1/reddit/subreddits/new1New subreddits

Users

EndpointCreditsDescription
GET /v1/reddit/users/{username}2User profile and karma
GET /v1/reddit/users/{username}/posts2User’s submitted posts
GET /v1/reddit/users/{username}/comments2User’s comment history
GET /v1/reddit/users/{username}/moderated3Subreddits user moderates
GET /v1/reddit/users/{username}/trophies1User’s trophy case

Pagination

All listing endpoints use cursor-based pagination with after and before parameters.
{
  "posts": [...],
  "pagination": {
    "after": "t3_abc123",
    "before": null,
    "count": 25,
    "limit": 25
  }
}
Pass the after value as a query parameter to get the next page of results. The maximum limit per request is 100.

Search Syntax

The search endpoints support Reddit’s full query syntax:
OperatorExampleDescription
title:title:pythonSearch in post titles
author:author:spezFilter by author
subreddit:subreddit:programmingFilter by subreddit
flair:flair:DiscussionFilter by flair
site:site:github.comFilter by link domain
nsfw:yesnsfw:yesInclude NSFW posts
self:yesself:yesOnly text posts
AND / OR / NOTpython AND tutorialBoolean operators

Response Fields

Post Object

FieldTypeDescription
idstringReddit post ID (e.g. 1obwkbb)
fullnamestringReddit fullname with t3_ prefix
titlestringPost title
selftextstringPlain-text body (empty for link posts)
selftext_htmlstring | nullHTML-rendered body
urlstringFinal URL (link target or self-post URL)
permalinkstringFull Reddit permalink
domainstringLink domain (e.g. github.com, self.python)
authorstringAuthor username
author_fullnamestring | nullAuthor fullname (t2_...)
author_flair_textstring | nullAuthor’s flair on this subreddit
subredditstringSubreddit name (no prefix)
subreddit_name_prefixedstringSubreddit with prefix (e.g. r/python)
subreddit_idstringSubreddit fullname (t5_...)
subreddit_subscribersnumberSubscriber count at time of fetch
scorenumberNet score (ups − downs)
upsnumberUpvote count
upvote_rationumberRatio of upvotes (0.0–1.0)
num_commentsnumberTotal comment count
num_crosspostsnumberNumber of cross-posts
created_utcnumberUnix timestamp
created_atstringISO 8601 UTC timestamp (e.g. 2025-10-20T22:56:45Z)
editednumber | booleanFalse or edit Unix timestamp
edited_atstring | nullISO 8601 UTC if edited
is_selfbooleanTrue for text posts
is_videobooleanTrue for native Reddit video
is_gallerybooleanTrue for image galleries
is_nsfwbooleanNSFW flag
is_spoilerbooleanSpoiler flag
is_lockedbooleanLocked from new comments
is_stickiedbooleanPinned to top of subreddit
is_archivedbooleanOlder than 6 months (no new comments)
is_original_contentbooleanOC tag
is_robot_indexablebooleanWhether search engines can index
is_crosspostablebooleanAllowed to be cross-posted
send_repliesbooleanAuthor receives inbox replies
link_flair_textstring | nullPost flair text
link_flair_background_colorstring | nullFlair background hex
link_flair_text_colorstring | nulllight or dark
link_flair_template_idstring | nullReddit’s flair template UUID
distinguishedstring | nullmoderator, admin, or null
thumbnailstring | nullThumbnail URL
preview_imagesarrayPreview images with url, width, height
mediaobject | nullEmbedded media (video, oEmbed)
gallery_dataarray | nullGallery item metadata
total_awardsnumberTotal awards received
awardsarrayAward objects (id, name, count, icon_url)
gildednumberNumber of times gilded
removed_by_categorystring | nullRemoval reason category

Comment Object

FieldTypeDescription
id, fullnamestringComment ID and t1_* fullname
body, body_htmlstringComment text (plain & rendered)
author, author_fullnamestringAuthor info
subreddit, subreddit_name_prefixedstringSubreddit context
post_id, post_titlestringParent post
parent_idstringParent thing fullname
score, ups, controversialitynumberEngagement
depthnumberNesting level (0 = top-level)
created_utc, created_atnumber, stringUnix + ISO 8601
edited, edited_atnumber/bool, stringEdit timestamps
is_submitterbooleanTrue if author is post author (OP)
is_stickied, is_lockedbooleanModeration state
distinguishedstring | nullMod/admin badge
repliesarrayNested comments (recursive)

Subreddit Object

FieldTypeDescription
id, fullname, namestringIdentifiers
display_name_prefixedstringE.g. r/python
title, header_titlestringDisplay names
description, description_htmlstringLong description (sidebar)
public_description, public_description_htmlstringShort description
subscribers, active_usersnumberMember counts
created_utc, created_atnumber, stringWhen created
typestringpublic, private, restricted
submission_typestringany, link, self
advertiser_categorystring | nullAd category
is_nsfw, is_quarantinedbooleanContent flags
icon_url, banner_url, header_urlstringImages
primary_color, key_color, banner_background_colorstringTheme
wiki_enabled, allow_images, allow_videos, allow_galleries, allow_pollsbooleanContent permissions
spoilers_enabled, emojis_enabled, free_form_reportsbooleanFeatures
comment_score_hide_minsnumberMinutes before scores show
should_archive_postsbooleanAuto-archive after 6mo
allowed_media_in_commentsarrayE.g. ["video"]

User Object

FieldTypeDescription
id, fullname, namestringIdentifiers
display_name_prefixedstringE.g. u/spez
description, profile_titlestringBio
icon_url, snoovatar_url, banner_urlstringImages
profile_urlstringProfile page URL
link_karma, comment_karma, awardee_karma, awarder_karma, total_karmanumberKarma breakdown
created_utc, created_atnumber, stringAccount age
verified, has_verified_email, is_employee, is_mod, is_gold, is_suspendedbooleanAccount flags
accepts_followers, has_subscribedbooleanSettings
is_nsfwbooleanNSFW profile

Rate Limits

Reddit Scraper API requests are subject to the same rate limits as all ScrapeBadger endpoints. See Rate Limits for details.