Reddit scraper API

Read-only Reddit data: recent posts and comments from given subreddits or all of Reddit (newest first), subreddit…

Social & content 6 capabilities stable 73.4% success rate

Capabilities

Every capability is one POST /execute call that returns structured JSON.

List Comments

reddit.comments.list

Recent comments from one or more subreddits (or all of Reddit), newest first, with a cursor for the next page.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"subreddits":"SaaS"},"capability":"reddit.comments.list"}'

Input

Field Type Required Description
after string optional Opaque cursor from a previous result's "next".
limit integer optional Page size, 1-100 (default 50).
subreddits string required Comma-separated subreddit names (no leading r/), or the literal "all" for all of Reddit.

Output

Field Type Required Description
items array<object> required Comment objects, newest first.
items[].author string | null required Username; null if deleted/removed.
items[].body string required Comment text.
items[].created_utc integer required Creation time, Unix seconds UTC.
items[].id string required Stable unique id and dedup key (e.g. t1_xyz789).
items[].nsfw boolean required
items[].parent_permalink string | null required Absolute URL of the parent post; null if unknown.
items[].parent_title string | null required Title of the post the comment is on; null if unknown.
items[].permalink string required Absolute URL to the comment.
items[].score integer required
items[].subreddit string required Subreddit name, no r/.
items[].type string required
next string | null required Opaque cursor for the next (older) page, or null when there are no older items.

Search Comments

reddit.comments.search

Search comments by query, newest first, optionally restricted to subreddits, with a cursor for the next page. Approximate; callers re-filter locally.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"q":"pricing","subreddits":"SaaS"},"capability":"reddit.comments.search"}'

Input

Field Type Required Description
after string optional Opaque cursor from a previous result's "next".
limit integer optional Page size, 1-100 (default 50).
q string required Search query. Supports AND (space), OR, -term/NOT exclusion, and "exact phrase".
subreddits string optional Optional comma-separated subreddit restriction (no leading r/).

Output

Field Type Required Description
items array<object> required Comment objects, newest first.
items[].author string | null required Username; null if deleted/removed.
items[].body string required Comment text.
items[].created_utc integer required Creation time, Unix seconds UTC.
items[].id string required Stable unique id and dedup key (e.g. t1_xyz789).
items[].nsfw boolean required
items[].parent_permalink string | null required Absolute URL of the parent post; null if unknown.
items[].parent_title string | null required Title of the post the comment is on; null if unknown.
items[].permalink string required Absolute URL to the comment.
items[].score integer required
items[].subreddit string required Subreddit name, no r/.
items[].type string required
next string | null required Opaque cursor for the next (older) page, or null when there are no older items.

List Posts

reddit.posts.list

Recent posts from one or more subreddits (or all of Reddit), newest first, with a cursor for the next page.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"subreddits":"webdev,startups"},"capability":"reddit.posts.list"}'

Input

Field Type Required Description
after string optional Opaque cursor from a previous result's "next".
limit integer optional Page size, 1-100 (default 50).
subreddits string required Comma-separated subreddit names (no leading r/), or the literal "all" for all of Reddit.

Output

Field Type Required Description
items array<object> required Post objects, newest first.
items[].author string | null required Username, no u/; null if deleted/removed.
items[].body string | null required Self/text body; null for link posts.
items[].created_utc integer required Creation time, Unix seconds UTC.
items[].id string required Stable unique id and dedup key (Reddit fullname, e.g. t3_abc123).
items[].nsfw boolean required
items[].num_comments integer required
items[].permalink string required Absolute URL to the post on reddit.com.
items[].score integer required
items[].subreddit string required Subreddit name, no r/.
items[].title string required
items[].type string required
items[].url string | null required External/linked URL for link posts; null for self posts.
next string | null required Opaque cursor for the next (older) page, or null when there are no older items.

Search Posts

reddit.posts.search

Search posts by query, newest first, optionally restricted to subreddits, with a cursor for the next page.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"q":"supabase alternative"},"capability":"reddit.posts.search"}'

Input

Field Type Required Description
after string optional Opaque cursor from a previous result's "next".
limit integer optional Page size, 1-100 (default 50).
q string required Search query. Supports AND (space), OR, -term/NOT exclusion, and "exact phrase".
subreddits string optional Optional comma-separated subreddit restriction (no leading r/).

Output

Field Type Required Description
items array<object> required Post objects, newest first.
items[].author string | null required Username, no u/; null if deleted/removed.
items[].body string | null required Self/text body; null for link posts.
items[].created_utc integer required Creation time, Unix seconds UTC.
items[].id string required Stable unique id and dedup key (Reddit fullname, e.g. t3_abc123).
items[].nsfw boolean required
items[].num_comments integer required
items[].permalink string required Absolute URL to the post on reddit.com.
items[].score integer required
items[].subreddit string required Subreddit name, no r/.
items[].title string required
items[].type string required
items[].url string | null required External/linked URL for link posts; null for self posts.
next string | null required Opaque cursor for the next (older) page, or null when there are no older items.

Get Subreddit

reddit.subreddit.get

Fetch a single subreddit's public metadata by name.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"name":"webdev"},"capability":"reddit.subreddit.get"}'

Input

Field Type Required Description
name string required Subreddit name, without the leading r/ (case-insensitive).

Output

Field Type Required Description
active_users integer | null required Users online now.
created_utc integer | null required Creation time, Unix seconds UTC.
description string | null required Short public description.
icon_url string | null required Icon image URL.
name string required Subreddit name, no r/.
nsfw boolean required Over-18 community flag.
subscribers integer required Member count (default 0).
title string | null required Human-readable title.
url string | null required Canonical community URL, e.g. https://www.reddit.com/r/{name}/.

Search Subreddits

reddit.subreddit.search

Search communities by name or topic (typeahead-friendly), ordered by relevance, with subscribers and description.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":10,"q":"web development"},"capability":"reddit.subreddit.search"}'

Input

Field Type Required Description
limit integer optional Result count, 1-25 (default 10).
q string required Name or topic; works for short prefixes (typeahead).

Output

Field Type Required Description
items array<object> required Subreddit objects, ordered by relevance (most subscribers first).
items[].active_users integer | null required
items[].created_utc integer | null required
items[].description string | null required Short public description.
items[].icon_url string | null required
items[].name string required Subreddit name, no r/.
items[].nsfw boolean required
items[].subscribers integer required
items[].title string | null required
items[].url string | null required

Run Reddit in under a minute

Sign in, create an API key, and try any capability in the playground before you write code.

Get an API key