Reddit Post Details Scraper — Full Record by URL or id
Pricing
$1.50 / 1,000 post details
Reddit Post Details Scraper — Full Record by URL or id
Records of Reddit posts from their addresses, ids or t3_ names: title, text, link, kind, score, upvote ratio, comment count, exact time, flair, image, gallery and video, score and comments per hour, the subreddit's size; author karma on request. Up to 10,000 links a run. No login.
Pricing
$1.50 / 1,000 post details
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Reddit Post Details Scraper — Full Record by URL or id 🚀
foXLabs Reddit series: Search · Subreddit Posts · Post Comments · User
🎉 The records of Reddit posts you already have the addresses or ids of, as Reddit shows them to a signed-out visitor: title, text, link, kind, score, upvote ratio, comment count, exact time, flair, media, score and comments per hour, the subreddit's size — and the author's karma and account age when you ask for it. Refresh the numbers of posts you found earlier, check which still exist, and get the full record of a list of links. No login, no cookies of yours, no CAPTCHA solving.
Always null since 16 October 2026 — Reddit closed the JSON API this Actor used to read as a signed-out
visitor, and the pages it renders instead do not carry these: editedAt, spoiler, locked, archived,
originalContent, removedBy, distinguished, crosspostOf, crosspostCount, poll (a poll's kind is still
poll, its votes are not shown), thumbnailUrl, authorPremium. nsfw and stickied arrive on media posts
only. Everything else above is measured filled — see the Changelog.
🔍 What is the Reddit Post Details Scraper — and when should you use it?
Give this Actor a list of Reddit post URLs, t3_ names or ids and it returns their records, enriched with velocity and the subreddit's size (and the author's karma when includeAuthorInfo is on). Each post is read from its own page, a few at a time.
Use it when you need: to refresh the score/comments of posts you collected earlier; to check which posts still exist; or to hydrate a list of post links into full rows.
Use something else when: you're discovering posts by keyword → Search; by subreddit → Subreddit Posts; you want a post's comments → Post Comments.
🤖 Use with AI agents
Already on the Apify MCP server? Ask for this Actor by name: foxlabs/reddit-post-details-scraper. An agent can discover it, run it and read the dataset over MCP.
Real-time Standby API. The same code answers HTTP requests on demand — GET /posts?ids=t3_1x2jj5d,1x2j7z3 or GET /posts?url=https://www.reddit.com/r/Python/comments/1x2j7z3/. Parameters: ids (up to 100), url, authors (0/1), subreddits (0/1); billed with the same post-details event.
Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want Reddit post records by URL using the Apify Actor`foxlabs/reddit-post-details-scraper`.Input: `postUrls` is a list of post URLs, t3_ names or ids (up to 10,000), 100 fetched per request.Each row has title, text, score, upvoteRatio, commentCount, createdAt, scorePerHour and authorInfo.Start with:{ "postUrls": ["https://www.reddit.com/r/Python/comments/1x2j7z3/"] }Ask me for the posts to hydrate, run the Actor, then summarise them as a table.
The machine-readable API, MCP config and OpenAPI definition live at apify.com/foxlabs/reddit-post-details-scraper.md.
📋 Overview
Everything you need to turn a list of Reddit post links into clean, structured data — records with velocity, the subreddit's size and, on request, the author's karma — in one Actor, with no login, cookies or CAPTCHA solving.
Why teams pick this Actor:
- ✅ Any number of links — up to 10,000 lines a run; each post is read from its own page (six at a time), so a long list takes longer than it did on Reddit's old API.
- 🔄 Refresh & existence check — re-pull scores/comments, and see which posts were removed or deleted.
- ⚡ Velocity, the subreddit's size, karma on request — score/comments per hour on every row, the subscriber count from the post's own page, the author's karma with
includeAuthorInfo. - 🎯 Honest state — a removed post keeps its record with
removedBy; a deleted one is a free status row. - 💰 Pay only for results — one
post-detailsevent per row; status rows free. - 🤖 Agent-ready — MCP + a real-time Standby API.
✨ Features
- 🔍 Any post address — URL,
t3_name or id;old.reddit.com,redd.it, profile posts accepted. - 📄 Full record — the same rich fields as the Subreddit Posts Scraper (title, text, media, flags, crosspost origin…).
- 👤 Author karma + subreddit record —
includeAuthorInfo(one profile-page read per author, off unless asked) /includeSubredditInfo(free: it rides on the post's own page). - 🧾 What Reddit no longer shows a signed-out visitor — the edit time, the spoiler/locked/archived flags, the removal reason, a poll's votes and a crosspost's origin are
null; see Fields. - 📦 Clean export — deduplicated camelCase rows, ready for CSV/Excel/JSON.
🎬 Quick Start
curl -X POST "https://api.apify.com/v2/acts/foxlabs~reddit-post-details-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"postUrls": ["https://www.reddit.com/r/Python/comments/1x2j7z3/", "t3_1x2jj5d"]}'
🚀 Getting Started (3 steps)
- Paste your posts — one per line: URL,
t3_name or id (up to 10,000). - Pick enrichment — keep
includeAuthorInfoon; addincludeSubredditInfoif you want. - Run and export — get a clean dataset as JSON, CSV or Excel.
📥 Input
| Field | Meaning |
|---|---|
postUrls | one per line: a post URL, t3_ name or id (up to 10,000). Share links (…/s/…) are not accepted. |
maxPosts | rows in the whole run (default 100,000). |
includeAuthorInfo | the author's karma and cake day — one profile-page read per author, so the run takes longer (default off). |
includeSubredditInfo | each distinct subreddit's record (default off). |
proxyConfiguration | nothing to change for normal use. |
{ "postUrls": ["https://www.reddit.com/r/Python/comments/1x2j7z3/", "t3_1x2jj5d", "1x27tvo"] }
📤 Output
One row per post, with the Subreddit Posts Scraper fields: ids and address, title, text, link, domain, kind, author and flair, score, upvoteRatio, commentCount, awardCount, crosspostCount, createdAt, editedAt, hoursSincePost, scorePerHour, commentsPerHour, flags, media, subredditSubscribers — plus authorInfo, subredditInfo, input (the line the row answers) and position.
A line Reddit has no post for — deleted or never existed — gets a free status row; so does a line that is not a post or repeats one. A run never ends empty without a word.
💼 Use cases
1. Refresh a saved list — re-pull the current score/comments of posts you collected before. Input: your post URLs. Output: fresh records. Use: keep a dashboard up to date.
2. Existence / removal audit — see which posts still exist and which were removed.
Input: the links. Output: records + removedBy, or status rows for deleted. Use: clean a dataset.
3. Hydrate links from anywhere — turn a column of Reddit URLs into full rows. Input: the URLs. Output: full post records. Use: enrich a spreadsheet or CRM.
🔗 Integration
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('foxlabs/reddit-post-details-scraper').call({postUrls: ['https://www.reddit.com/r/Python/comments/1x2j7z3/'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('foxlabs/reddit-post-details-scraper').call(run_input={'postUrls': ['https://www.reddit.com/r/Python/comments/1x2j7z3/']})for item in client.dataset(run.default_dataset_id).iterate_items():print(item)
Written for apify-client 3 for Python, where call() returns a run object; with version 1 or 2 it returns a dict — write run['defaultDatasetId'] there.
Automation (n8n / Zapier / Make): schedule → HTTP request to the Actor API with your postUrls → handle the JSON dataset → push to a sheet, CRM or dashboard.
📊 Pricing
Pay per event, one event per delivered row: post-details — whatever it carries (the author's and subreddit's records ride along free). Status rows are free; a run Reddit doesn't answer ends FAILED and charges nothing; no start fee. View current pricing.
❓ FAQ
Do I need a Reddit account, login or API key? No. It reads Reddit as a signed-out visitor via a guest token — no account, no cookies, no CAPTCHA solving.
How many posts per request? 100. A list of 10,000 is about 100 requests.
What happens to a removed or deleted post? A removed post keeps its record with removedBy set; a deleted one (or a nonexistent id) gets a free status row.
Are share links accepted? No (…/s/…). Use the full post URL, t3_ name or id.
Can I export to CSV / Excel / JSON? Yes — directly from the Apify dataset.
🐛 Troubleshooting
- A line returns a status row — the post was deleted/never existed, isn't a post, or repeats another line (free).
- Empty text on a post — it was removed by a moderator (
removedByis set); the rest of the record is still there. subredditInfo.activeUsersnull — Reddit doesn't give that to a signed-out visitor.- Scores look slightly off — Reddit fuzzes scores by design.
How it reads Reddit: opens a listing as a signed-out visitor, takes the guest token, and calls Reddit's JSON API for posts by id, 100 at a time. Residential-only token (measured 7/7 residential, 0/8 datacenter) → Apify Proxy residential by default; four addresses rotate.
⚠️ Trademark
Independent, third-party tool. Reddit is a trademark of Reddit, Inc.; this Actor is not affiliated with, endorsed by or connected to Reddit. The mark is used here for identification only.
⚖️ Is it legal to scrape this data?
It reads only what Reddit shows anyone who is not signed in. Rows carry user names (public pseudonyms) and publicly posted text; you are responsible for using them lawfully (GDPR, CCPA, Reddit's User Agreement). Nothing is stored outside your own Apify datasets. See Apify's blog post on the legality of web scraping.
🤝 Support & contact
- 🌐 Website: data.foxlabs.com.tr
- 📧 Email: info@foxlabs.com.tr
- 🐛 Issues: open a ticket in the Actor's Issues tab — the run's
SOURCE_REPORTrecord holds what was read, delivered and why the run stopped. - 🧰 More clean data actors: Fox Labs on Apify
Changelog
0.2.0 — 2026-10-17
Reddit closed its JSON API to signed-out visitors on 16 October 2026 (HTTP 403 for a guest token, from any
address), so this Actor now reads each post from the page Reddit's own web client renders. Field names, the dataset
shape, the post-details event and its price are unchanged. What changed: a post is one page read instead of a
hundred posts a request, so a long list takes longer; editedAt, spoiler, locked, archived,
originalContent, removedBy, distinguished, crosspostOf, crosspostCount, thumbnailUrl, authorPremium
and a poll's votes are null, and nsfw/stickied arrive on media posts only; includeAuthorInfo is off by
default because the karma is now one profile-page read per author; includeSubredditInfo costs nothing — the
subscriber count comes off the post's own page. A page that comes back without the post on it is reported as "not
shown to this run", is retryable and charges nothing — it is never reported as a deleted post.
0.1.0 — 2026-10-10
- First release: post records by address, name or id, 100 a request, with the family's full fields, velocity, author karma and optional subreddit records; free status rows for lines with no post; Standby API prepared.