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.

input.json · example based on the deployed schema
{
  "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.

Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
targetsarrayRequiredNot specifiedSubreddit or user targets: r/Python, u/spez, or a full Reddit subreddit/user profile URL. Post, thread and search URLs are not supported.
datasetsarray["posts"]Select which Reddit object types to download.
startDatestring"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.
endDatestring"now"UTC upper bound. YYYY-MM-DD is exclusive of the next UTC day. Use now for the current time.
maxItemsPerKindinteger100Optional cap for newly pushed rows per selected dataset and target.

Minimum: 1

limitstring"100"Archive API page size. Default 100. This is not the total output cap.
resumeFromStatebooleantrueResume 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)
Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
maxPagesPerKindintegerNot specifiedOptional cap for fetched non-empty API pages per selected dataset and target.

Minimum: 1

windowDaysnumber1Maximum time span per API search request. Use 0 to disable windowing.

Minimum: 0

minWindowSecondsinteger60Smallest recovery window after API timeouts, server errors, or oversized range responses. The run fails if retries at this size still fail.

Minimum: 1

requestDelayMsinteger0Delay between successful non-empty page requests.

Minimum: 0

timeoutSecondsnumber60Timeout for each data request.

Minimum: 1

retriesinteger3Retries for transient HTTP or network failures.

Minimum: 0

retrySleepSecondsnumber2Base sleep between retries. Later retries wait a multiple of this value.

Minimum: 0

skipMetadatabooleanfalseSkip the subreddit/user metadata request. Provide startDate for large ranges when enabled.
dryRunbooleanfalsePreview targets, date ranges, and request settings without fetching posts/comments or pushing dataset rows.
verboseLogbooleanfalseLog each progress update instead of every page checkpoint interval.
baseUrlstringNot specifiedCompatibility setting for existing saved tasks. Leave unset.

03 / Output

Know what each returned row represents.

Illustrative output shape · not a live run
{
  "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.

Actor event prices and billing units
Billable eventRate (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.

cURL · start an asynchronous actor run
# 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.json

The 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.

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.