Reddit Posts Scraper: Full Text, Scores & Awards
Pricing
from $9.23 / 1,000 results
Reddit Posts Scraper: Full Text, Scores & Awards
Scrape Reddit posts from any subreddit, search query or post URL. Extract title, selftext, author, score, upvote ratio, comment count, awards, flair and gallery images. Export to JSON, CSV or Excel. No login or API key.
Pricing
from $9.23 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Reddit Posts Scraper: Full Text, Scores & Awards
Here is one real result, with every field the actor returns (the AI fields are populated because this run enabled the paid add-ons):
{"thumbnail": "https://external-preview.redd.it/gMGnL-EFRovFFc-JVzQxQvc7kY1o-Wlz4sGKNBO6VZk.jpeg?width=140&height=73&auto=webp&s=8337922a8a118bd1416e2b763d56e6fb3f4b205f","title": "US conducted ‘mass spying campaign’ against leftwing groups and anti-ICE protesters, records reveal","url": "https://www.theguardian.com/us-news/2026/aug/13/us-government-spied-anti-ice-protesters","id": "1vnwgay","selftext": null,"subreddit": "technology","author": "Vucea","authorFullname": "t2_64xr0i7c","authorFlairText": null,"score": 1140,"upvoteRatio": 0.98,"numComments": 49,"numCrossposts": 0,"totalAwards": 0,"linkFlairText": null,"permalink": "https://www.reddit.com/r/technology/comments/1vnwgay/us_conducted_mass_spying_campaign_against/","domain": "theguardian.com","isSelf": false,"isVideo": false,"isNsfw": false,"isSpoiler": false,"isOriginalContent": false,"isPinned": false,"isLocked": false,"isArchived": false,"edited": "2026-08-14T04:50:39+00:00","galleryImageUrls": null,"createdAt": "2026-08-14T03:49:00.000Z","observedAt": "2026-08-14T05:27:27.804Z","aiSentiment": "negative","aiSentimentScore": -0.7,"aiSummary": "Records indicate that the US engaged in a large-scale surveillance operation targeting leftist organizations and anti-ICE demonstrators.","aiTopics": ["mass spying", "leftwing groups", "anti-ICE protesters", "US government surveillance"],"aiCategory": "Politics","topComments": [{"author": "Soloact_","score": 309,"text": "Spying on people for protesting the government is some authoritarian bullshit. This is the shit people warned about and got called hysterical for."}],"error": null}
Note:
topCommentsis trimmed to 1 of the 3 real comments for readability; the live record contains all of them. The AI fields (aiSentiment,aiSummary,aiTopics,aiCategory,topComments) appear only when the matching paid add-on is enabled. All values shown are real.
The most complete Reddit posts scraper available. It returns every post field Reddit exposes, including full self text, gallery images, score, upvote ratio, awards, flair and every status flag, and offers opt-in AI add-ons for sentiment, summary, topics, category and top comments so you can go straight from raw posts to analysis.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads posts from the subreddit feeds you name, a search query across Reddit, or exact post URLs you paste, sorts them the way you choose, and writes one normalized record per post to the run's dataset. When withDetails is on (the default), each post page is opened to capture the full self text, gallery images and poll data. Every record carries the score, upvote ratio, comment count, awards, flair, domain and the full set of status flags (self, video, NSFW, spoiler, OC, pinned, locked, archived).
Optional paid AI add-ons enrich each post: sentiment with a confidence score, a one to two sentence summary, topic tags and a broad category, plus the top few comments. Each add-on is off by default, charged only when it returns usable output, and disabled for free Apify plans.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 hot posts from r/technology with full text.
{"maxPosts": 10,"withDetails": true,"subreddits": ["technology"],"sort": "hot"}
Add more subreddits, a searchQuery, or exact postUrls. Use sort and timeFilter to control the feed, and turn on the AI add-ons (withSentiment, withSummary, withTopics, withTopComments) on a paid plan. All fields are optional.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
subreddits | string[] | no | ["technology"] | Subreddit names to scrape, without the r/ prefix, for example technology, worldnews. |
searchQuery | string | no | (empty) | Search terms to query instead of, or in addition to, the subreddit feeds. When a single subreddit is provided, the search is restricted to it. |
postUrls | string[] | no | [] | Exact Reddit post URLs to fetch directly. |
maxPosts | integer | no | 10 | Maximum number of posts to collect across all sources. |
withDetails | boolean | no | true | Open each post page to capture full self text, gallery images and poll data. Turn off for a faster listing-only run. |
sort | enum | no | hot | Sort order for feeds and search: hot, new, top, rising, controversial. |
timeFilter | enum | no | day | Time window for top, controversial and search: hour, day, week, month, year, all. Ignored for other sorts. |
withSentiment | boolean | no | false | Paid add-on. Classify each post's sentiment (positive / negative / neutral) with a confidence score. Paid plans only. |
withSummary | boolean | no | false | Paid add-on. Generate a 1 to 2 sentence summary of each post. Paid plans only. |
withTopics | boolean | no | false | Paid add-on. Extract topic tags and a broad category for each post. Paid plans only. |
withTopComments | boolean | no | false | Paid add-on. Capture the top few comments (author, score, text). Requires withDetails. Paid plans only. |
You can combine subreddits, searchQuery and postUrls in a single run.
Output reference
One dataset item per post. Types: string, integer, number, boolean, string[], object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
thumbnail | string | Post thumbnail image URL, or null. |
title | string | Post title. |
url | string | The URL the post links to (external link or the post itself). |
id | string | Reddit post ID (unique per post). |
selftext | string | Full self/text body (when withDetails is on), or null for link posts. |
subreddit | string | Subreddit name. |
author | string | Author username, or [deleted]. |
authorFullname | string | Reddit author fullname (for example t2_...), or null. |
authorFlairText | string | Author flair text, or null. |
score | integer | Net score of the post. |
upvoteRatio | number | Fraction of votes that are upvotes (0 to 1). |
numComments | integer | Number of comments. |
numCrossposts | integer | Number of crossposts. |
totalAwards | integer | Number of awards. |
linkFlairText | string | Post flair text, or null. |
permalink | string | Permalink to the post. |
domain | string | Domain the post links to. |
isSelf | boolean | true for text/self posts. |
isVideo | boolean | true for Reddit-hosted video posts. |
isNsfw | boolean | true when marked NSFW. |
isSpoiler | boolean | true when marked as a spoiler. |
isOriginalContent | boolean | true when marked OC. |
isPinned | boolean | true when pinned. |
isLocked | boolean | true when locked. |
isArchived | boolean | true when archived. |
edited | string | Edit timestamp (ISO 8601), or null if never edited. |
galleryImageUrls | string[] | Gallery image URLs (when withDetails is on), or null. |
createdAt | string | Post creation timestamp (ISO 8601). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
aiSentiment | string | Add-on: positive, negative, or neutral. Present only with withSentiment. |
aiSentimentScore | number | Add-on: sentiment confidence score. Present only with withSentiment. |
aiSummary | string | Add-on: 1 to 2 sentence summary. Present only with withSummary. |
aiTopics | string[] | Add-on: topic/keyword tags. Present only with withTopics. |
aiCategory | string | Add-on: broad category. Present only with withTopics. |
topComments | object[] | Add-on: top comments (author, score, text). Present only with withTopComments. |
Example output record
Real record from a live run (input {"subreddits": ["technology"], "maxPosts": 3, "sort": "hot", "withDetails": true, "withSentiment": true, "withSummary": true, "withTopics": true, "withTopComments": true}). topComments is trimmed to 1 of 3 real comments for readability:
{"title": "US conducted ‘mass spying campaign’ against leftwing groups and anti-ICE protesters, records reveal","url": "https://www.theguardian.com/us-news/2026/aug/13/us-government-spied-anti-ice-protesters","id": "1vnwgay","selftext": null,"subreddit": "technology","author": "Vucea","score": 1140,"upvoteRatio": 0.98,"numComments": 49,"linkFlairText": null,"permalink": "https://www.reddit.com/r/technology/comments/1vnwgay/us_conducted_mass_spying_campaign_against/","domain": "theguardian.com","isSelf": false,"isVideo": false,"createdAt": "2026-08-14T03:49:00.000Z","observedAt": "2026-08-14T05:27:27.804Z","aiSentiment": "negative","aiSentimentScore": -0.7,"aiSummary": "Records indicate that the US engaged in a large-scale surveillance operation targeting leftist organizations and anti-ICE demonstrators.","aiTopics": ["mass spying", "leftwing groups", "anti-ICE protesters", "US government surveillance"],"aiCategory": "Politics","topComments": [{"author": "Soloact_","score": 309,"text": "Spying on people for protesting the government is some authoritarian bullshit. This is the shit people warned about and got called hysterical for."}],"error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~reddit-posts-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"subreddits":["technology"],"maxPosts":25,"sort":"hot","withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~reddit-posts-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQuery":"artificial intelligence","sort":"top","timeFilter":"week","withSummary":true,"maxPosts":100}'
Apify CLI:
apify call scrapers_lat/reddit-posts-scraper \--input '{"subreddits":["worldnews"],"withSentiment":true,"withTopics":true,"maxPosts":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=500&limit=500"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per post record returned (
resultevent). See the pricing tab for the current per-result price. - AI add-ons are extra and opt-in.
withSentiment,withSummary,withTopicsandwithTopCommentsare billed per enriched post, charged only when they return usable output, and available on paid Apify plans only. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 posts per run and cannot use the AI add-ons. Upgrade for higher
maxPostsand enrichments.
FAQ and troubleshooting
A run returned 0 records. Why?
The subreddit name or search query may have matched nothing, or the time window was too narrow. Check the names, widen timeFilter, or change sort. Zero-result runs are not charged.
How do I get the full post text?
Keep withDetails on (the default). The actor opens each post page and fills selftext and galleryImageUrls. Turn it off for a faster listing-only run without full text.
How do I search across Reddit instead of a subreddit?
Set searchQuery. Provide a single subreddit alongside it to restrict the search to that community, or leave subreddits empty to search all of Reddit.
What do the AI add-ons add and what do they cost?
withSentiment adds aiSentiment and aiSentimentScore; withSummary adds aiSummary; withTopics adds aiTopics and aiCategory; withTopComments adds topComments. Each is billed per enriched post, charged only when it returns output, and paid plans only.
Why are the AI fields missing from my output? They appear only when you enable the matching add-on on a paid plan. Without the add-on, the fields are omitted.
Is this an official Reddit tool? No. This actor is independent and has no affiliation with Reddit. It reads only data that is publicly available on reddit.com.
Related scrapers
- Reddit Comments Scraper: Comment trees from any post.
- Reddit Media Scraper: Images, videos and galleries from Reddit.
- Reddit User Scraper: A user's posts and comments.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Reddit. Accesses only publicly available post data.
