Skip to content
redditdataapi.io

Zero Container Cold Starts · ~180ms Sync JSON · 40%–60% Lower Unit Cost

Migrate from Apify Reddit Scraper to Synchronous REST API (<1s Latency)

Replace 30-second Actor container cold starts, dataset polling loops, and idle compute unit burn with a single synchronous GET request. Pay $0.10/1,000 posts or comments on Pay-As-You-Go (down to $0.058–$0.040/1K on Growth & Scale plans) — and $0 whenever ?since= incremental polls find zero new mentions.

No credit card required · 60 RPM instant sandbox (up to 600 RPM paid) · +20,000 Streak Bonus ($3.20 total free test budget)

01 · PAY-AS-YOU-GO

$0.10 / 1K items · Never expires

0 Credits charged on empty keyword polls or 4xx/5xx upstream errors.

02 · ZERO OAUTH / ZERO COOKIES

No Reddit account or proxies needed

Skip 6-week commercial OAuth reviews, refresh tokens, and AWS/GCP 403 blocks.

03 · 10×–24× LOWER UNIT COST

Beats Official $0.24/1K calls & $1.50 actors

Up to 100 posts or 200 nested comments per call ($0.04–$0.06/1K with bonus).

04 · $1.20 INSTANT + $2.00 STREAK

12,000 Free Credits ($1.20) instantly

0 card, 0 blocks on sign-up + Day-2 (+$1.00) & Multi-Day (+$1.00) return bonuses.

Container Queue vs Direct HTTP Gateway (10,000 Credits = $1.00)

Cut Ingestion Cost by 40%–60% & Drop 30s Container Boot Overhead

Batch Actor runs shine for heavy browser automation, but for real-time Reddit feeds, AI agent tool calls, and 5-minute brand mention cron jobs, spinning up a container per poll wastes both wall-clock latency and compute budget.

DimensionRedditDataAPI.io Direct RESTAsync Apify Reddit Scraper RunsOfficial Reddit API ($0.24/1K)
Response Pattern & LatencySingle GET · ~180ms p50 (<1s)POST /runs → poll → /datasets (15s–45s)OAuth token exchange + 100 QPM cap
Effective Cost per 1,000 Items$0.10 PAYG · $0.058 Growth · $0.040 Scale$0.15 – $0.35+ / 1K (Actor + Compute + Proxy)$0.24 / 1,000 HTTP calls (commercial contract)
Empty Brand Mention Poll (?since=)$0.00 (0 Credits deducted)Container boot + minimum run compute billedBilled per HTTP request even when empty
Max Batch Size per RequestUp to 100 posts or 200 nested commentsAsync dataset paginationMax 100 listing + extra MoreComments calls
Entity Metadata Lookups$0.20 / 1,000 lookups (2 Credits)Full actor container startup per runRequires commercial OAuth approval
AI Agent / Claude / Cursor ReadyHosted OAuth 2.1 MCP (mcp.redditdataapi.io)Often times out synchronous LLM tool callsCommercial AI/LLM training restricted

1:1 Schema Reference

Apify Reddit Scraper Input JSON → Synchronous REST Parameter Mapping

Map your existing Actor run_input fields directly to https://api.redditdataapi.io/v1/* query parameters in under two minutes:

Use CaseApify Actor Input JSONDirect REST EndpointQuery ParametersCredits
Keyword & Brand Mention Search{ "queries": ["brand"], "subreddit": "SaaS", "sort": "new", "timeFilter": "week", "maxPostsPerQuery": 100 }GET /v1/posts/searchquery=brand&subreddit=SaaS&sort=new&time_filter=week&limit=100&since=<unix_sec>&cursor=<after>1 Credit / post ($0 if 0 matches)
Subreddit Feed (hot / new / top / rising){ "mode": "subreddit", "subreddits": ["LocalLLaMA"], "sort": "hot", "maxItemsPerTarget": 100 }GET /v1/subreddit/postssubreddit=LocalLLaMA&sort=hot&time_filter=day&limit=100&cursor=<after>1 Credit / post (up to 100/call)
Post Detail + Nested Comment Tree{ "mode": "comments", "postIdsOrUrls": ["https://www.reddit.com/r/SaaS/comments/1u0z4vz/..."], "maxComments": 200 }GET /v1/posts/commentspost_id=1u0z4vz&sort=top&limit=200 (accepts bare ID, t3_ ID, or full Reddit URL)1 Credit / comment (depth + parent_id)
Single Thread Body & Upvote Ratio{ "startUrls": [{ "url": "https://www.reddit.com/r/SaaS/comments/1u0z4vz/..." }] }GET /v1/posts/detailpost_id=1u0z4vz (or full permalink URL)2 Credits flat ($0.0002 / lookup)
Subreddit Metadata & Subscriber Count{ "subreddits": ["SaaS"], "includeSubredditInfo": true }GET /v1/subreddit/infosubreddit=SaaS2 Credits flat ($0.0002 / lookup)
User Submission & Comment History{ "mode": "user", "usernames": ["spez"], "maxItemsPerTarget": 100 }GET /v1/users/posts · /v1/users/commentsusername=spez&sort=new&limit=100&cursor=<after>1 Credit / item (profile: 2 Credits)

