Reddit subreddit feeds, community details, post bodies, full comment trees, video transcripts, three kinds of search, and a one-call listening sweep
Reddit is the richest source of unprompted opinion on the API, and these endpoints cover it end to end: a community's feed, its own stats and rules, a post's body, the whole nested comment tree beneath it, video transcripts, three different searches, and a composite that does a listening sweep in one call.
Base URL: /v1/reddit/...
Reddit search is the slowest social search on the API, 10 to 12 seconds, and
its relevance is loose. Treat omni-search as a voice-of-customer sweep,
not a precision ranking: you are trading exactness for coverage of what people
actually said. Set client timeouts accordingly, or stream it.
Quickstart
1. Size up a community
curl "https://www.socialcrawl.dev/v1/reddit/subreddit/details?subreddit=technology" \
-H "x-api-key: YOUR_API_KEY"2. Read its feed
curl "https://www.socialcrawl.dev/v1/reddit/subreddit?subreddit=technology" \
-H "x-api-key: YOUR_API_KEY"3. Read computed fields
When an endpoint supports a computed field and the required source inputs are present, the unified response includes that optional field. Depending on the endpoint, optional fields can include engagement_rate, language, content_category, and estimated_reach. See Computed fields for formulas, clamping rules, and null semantics. Where an endpoint supports them, list rows also carry judged labels (computed.labels, computed.relevance) by default at no extra credits; see Labels.
Communities
| Endpoint | Credits | What it returns | Key parameters |
|---|---|---|---|
GET /v1/reddit/subreddit/details | 1 | Subscriber count, description, rules, and community settings | subreddit or url |
GET /v1/reddit/subreddit | 1 | The community feed: titles, scores, comment counts, flair | subreddit, sort, timeframe, after, label, judgments |
timeframe only works with sort=top. On subreddit, a timeframe with any other sort is ignored by Reddit. Omitting sort entirely auto-selects top for you, so ?subreddit=technology&timeframe=week behaves as you would expect, but ?subreddit=technology&sort=new&timeframe=week quietly gives you the unfiltered new feed.
Posts and comments
| Endpoint | Credits | What it returns | Key parameters |
|---|---|---|---|
GET /v1/reddit/post | 1 | One post including the body text, plus score, upvote ratio, flair | url |
GET /v1/reddit/post/comments | 5 | The full nested comment tree, each comment with author, score, and awards | url, cursor, trim, label, judgments |
GET /v1/reddit/post/transcript | 10 | A video post's captions, both raw and as plain text | url, language |
The feed and search endpoints leave the body text out, so post is the call that gets it.
post/comments is the one advanced-tier endpoint on this platform, because it expands the whole tree rather than a page. On very large threads the response reports which branches were left unopened. When Reddit publishes no captions, post/transcript comes back empty and flagged rather than as an error.
Search
| Endpoint | Credits | What it returns | Key parameters |
|---|---|---|---|
GET /v1/reddit/search | 1 to 26 | One keyword across all of Reddit, with subreddit names and permalinks | query, sort, timeframe, after, label, relevance, judgments |
GET /v1/reddit/subreddit/search | 1 to 26 | The same search confined to one community | subreddit, query, sort, timeframe, cursor |
GET /v1/reddit/subreddits/search | 1 to 26 | Which communities discuss a topic; include=details adds the creation date, weekly activity, rules and language per community | query, include, limit (1-25), cursor |
GET /v1/reddit/omni-search | 5 to 9 | A listening sweep: search, thread comments, and a subreddit roll-up | query, threads (1-8, default 8), subreddit, timeframe |
subreddits/search is the call that comes before the other three: it answers which communities discuss a subject, and author.id on each row is the exact subreddit parameter the rest of this platform takes. On a plain call it returns the name, subscriber count, description and icon for 1 credit. Add include=details and every community on the page is joined, in the same call, to subreddit/details, so the creation date, weekly active users, weekly contributions, rules and language land on each row: 1 credit for the page plus 1 per community filled from a fresh lookup, 26 at most. Communities already in cache are filled for free, communities that could not be filled are refunded, and limit=N (1 to 25) takes the top N and caps the extra credits with it. The response carries a data.hydration block with the rows looked up, filled and served from cache, the credits held and kept, and the milliseconds the lookups added. Allow 3 to 9 seconds on a fresh page, never more than 12, and nothing when the communities are already cached.
The keyword search lanes are metered too: the page itself is 1 credit, and only include_body=true can take it higher. That flag is rarely worth reaching for on /v1/reddit/search, which already returns bodies on the rows themselves; it reserves up to 25 extra credits, refunds every one it does not spend, and a link post has no body to fetch and is not charged for. On the scoped lane the bodies are genuinely absent, so the flag does something, and /v1/reddit/search?query=subreddit:<name> <terms> gets you the same bodies for 1 credit if you can live with a different index.
Scoped search is the one to reach for when a term means something different in r/investing than in r/wallstreetbets. One caveat on timeframe: it narrows the window on sort=relevance, sort=top and the comment-count sort, and does nothing on sort=new, which is already ordered newest-first and returns recent posts regardless.
curl "https://www.socialcrawl.dev/v1/reddit/subreddit/search?subreddit=technology&query=data%20api&sort=top&timeframe=month" \
-H "x-api-key: YOUR_API_KEY"The listening sweep
GET /v1/reddit/omni-search is what you would otherwise build by hand: search, then a comments call per thread, then an aggregation. It does all three and returns threads with their top comments inline, capped at 15 a thread, plus a per-community tone label in the roll-up.
Pricing is metered and the floor is 5, not 1. It bills 1 credit per search page plus 1 credit per successfully expanded thread, with a minimum of 5 credits. A thread that fails to expand is not billed, and the unused thread ceiling is refunded. threads is the lever: 8 threads is a 9-credit ceiling, and lowering it lowers the ceiling.
subreddit scopes the whole sweep to one community, and next_cursor resumes the search. Send Accept: text/event-stream and it streams each thread as its comments land instead of making you wait.
curl "https://www.socialcrawl.dev/v1/reddit/omni-search?query=headless%20cms&threads=5&timeframe=month" \
-H "x-api-key: YOUR_API_KEY"All endpoints
14 endpoints available.
Platform notes
Spell subreddit names as Reddit does on subreddit/details. The main source for that endpoint is case-sensitive, and a non-canonical spelling falls through to a second source that answers with the core fields but without the weekly-activity numbers. Use the canonical casing (AskReddit, not askreddit) to get the whole object. The same applies inside subreddits/search?include=details, where each row carries Reddit's own casing: a community the main source cannot answer still gets its creation date and language from the second source, and that row is billed as filled while its weekly numbers and rules stay empty.
Reddit's ad-library endpoints are disabled upstream and return a 503 at no charge. For ad-library work, the Facebook, Google, and TikTok ad libraries are live.
Pagination is not uniform. subreddit and search page with after; subreddit/search, post/comments, and omni-search page with cursor.
Identifiers split three ways. subreddit, subreddit/search, and subreddit/details take a subreddit name, and details also accepts a url; post, post/comments, and post/transcript take a post url; the searches take a query.
Reddit feeds other surfaces too. It is one of the sources behind /v1/search/everywhere and the leg that most Prism brand composites lean on.
Labels
These lists label their rows by default, at no extra credit. On /v1/reddit/post/comments, each comment carries sentiment, question, purchase_intent and complaint on computed.labels. On /v1/reddit/search and /v1/reddit/subreddit, each row carries sponsored, intent and niche. /v1/reddit/search also scores each row's relevance to your query on computed.relevance, without dropping or reordering anything; add relevance=filter to drop the rows that are about something else, still free. Send judgments=off for the page without them. See Labels for the field shapes, rows still pending, and the labels you can add with label=.
Next steps
Pagination
Cursor and page walks, and what has_more actually means.
Credits
What each tier costs and when a call is refunded.
Which endpoint should I use?
Picking between one subreddit, all of Reddit, and the wider forum web.
API reference
Every parameter and response field, endpoint by endpoint.
Universal search
One keyword across Reddit and every other source at once.
