Reddit research API
Your PM is manually scrolling r/SaaS at 11pm looking for "switched from Notion" threads. There's a better way: keyword search, subreddit feeds, and full comment trees over HTTP — JSON you can score, cluster, or dump into a spreadsheet without touching old.reddit HTML.
What usually breaks first
Most reddit research pipelines fail on schema drift and billing surprises long before they fail on "missing a platform." The notes below are the failure modes we hear about after a DIY scraper or marketplace API is already in production.
Reddit is where people write the honest version of your churn survey. "We left {competitor} because exports broke" shows up in r/startups. "Anyone know a cheaper alternative to {your product}?" lands in r/entrepreneur. That language is gold for positioning — but collecting it by hand doesn't scale, and Reddit's own API has gotten painful for commercial research workflows.
The DIY path looks familiar: spin up a scraper, parse JSON from reddit.com, hope the layout doesn't change next Tuesday. Or wire OAuth, fight rate limits, and still miss comment depth when a thread goes 400 replies deep. Product teams don't need another infrastructure project. They need paginated search, scoped subreddit listings, and comment trees in a shape their warehouse already understands.
That's the gap this page is about. Social Fetch exposes public Reddit data as plain GET endpoints — same billing model as TikTok or Instagram, same `data.page.nextCursor` pagination everywhere. Run a backfill of "alternative to Airtable" across the last year, pull top posts from r/productivity, then drill into the comment thread on the one post with 847 upvotes. Filter and score client-side; we return the raw thread, not a pre-chewed sentiment label.
Fair warning on costs: each search page and each comment page is a separate lookup. A research sprint that touches 200 threads can burn credits fast — which is why prepaid packs with no expiry beat a subscription ticking while you're between releases.
6 routes for this job
These are the routes we see in live reddit research integrations — Reddit in this list. Method, path, and query params match the public OpenAPI spec; when we add a field to docs, it ships in responses.
GET /v1/reddit/searchGlobal keyword search — your starting point for "switching from X", "{competitor} vs {competitor}", or "best tool for {job}". Supports sortBy (relevance, new, top) and timeframe (day through all). Paginate with cursor until data.page.hasMore is false.
GET /v1/reddit/subreddits/searchFind communities before you know the exact subreddit name. Query "project management" to surface r/productivity, r/SaaS, r/Notion — then lock your watchlist. Subreddit names are case-sensitive everywhere (SaaS ≠ saas).
GET /v1/reddit/subredditsSubreddit metadata — subscriber count, description, NSFW flag. Useful when you're deciding whether r/smallbusiness is big enough to monitor weekly or noise.
GET /v1/reddit/subreddits/{subreddit}/postsPaginated feed for a named community. Pull hot/top/new from r/IndieHackers or r/marketing without crafting search queries. Pair with timeframe when you only want last month's launch posts.
GET /v1/reddit/posts/commentsFull comment tree for a post URL — where the real product feedback lives. That r/SaaS thread titled "What do you hate about your CRM?" is worthless without the replies. Paginate comments the same way you paginate search.
GET /v1/reddit/posts/transcriptText transcript for video posts in subreddits like r/youseeingthisshit or r/gadgets. Niche for research, handy when the complaint is spoken, not written.
How teams wire this
A common path starts with “write the questions you actually need answered.” Your cron cadence, warehouse schema, and alert thresholds will differ — treat the steps as ordering hints, not a checklist you must copy verbatim.
- 1
Write the questions you actually need answered
Skip vague "monitor Reddit." Write concrete queries: "alternative to Linear", "cancelled HubSpot because", "Notion too slow for". Each question maps to one or more search calls. If you're doing competitive intel, list 5–8 competitor names and the phrases people use when they're mad — not your marketing names.
- 2
Discover subreddits, don't guess them
Call /v1/reddit/subreddits/search with category terms ("B2B sales", "no code", "devops"). Validate with /v1/reddit/subreddits — check subscriber counts before you commit to weekly pulls. r/entrepreneur and r/startups overlap but the threads don't.
- 3
Run global search, then narrow
Start with /v1/reddit/search and sortBy=relevance or top + timeframe=year for backfills. When a community keeps appearing, switch to /v1/reddit/subreddits/{subreddit}/posts for cleaner signal. Searching inside r/SaaS alone beats wading through r/AskReddit noise.
- 4
Page until hasMore lies
Every response includes data.page.nextCursor. Loop until hasMore is false — don't infer end-of-results from empty items alone. Each page is one billed lookup. For a 12-month competitor mention study, budget credits upfront; 50 queries × 4 pages each adds up.
- 5
Rank threads before you read them
Store title, body, score, comment count, createdAt from search results. Sort by score or comment count before pulling full threads — you don't need comments on a 2-upvote post from 2019. This alone cuts comment lookups by 70% on most backfills.
- 6
Mine comment threads for the verbatim quotes
Hit /v1/reddit/posts/comments with the permalink URL. Product research lives in replies: feature requests, workarounds, "we switched to X because Y broke." Paginate comment pages on viral threads — a 400-comment launch post might be 3–4 lookups.
- 7
Score sentiment in your stack, not ours
We return text and metadata; you run classification. Regex for "switching from" and "cancelled" gets you surprisingly far. Pipe comment bodies into your LLM with the post title as context — store meta.requestId on anything that looks wrong so support can trace the lookup.
- 8
Validate launches and track mention spikes
After a release, cron /v1/reddit/search with your product name + sortBy=new + timeframe=week. Diff against last week's pull in your DB; alert when volume jumps. Same pipeline works for competitor launches — watch their name, not yours.
- 9
Ship battlecards, not CSVs
Aggregate by theme: pricing complaints, missing integrations, onboarding pain. Weight by upvote score. PMs want "17 threads in r/smallbusiness mention export limits" with links — your pipeline should output that, refreshed on a schedule you control.
Competitor mention pull: global search with sort + timeframe, then paginate. Swap the query for your category — "best CRM for startups", "leaving Intercom", whatever you're researching. Each response page costs one credit; stash meta.requestId if a row looks off.
Swap YOUR_API_KEY for a key from the dashboard. The playground pre-fills auth if you open the same path there — useful before you paste this into a worker or CI job.
Why product researchers pick Social Fetch over DIY Reddit scraping
- No OAuth dance or Reddit app approval — one x-api-key header, same as every other platform we support.
- Subreddit names are case-sensitive and we won't silently fix SaaS → saas for you. Check the name in the URL bar before you bulk-query.
- Honest pagination: hasMore + nextCursor, not "here are 25 results, good luck guessing if there's a page 2."
- One credit balance for cross-platform studies — run Reddit sentiment alongside TikTok hashtag monitoring without a second vendor contract.
- Prepaid credits, no subscription. Research sprints are bursty; your billing shouldn't assume steady state.
- Completed lookups charge even when results are empty or not_found — the upstream ran. lookup_failed and 503 temporarily_unavailable do not charge.
- Public data only. You're responsible for lawful use; we don't help you evade platform rules or scrape private subreddits.
- Same JSON envelope as Instagram and X search — if you've already wired alerting on lookupStatus, Reddit drops in without a second parser.
Run a reddit research lookup on free credits
You get 100 credits on signup — enough to walk through the curl above against live data and inspect lookupStatus, pagination, and meta.creditsCharged. If the JSON lands cleanly in your pipeline, buy a credit pack once; balances do not expire on a subscription clock.