Social Dash Scraper
Documentation v0.1OpenAPI

Social discussions API

Reddit

Live private service · intermittent proxy failures

Discover public discussions and retrieve posts with bounded comments.

The existing RSS search and browser thread contracts remain intact. Eight additive ScrapeCreators-style operations run privately with Patchright, including native comment pagination and published captions. All primary operations passed bounded production checks. The existing proxy intermittently returned HTTP 403 across destinations and later recovered without configuration changes. Production search, mixed-search and comment continuations then returned new records; one mixed page reported a posts timeout as explicit partial coverage. Public source fields and ranking can differ from the competitor.

Base URLhttp://localhost:3006

Local development example. Replace with your service origin.

Search discussions

POST/v1/search

RSS keyword discovery with optional subreddit, ranking, time-window, and result bounds. Unknown scores and metrics remain null.

Request body

FieldTypeDescription
querystringRequired. Search text, 1–200 characters.
subredditsarrayUp to five subreddit names; defaults to an empty list.
sortstringtop, new, or relevance; defaults to relevance.
timeWindowstringday, week, month, or year; defaults to month.
maxPostsinteger1–50 posts; defaults to 25.

Response fields

FieldTypeDescription
requestIdstringAlways included.
accountingobjectAlways included.
statusstringAlways included.
postsarrayAlways included.

Nested fields and every response variant are in the OpenAPI specification.

Retrieve threads

POST/v1/threads

Retrieve posts and nested comments from canonical HTTPS www.reddit.com post permalinks. Reaching a cap or leaving unloaded comments returns partial.

Request body

FieldTypeDescription
permalinksarrayRequired. 1–10 canonical HTTPS Reddit post permalinks, without query parameters or fragments.
maxCommentsPerThreadinteger1–100 comments per thread; defaults to 50.
maxDepthinteger1–5 reply levels; defaults to 5.

Response fields

FieldTypeDescription
requestIdstringAlways included.
accountingobjectAlways included.
statusstringAlways included.
threadsarrayAlways included.

Nested fields and every response variant are in the OpenAPI specification.

Subreddit details

GET/v1/reddit/subreddit/details

Read community metadata, rendered rules, images, dates and weekly metrics. A matching community search header can fill a missing subscriber count; unavailable required metadata stays null with explicit partial coverage.

Query parameters

FieldTypeDescription
subredditstringOptional.
urlstringOptional.
cache_max_agestringAccepted only on competitor-documented routes; always fetches live. No retained cache, credit balance or billing fields.

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Subreddit posts

GET/v1/reddit/subreddit

Read one rendered page of up to 50 public posts with sort, timeframe, signed after continuation and optional trimmed records.

Query parameters

FieldTypeDescription
subredditstringAlways included.
sortstringDefault: "hot"
timeframestringDefault: "all"
afterstringOptional.
trimboolean | stringDefault: false
cache_max_agestringAccepted only on competitor-documented routes; always fetches live. No retained cache, credit balance or billing fields.

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Subreddit search

GET/v1/reddit/subreddit/search

Read public post, comment and media search sections. One signed cursor tracks each section independently and skips exhausted sections. A section failure retains usable results with explicit partial coverage. Ranking and page sizes can differ from the competitor.

Query parameters

FieldTypeDescription
subredditstringAlways included.
querystringDefault: ""
sortstringDefault: "relevance"
timeframestringDefault: "all"
cursorstringOptional.

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Post details

GET/v1/reddit/post

Read one post and omit comments from the response. Canonical Reddit URLs and bounded same-origin mobile share-link redirects are supported.

Query parameters

FieldTypeDescription
urlstringAlways included.

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Post comments (GET)

GET/v1/reddit/post/comments

Read a post and up to 100 comments with nested replies (depth 8). Truncation is explicit. Pass the returned signed continuation unchanged with the same post URL to retrieve native comment fragments or visible focused replies. Source POST controls retain their hidden form cursor; hidden fallback links are excluded.

Query parameters

FieldTypeDescription
urlstringAlways included.
cursorstringOptional.
trimboolean | stringDefault: false

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Post comments (POST)

POST/v1/reddit/post/comments

The same comments operation accepts JSON when a continuation is too large for a URL. Body limit 64 KiB; cursor limit 50,000 characters. Query/body mixing and cursor batching are rejected.

Request body

FieldTypeDescription
urlstringAlways included.
cursorstringOptional.
trimboolean | stringDefault: false

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Post transcript

GET/v1/reddit/post/transcript

Read published WebVTT captions by post/share or direct v.redd.it video URL. Preserve raw_vtt and parse rolling captions into plain text. A source without published captions returns transcriptNotAvailable; challenges and failed retrieval remain failures.

Query parameters

FieldTypeDescription
urlstringAlways included.
languagestringDefault: "en"
cache_max_agestringAccepted only on competitor-documented routes; always fetches live. No retained cache, credit balance or billing fields.

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Global search

GET/v1/reddit/search

Search public posts or comments with signed after continuation. Comment search supports relevance/new/top and no timeframe. Unknown card fields, including post bodies and comment parent identities, remain null.

Query parameters

FieldTypeDescription
querystringAlways included.
filterstringDefault: "posts"
sortstringDefault: "relevance"
timeframestringDefault: "all"
afterstringOptional.
trimboolean | stringDefault: false

Response fields

FieldTypeDescription
requestIdstringAlways included.
coverageobjectInspect complete and reasons on every response. Source failures never masquerade as empty success.
accountingobjectAlways included.
successbooleanAlways included.
statusstringsuccess, partial, challenged or failed. error contains a sanitized machine-readable reason on failure.

Nested fields and every response variant are in the OpenAPI specification.

Coverage & limits

  • Search defaults to 50 posts, maximum 50. Thread requests accept at most ten permalinks.
  • Search deadline: 25 seconds. Thread deadline: 140 seconds. Readiness requires a configured proxy and Chromium.
  • The deployed routes, authentication header, environment names, and port remain unchanged.
  • The worker is stateless. Product-specific research, billing, and presentation remain with the consumer.
  • Expanded routes: 45-second deadline, at most six document/caption attempts including one shared transient retry, 8 MiB decoded responses, 50,000 JSON nodes and depth 32.
  • Expanded routes share the existing browser queue so they do not exceed the configured total browser concurrency. Each operation uses a fresh logged-out proxied Patchright context; captions use bounded proxied HTTPS.
  • All eight expanded operations returned usable live data and were deployed together with Bluesky and Pinterest on 2026-09-11. Public-card field availability and ranking can differ from the competitor.

Errors & partial results

HTTPCode / statusMeaning
400invalid_requestThe request failed validation.
401invalid_requestThe internal service secret is invalid.
503upstream_error / breaker_openProxy unavailable or thread retrieval temporarily paused.
502upstream_errorRetrieval failed.
504timeoutThe deadline expired; available results are retained.
200partial / challengedInspect status and failure even when HTTP succeeds.