Apify actor · whoareyouanas/reddit-faster-actor
Reddit Scraper – Posts, Comments & User History
Export archived Reddit posts and comments for known subreddits or public users within UTC date windows. Build historical research datasets without a Reddit API key, login, cookies, or proxy setup.
Documentation checked 2026-10-29 · deployed build 0.2.4 · run through your Apify account
01 / Overview
Match the actor to the job.
Dated archive exports
Choose subreddit or user targets and explicit start and end bounds.
Posts, comments, or both
Select the record kinds required by your research rather than assuming a live thread export.
Checkpoints and metadata
Inspect per-target metadata, run summaries, and saved state when continuing interrupted work.
02 / Input
Start with a clear, bounded input.
targets is required. maxItemsPerKind applies to each target and each selected dataset, not globally. limit is an API page-size string. A date-only endDate includes that UTC calendar day.
{
"targets": [
"r/Python"
],
"datasets": [
"posts",
"comments"
],
"startDate": "2024-01-01",
"endDate": "2024-01-07",
"maxItemsPerKind": 10,
"limit": "100",
"resumeFromState": false
}Replace example targets and credential placeholders before running. These are documentation examples, not a promise of currently available source results.
| Field | Type / required | Default | Purpose |
|---|---|---|---|
| targets | arrayRequired | Not specified | Subreddit or user targets: r/Python, u/spez, or a full Reddit subreddit/user profile URL. Post, thread and search URLs are not supported. |
| datasets | array | ["posts"] | Select which Reddit object types to download. |
| startDate | string | "30 days ago" | UTC inclusive lower bound. Supports YYYY-MM-DD, ISO datetime, epoch seconds/milliseconds, N days ago, none, or all. Default: 30 days ago. |
| endDate | string | "now" | UTC upper bound. YYYY-MM-DD is exclusive of the next UTC day. Use now for the current time. |
| maxItemsPerKind | integer | 100 | Optional cap for newly pushed rows per selected dataset and target. Minimum: 1 |
| limit | string | "100" | Archive API page size. Default 100. This is not the total output cap. |
| resumeFromState | boolean | true | Resume checkpoints within the same default key-value store when dates and source match. Separate scheduled runs do not automatically share this store. |
All other input controls (11)
| Field | Type / required | Default | Purpose |
|---|---|---|---|
| maxPagesPerKind | integer | Not specified | Optional cap for fetched non-empty API pages per selected dataset and target. Minimum: 1 |
| windowDays | number | 1 | Maximum time span per API search request. Use 0 to disable windowing. Minimum: 0 |
| minWindowSeconds | integer | 60 | Smallest recovery window after API timeouts, server errors, or oversized range responses. The run fails if retries at this size still fail. Minimum: 1 |
| requestDelayMs | integer | 0 | Delay between successful non-empty page requests. Minimum: 0 |
| timeoutSeconds | number | 60 | Timeout for each data request. Minimum: 1 |
| retries | integer | 3 | Retries for transient HTTP or network failures. Minimum: 0 |
| retrySleepSeconds | number | 2 | Base sleep between retries. Later retries wait a multiple of this value. Minimum: 0 |
| skipMetadata | boolean | false | Skip the subreddit/user metadata request. Provide startDate for large ranges when enabled. |
| dryRun | boolean | false | Preview targets, date ranges, and request settings without fetching posts/comments or pushing dataset rows. |
| verboseLog | boolean | false | Log each progress update instead of every page checkpoint interval. |
| baseUrl | string | Not specified | Compatibility setting for existing saved tasks. Leave unset. |
03 / Output
Know what each returned row represents.
- Each row is one archived post or comment with kind, redditId, date, available author/text/link fields, and rawData.
- Comments are independent subreddit or author selections, not automatically the reply trees of returned posts. Text and metadata can be null.
{
"createdAt": "2024-01-03T12:00:00Z",
"author": "example_author",
"title": "Example discussion title",
"link_flair_text": "Discussion",
"description": "Example post text.",
"url": "https://www.reddit.com/r/Python/comments/example/example_discussion/",
"kind": "post",
"redditId": "example",
"rawData": {
"id": "example",
"author": "example_author",
"subreddit": "Python",
"created_utc": 1704283200,
"title": "Example discussion title",
"selftext": "Example post text.",
"link_flair_text": "Discussion",
"permalink": "/r/Python/comments/example/example_discussion/"
}
}Example values illustrate the published contract. Available fields and populated values depend on the source, mode, and result status.
Fields in the documented output view
kind
Kind
redditId
Reddit ID
createdAt
Created at
author
Author
title
Title
link_flair_text
link_flair_text
description
Description
url
URL
Output views select columns. They do not necessarily filter record types or exhaust the full JSON payload. Use structured JSON when you need nested arrays or objects.
Dataset links and run artifacts (2)
- Results
- Available through the actor's Output tab for your run.
- Run summary
- Available through the actor's Output tab for your run.
04 / Pricing
Understand the billable unit.
These are the active public event prices checked on 2026-10-29, in USD. They describe each event, not a universal flat price for a run. Confirm your current Apify plan and run budget before starting.
| Billable event | Rate (USD) | When it applies |
|---|---|---|
Actor Start apify-actor-start | $0.00005 / event | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). Start units depend on allocated memory: one event per GB, with at least one event. |
Reddit result apify-default-dataset-item | $0.00075 / event | One Reddit post or comment written to the default dataset. $0.75 per 1,000 of this event. Other events and separate services are additional. |
- Posts and comments are separate billed rows at the same result-event rate.
- Startup can still apply to empty or dry runs. Previously delivered rows remain billable if a later request fails.
A result limit and a spending cap are different controls. Account charges, applicable taxes, and separately billed providers or proxies must be considered where relevant. A cap setting is not a minimum invoice charge.
05 / API & automation
Use the same input from your workflow.
Test a small run in Apify Console, inspect its records and charges, then save a task or call the actor from your own application. Keep your Apify token in an environment variable. Source-specific credentials, if required, are separate from the Apify API token.
# Save the input example as input.json and set APIFY_TOKEN.
# This request starts an asynchronous, potentially billable run.
curl --request POST \
'https://api.apify.com/v2/acts/whoareyouanas~reddit-faster-actor/runs' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data @input.jsonThe response identifies the run. Wait for it to finish, inspect its status, and use its default dataset and key-value store to retrieve results. A successful run can still contain partial or failed records; check the output contract above before continuing downstream.
Coverage & interpretation
Check the result before relying on it.
- Archive coverage and freshness can differ from live Reddit; recent content can lag.
- Global keyword search, direct post-thread URLs, live rankings, and complete reply trees are not supported.
Questions
Before you build an integration.
What do I need to provide?
targets is required. maxItemsPerKind applies to each target and each selected dataset, not globally. limit is an API page-size string. A date-only endDate includes that UTC calendar day.
What should I check in the output?
- Each row is one archived post or comment with kind, redditId, date, available author/text/link fields, and rawData.
- Comments are independent subreddit or author selections, not automatically the reply trees of returned posts. Text and metadata can be null.
How do I budget the run?
- Posts and comments are separate billed rows at the same result-event rate.
- Startup can still apply to empty or dry runs. Previously delivered rows remain billable if a later request fails.
Keep exploring
Practical guides for the next step.
Export Reddit Posts and Comments to CSV: Browser or Archive?
Choose a local export for the Reddit page you are reviewing or a dated archive export for historical research, with the right expectations for each.
Read the guideHow to Scrape Reddit Posts and Comments for Market Research
Use a Reddit scraper to find buyer language, product complaints, content ideas, and community signals from posts, comments, subreddits, and user profiles.
Read the guideTop 5 Apify Scrapers to Automate Marketing Research
A practical stack of Apify scrapers for automating marketing research across Meta ads, Google ads, TikTok ads, Facebook Groups, and Reddit.
Read the guide