Drop-In Code Replacement

Replace 15 Lines of Async Dataset Polling with One HTTP GET

Before: Async Container Run (15s–45s)

# Old async container workflow:
from apify_client import ApifyClient

client = ApifyClient(APIFY_TOKEN)
# Waits 15-45s for container boot + proxy + dataset write
run = client.actor("reddit-scraper").call(run_input={
    "queries": ["supabase OR clerk"],
    "sort": "new",
    "timeFilter": "week",
    "maxPostsPerQuery": 50,
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())

After: Synchronous REST (~180ms · $0 if Empty)

# New synchronous REST call (<1s, zero cold start):
import requests

res = requests.get(
    "https://api.redditdataapi.io/v1/posts/search",
    headers={"x-api-key": REDDITDATAAPI_KEY},
    params={
        "query": "supabase OR clerk",
        "sort": "new",
        "time_filter": "week",
        "limit": 50,
    },
    timeout=10,
)
items = res.json()["data"]["items"]
import os
import requests

API_KEY = os.environ["REDDITDATAAPI_KEY"]  # rd_live_... (instant at /signup)
HEADERS = {"x-api-key": API_KEY}
BASE = "https://api.redditdataapi.io"

# 1. Replaces Actor search input: {"queries": ["supabase OR clerk"], "sort": "new", "timeFilter": "week"}
search_res = requests.get(
    f"{BASE}/v1/posts/search",
    headers=HEADERS,
    params={"query": "supabase OR clerk", "sort": "new", "time_filter": "week", "limit": 50},
    timeout=10,
)
search_res.raise_for_status()
posts = search_res.json()["data"]["items"]  # ~180ms sync JSON (0 Credits if 0 matches!)

# 2. Replaces Actor subreddit feed: {"subreddits": ["SaaS"], "sort": "hot", "maxItemsPerTarget": 50}
feed_res = requests.get(
    f"{BASE}/v1/subreddit/posts",
    headers=HEADERS,
    params={"subreddit": "SaaS", "sort": "hot", "limit": 50},
    timeout=10,
)
feed_posts = feed_res.json()["data"]["items"]

# 3. Replaces Actor comment crawl: {"postIdsOrUrls": ["1u0z4vz"], "maxItemsPerTarget": 200}
comments_res = requests.get(
    f"{BASE}/v1/posts/comments",
    headers=HEADERS,
    params={"post_id": "1u0z4vz", "sort": "top", "limit": 200},
    timeout=10,
)
comment_tree = comments_res.json()["data"]["items"]  # Flattened with depth & parent_id
print(f"Fetched {len(posts)} mentions, {len(feed_posts)} feed posts, {len(comment_tree)} comments")

Building AI Agents in Claude or Cursor?

Skip HTTP boilerplate entirely — connect our hosted OAuth 2.1 MCP server https://mcp.redditdataapi.io/v1/mcp or inspect our Remote MCP Setup Guide.

Migration FAQ

Frequently Asked Questions When Switching from Container Scrapers

Why switch from async Apify Reddit Scraper containers to synchronous REST?

Containerized scraper actors must allocate a worker, boot Node/Python, attach residential proxies, write to a dataset, and wait for your webhook or polling loop (15–45 seconds per run). Calling api.redditdataapi.io returns structured JSON in ~180ms over a single HTTP GET, cuts total cost by 40%–60%+ by eliminating container compute units, and charges 0 Credits when incremental ?since= brand mention checks return zero new posts.

Can I pass full Reddit URLs like I did in Apify startUrls or postIdsOrUrls?

Yes. /v1/posts/comments and /v1/posts/detail automatically normalize full https://www.reddit.com/r/.../comments/<id>/... URLs, t3_<id> fullnames, or bare 6–7 character post IDs. Similarly, /v1/subreddit/posts accepts r/SaaS, /r/SaaS, or SaaS.

How much free credit do I get to test my migration before paying?

Every new account receives 12,000 Free Credits ($1.20) immediately on sign-up with no credit card required, plus up to +20,000 Bonus Credits (+$2) via the Day-2 and 3-Day Developer Sandbox Streak — enough to fetch up to 32,000 posts or comments free.

Can Claude, ChatGPT, Cursor, or LangChain call these endpoints without glue code?

Yes. Connect Claude Web or ChatGPT directly via our 1-click OAuth 2.1 Remote MCP endpoint (https://mcp.redditdataapi.io/v1/mcp), or add https://api.redditdataapi.io/mcp to Claude Code, Cursor, or Windsurf using your rd_live_ API key.

Test Your Migration Free with 32,000 Sandbox Credits ($3.20)

Sign up in 10 seconds to get your rd_live_ API key with 12,000 Free Credits ($1.20) immediately, plus +20,000 Credits (+$2) on your Day-2 & 3-Day integration streak. Pay-As-You-Go credits never expire.