Reddit Bulk Scrape 10000 IDs V1 — Posts, Comments, Subs, Users
Pricing
from $1.99 / 1,000 results
Reddit Bulk Scrape 10000 IDs V1 — Posts, Comments, Subs, Users
Bulk-hydrate up to 10,000 Reddit posts, comments, subreddits, or users per run. Paste IDs, names, or URLs — get one full record per item. No Reddit account, OAuth, or proxy required. Mix formats freely; duplicates auto-removed. $1.99 per 1,000 results.
Pricing
from $1.99 / 1,000 results
Rating
5.0
(6)
Developer
Red Crawler
Maintained by CommunityActor stats
2
Bookmarked
11
Total users
4
Monthly active users
16 days ago
Last modified
Categories
Share
Reddit Bulk Scrape
Hydrate up to 10000 Reddit IDs, names, or URLs in a single run. Pick an endpoint — Posts, Comments, Subreddits, or Users — paste your list, and get one fully populated dataset record per item. No Reddit account or proxy required.
A single-input actor: choose the endpoint, paste the list, hit Start.
Endpoints at a glance
| # | Endpoint | Input | Cap per run | Best for |
|---|---|---|---|---|
| 1 | Bulk Posts | post IDs / URLs | 10000 | refreshing stored post lists, hydrating IDs / URLs |
| 2 | Bulk Comments | comment IDs / URLs | 10000 | comment-list hydration, archival pipelines |
| 3 | Bulk Subreddits | subreddit names / IDs / URLs | 10000 | community-list enrichment, niche directories |
| 4 | Bulk Users | usernames / IDs / URLs | 10000 | CRM enrichment, account-quality scoring |
Inputs accept the most-permissive format Reddit uses for each entity:
| Entity | Accepted formats |
|---|---|
| post | full URL · prefixed t3_1s4a4j6 · stripped ID 1s4a4j6 · short URL https://reddit.com/comments/1s4a4j6 |
| comment | full URL · prefixed t1_lwbnv0t · stripped ID lwbnv0t |
| subreddit | name AskReddit · prefixed r/AskReddit · full ID t5_2qh1i · full URL https://reddit.com/r/AskReddit |
| user | username spez · prefixed u/spez · full ID t2_1w72 · profile URL https://reddit.com/user/spez |
Separate inputs with commas or newlines — both work. Mix prefixed, stripped, names, and URLs freely; duplicates are removed automatically.
What you can fetch
1. Bulk Posts
Hydrate a list of Reddit posts.
Inputs
| Field | Notes |
|---|---|
bulk_posts_ids | Comma- or newline-separated post inputs. Up to 10000. |
Accepted formats — full IDs (t3_1s4a4j6), stripped IDs (1s4a4j6), full URLs (https://www.reddit.com/r/Wordpress/comments/1s4a4j6/), and short URLs (https://reddit.com/comments/1s4a4j6). Mix freely.
Returns per post — Reddit ID, fullname, title, body / selftext, author, author fullname, subreddit (name + prefixed + ID), score, ups / downs, upvote ratio, comment count, crosspost count, created + edited timestamps, permalink, external URL, domain, post-type flags (is_self, is_video, over_18, spoiler, locked, stickied, pinned, archived), distinguished status, removal category, link & author flair, thumbnail, media (images / video / gallery), awards, polls, crosspost source.
Use it when — refreshing a stored dataset (yesterday's IDs → today's score / comment counts / edits / deletions), turning a list of links into structured records, hydrating IDs from your own search results.
Note: Posts are always SFW in this actor. NSFW (over-18) posts are not returned. There is no toggle. The SFW lock applies to posts only — comments, subreddits, and users are returned as-is regardless of any age-gating on the parent post or community.
Example I/O
Input — 3 posts in mixed formats (stripped ID, stripped ID, full URL):
{"endpoint": "bulk_posts","bulk_posts_ids": "1jq3e8u\n1s4a4j6\nhttps://www.reddit.com/r/Wordpress/comments/1szbpra/"}
Output — one dataset row per resolved post. Sample row (t3_1s4a4j6, abridged):
{"endpoint": "bulk_posts","id": "1s4a4j6","name": "t3_1s4a4j6","title": "Serious question: Which group smokes more crack? The new features team at Microsoft OR the wordpress team that created the block editor?","author": "cwatty55","author_fullname": "t2_1h4p4pztrx","subreddit": "Wordpress","subreddit_name_prefixed": "r/Wordpress","subreddit_id": "t5_2qhjq","score": 51,"ups": 51,"upvote_ratio": 0.73,"num_comments": 55,"num_crossposts": 0,"created_utc": 1774537763.0,"permalink": "https://reddit.com/r/Wordpress/comments/1s4a4j6/serious_question_which_group_smokes_more_crack/","url": "https://www.reddit.com/r/Wordpress/comments/1s4a4j6/serious_question_which_group_smokes_more_crack/","domain": "self.Wordpress","is_self": true,"is_video": false,"over_18": false,"spoiler": false,"locked": false,"stickied": false,"archived": false,"link_flair_text": null,"selftext": "I'll go first … the WP team."}
3 inputs → 3 rows in the dataset (one shown). Each row also carries ~80 other Reddit-native fields: full timestamps, all flair details, media (preview / images / video / gallery URLs), awards, removal flags, subreddit traffic counters, etc.
2. Bulk Comments
Hydrate a list of Reddit comments.
Inputs
| Field | Notes |
|---|---|
bulk_comments_ids | Comma- or newline-separated comment inputs. Up to 10000. |
Accepted formats — full IDs (t1_lwbnv0t), stripped IDs (lwbnv0t), and full URLs (https://www.reddit.com/r/Wordpress/comments/1s4a4j6/comment/lwbnv0t/). Mix freely.
Returns per comment — ID, fullname, parent post fullname, parent comment ID, author + author fullname, body (markdown + HTML), score / ups / downs / controversiality, created + edited timestamps, permalink, OP flag (is_submitter), depth, stickied / distinguished / locked / archived / saved / gilded flags, score-hidden flag, subreddit, awards.
Use it when — hydrating comment IDs from your own pipelines, comment archives, sentiment analysis on a known set of comments.
Example I/O
Input — 2 comments by stripped ID:
{"endpoint": "bulk_comments","bulk_comments_ids": "c60n1vq\ncszv2lg"}
Output — one dataset row per resolved comment. Sample row (t1_c60n1vq, abridged):
{"endpoint": "bulk_comments","id": "c60n1vq","name": "t1_c60n1vq","parent_id": "t1_c60lnxl","link_id": "t3_z18if","author": "dantheflyingman","author_fullname": "t2_3tnl6","body": "2.5m euro net / year","score": 2,"ups": 2,"controversiality": 0,"created_utc": 1346271998.0,"edited": false,"permalink": "https://reddit.com/r/soccer/comments/z18if/official_qpr_sign_julio_cesar/c60n1vq/","is_submitter": false,"depth": 1,"stickied": false,"distinguished": null,"score_hidden": false,"locked": false,"archived": true,"subreddit": "soccer","subreddit_name_prefixed": "r/soccer","subreddit_id": "t5_2qi58","total_awards_received": 0}
2 inputs → 2 rows. Each row also carries body_html, full awards array, moderator-action fields (when authenticated), gilding counters, and the comment's flair payload.
3. Bulk Subreddits
Hydrate a list of subreddits.
Inputs
| Field | Notes |
|---|---|
bulk_subreddits_ids | Comma- or newline-separated subreddit inputs. Up to 10000. |
Accepted formats — subreddit names (AskReddit), prefixed names (r/AskReddit), full IDs (t5_2qh1i), and full URLs (https://reddit.com/r/AskReddit). Mix freely.
Returns per subreddit — ID, fullname, display name (raw + prefixed), title, subscriber count, active user count, public + full description, created timestamp, language, type (public / private / restricted), NSFW flag, URL, header / icon / banner images, primary + key colors, submit text, allowed submission types (videos / images / polls / galleries).
Use it when — subreddit comparison reports, community sizing, profile-page enrichment, building niche directories.
Example I/O
Input — 4 subreddits in mixed formats (name, fullname t5_, prefixed, full URL — note: AskReddit and t5_2qh1i resolve to the same community and are deduped):
{"endpoint": "bulk_subreddits","bulk_subreddits_ids": "AskReddit\nt5_2qh1i\nr/wordpress\nhttps://reddit.com/r/learnprogramming"}
Output — one dataset row per resolved subreddit. Sample row (r/Wordpress, abridged):
{"endpoint": "bulk_subreddits","id": "2qhjq","name": "t5_2qhjq","display_name": "Wordpress","display_name_prefixed": "r/Wordpress","title": "WordPress","subscribers": 303115,"public_description": "The place for news, articles and discussion regarding WordPress, the open source software. Wordpress.com-related questions should be posted to https://wordpress.com/forums/.","created_utc": 1205874670.0,"lang": "en","subreddit_type": "public","over18": false,"url": "/r/Wordpress/","icon_img": "","primary_color": "#00749a","submission_type": "any","allow_videos": false,"allow_images": true,"allow_polls": true,"allow_galleries": true}
4 inputs → 3 rows (1 duplicate removed). Each row also carries the full description, banner/header image URLs, key color, public traffic flag, moderator-only fields when authenticated, and the rest of the ~80 native subreddit fields.
4. Bulk Users
Hydrate a list of Reddit users.
Inputs
| Field | Notes |
|---|---|
bulk_users_ids | Comma- or newline-separated user inputs. Up to 10000. |
Accepted formats — usernames (spez), prefixed names (u/spez), full IDs (t2_1w72), and profile URLs (https://reddit.com/user/spez). Mix freely.
Returns per user — ID, name, total karma split into post / comment / award / awardee karma, account creation timestamp, employee / mod / Reddit-Gold / verified / verified-email flags, profile icon, snoovatar image, mini subreddit info, accept-followers flag, hide-from-robots flag.
Use it when — CRM / lead enrichment from a list of usernames, account-quality scoring, finding which accounts are still alive, batch profile lookups for influencer research.
Example I/O
Input — 4 users in mixed formats (prefixed username, prefixed username, prefixed username, full ID):
{"endpoint": "bulk_users","bulk_users_ids": "u/spez\nu/kn0thing\nu/AutoModerator\nt2_1w72"}
Output — one dataset row per resolved user. Sample row (u/kn0thing, abridged):
{"endpoint": "bulk_users","id": "1wh0","name": "kn0thing","total_karma": 354066,"link_karma": 151900,"comment_karma": 202166,"awardee_karma": 0,"awarder_karma": 0,"created_utc": 1118030400.0,"is_employee": false,"is_mod": true,"is_gold": true,"verified": true,"has_verified_email": true,"icon_img": "https://styles.redditmedia.com/t5_3jgyq/styles/profileIcon_snoo58ef3487-7301-4cca-9ad4-44378bc398d0-headshot.png","snoovatar_img": "https://i.redd.it/snoovatar/avatars/58ef3487-7301-4cca-9ad4-44378bc398d0.png","accept_followers": true,"hide_from_robots": false,"pref_show_snoovatar": true}
4 inputs → 4 rows. Each row also carries a nested subreddit block (the user's profile community: banner, icon, color, submit text), plus snoovatar size, employee/friend/verified flags, and award counters.
Tip: lookups by full Reddit ID (
t2_xxxx) return a slimmer 8-field record (id, name, created_utc, link_karma, comment_karma, profile_img, profile_color, profile_over_18) because Reddit's ID-resolution endpoint is intentionally minimal. For full profiles, prefer usernames (spez/u/spez) or profile URLs.
How to run
- Pick an endpoint in the "What to fetch" dropdown — Bulk Posts, Bulk Comments, Bulk Subreddits, or Bulk Users.
- Open the matching section and paste your IDs / names / URLs (comma- or newline-separated). Up to 10000 entries per run — duplicates are removed automatically.
- Click Start.
Default endpoint is Bulk Posts with a small prefilled list so the actor runs out of the box.
Output
Results are pushed to the actor's default dataset, one record per item. View as a table or download as JSON / CSV / Excel / XML.
| Behavior | Detail |
|---|---|
| Record granularity | One dataset row per input item that resolved. |
endpoint tag | Every row carries the endpoint field for downstream routing. |
| Column order | Most useful columns (id, title / name, score / karma, created date) placed first. |
| Unresolved IDs | Silently dropped — compare input count vs dataset row count to spot misses. |
| Mixed formats | 1s4a4j6, t3_1s4a4j6, full URL all resolve to the same item. Mix freely. |
Status & error reference
Run status (Apify-side, shown on the run page)
| Status | Apify message | Meaning | What to do |
|---|---|---|---|
| "Actor succeeded with N results in the dataset" | Run finished. Some or zero results pushed. | Open the dataset to view results. | |
| "The Actor process failed…" | Validation error or upstream Reddit fault. | Check the run log. You are NOT charged for failed runs. | |
| "The Actor timed out. You can resurrect it with a longer timeout to continue where you left off." | Run exceeded its timeout. | Re-run with a smaller list (≤10000 per run). | |
| "The Actor process was aborted. You can resurrect it to continue where you left off." | You stopped the run manually. | No charge for unpushed results. |
Common in-run conditions (visible in run log)
| Condition | Cause | Result |
|---|---|---|
| Empty result set | None of the inputs resolved (all deleted / banned / typoed). | Run SUCCEEDED, 0 records, no charge. |
| Some IDs dropped | Subset deleted / banned / not found. | Run SUCCEEDED, fewer rows than inputs. |
| NSFW posts skipped | Bulk Posts endpoint and some inputs were NSFW. | Run SUCCEEDED, NSFW posts excluded. |
Validation error: endpoint is required | Missing endpoint. | Run FAILED immediately, no charge. |
| Validation error: list too long | More than 10000 entries. | Run FAILED immediately, no charge. |
Common edge cases
- Deleted / banned items — returned with whatever metadata Reddit still exposes (often a stub with
removed_by_category). - Private subreddits — not accessible. Reddit gates them behind a logged-in account and they're skipped.
- Quarantined content — not returned. Reddit hides quarantined posts/communities from anonymous calls.
- IDs that don't resolve — silently dropped.
- Mixed formats — accepted, no normalization needed on your side.
- NSFW posts — never returned (this actor is SFW-only for posts). Comments / subreddits / users on NSFW communities are returned normally.
Why this actor is fast
- Speed — large runs scale linearly and finish in minutes, not hours. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Competing browser-based scrapers typically take 15–60 seconds per item.
- Reliability — zero browser flakiness. No headless-Chromium crashes. No JS-render timeouts. No captcha pages. No surprise mid-run failures from a browser quirk.
- Footprint — well under the 512 MB allocation, even on full 10000-item runs. Most browser-based scrapers need 1–4 GB.
Pricing
$1.99 per 1,000 results. Pay-per-result — you're only charged for records actually pushed to the dataset.
| Volume | Cost |
|---|---|
| 100 records | ~$0.20 |
| 500 records | ~$1.00 |
| 1,000 records | $1.99 |
| 1,500 records | ~$2.99 |
| 10,000 records (one full run) | ~$19.90 |
| Outcome | Charged? |
|---|---|
SUCCEEDED with results | Yes — $1.99 per 1,000 records pushed. |
SUCCEEDED with zero records | No. |
FAILED (validation / upstream) | No. |
ABORTED | Only for records already pushed before you stopped. |
See the actor's Pricing tab for the live rate — this README is the source of truth at publish time but the Pricing tab always reflects the current price.
Need a different shape of data?
- Reddit Bulk Scrape V2 — the v2 successor with richer payloads and dedicated bulk-by-ID endpoints (posts, comments, communities, profiles by ID, profiles by name)
- Reddit Scraper V2 — single & bulk reads for posts, comments, profiles, communities (15 endpoints)
- Reddit Posts — front-page feed, crosspost duplicates, pinned posts
- Reddit Users — single-user lookups with profile + trophies + posts + comments
- Reddit Subreddits — subreddit info, browse, listings, autocomplete (12 ops)
Support and feedback
Found a bug, want a feature, or hit a Reddit error code we don't translate clearly? Open an issue via the actor's Apify Console feedback link, or reach out at the RedCrawler support channel.
Reddit Bulk Scrape is part of the RedCrawler family of Reddit actors. RedCrawler is independent — not affiliated with, endorsed by, or sponsored by Reddit, Inc. Use it within Reddit's API terms.
