Reddit Scraper API

A REST API for extracting Reddit posts, comments, subreddits, users, and search results as structured data — one API key, one consistent JSON schema, no Reddit credentials or proxy infrastructure to manage.

Quick answer

A Reddit scraper API turns a Reddit URL, subreddit, username, or search query into structured data over HTTPS — no Reddit developer account, OAuth app, or proxy pool required. UGC Scraper's version returns posts, comments, subreddits, users, and search results in one consistent JSON (or CSV) schema, with automatic fallback if a request path is blocked or rate-limited. To use it: get a free API key, then POST a Reddit URL to /v1/scrape — see Quick start below.

What is the Reddit Scraper API?

It's a hosted API that turns a Reddit URL, subreddit name, username, or search query into structured JSON (or CSV). Every request routes through automatic fallback across the API's extraction methods, so a single blocked or rate-limited path doesn't take your integration down — you always get back the same response shape, regardless of which method served it.

Why use UGC Scraper

  • No Reddit API keys. Sign up, get one UGC Scraper key, and start — no OAuth app registration or developer approval.
  • No proxies to manage. The fallback layer handles blocked and rate-limited requests for you.
  • One consistent schema. Title, author, score, and comments come back in the same shape no matter how the data was fetched.
  • Success-only pricing.Failed or blocked requests don't consume your monthly quota.

Supported Reddit data

Posts

Title, body, author, score, timestamps, media, and flair via POST /v1/scrape.

Comments

The full thread with authors, scores, timestamps, and reply nesting, returned alongside the post.

Subreddits

Recent posts from any subreddit, sorted new or top, via POST /v1/subreddit.

Users

A user's submitted posts (POST /v1/user), their comments with post context (POST /v1/user/comments), or their public profile — karma, account age, trophies (POST /v1/user/profile).

Search

Keyword search across Reddit or scoped to one subreddit via POST /v1/search.

Authentication

Every request sends your API key as a bearer token. Base URL: https://api.ugcscraper.com

Authorization: Bearer rps_live_your_key

Quick start

Scrape a single Reddit post and its comments:

cURL

curl -X POST https://api.ugcscraper.com/v1/scrape \
  -H "Authorization: Bearer rps_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.reddit.com/r/.../comments/..."}'

Python

import requests

r = requests.post(
    "https://api.ugcscraper.com/v1/scrape",
    headers={"Authorization": "Bearer rps_live_your_key"},
    json={"url": "https://www.reddit.com/r/.../comments/..."},
)
post = r.json()

Node.js

const res = await fetch("https://api.ugcscraper.com/v1/scrape", {
  method: "POST",
  headers: {
    Authorization: "Bearer rps_live_your_key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ url: "https://www.reddit.com/r/.../comments/..." }),
});
const post = await res.json();

JSON response example

Every scrape returns the same shape, regardless of the source:

{
  "title": "string",
  "author": "string",
  "created_utc": 1700000000,
  "num_comments": 256,
  "score": 1500,
  "permalink": "https://www.reddit.com/r/.../comments/...",
  "image_url": "https://...jpg | null",
  "thumbnail_url": "https://...jpg | null",
  "body": "post text",
  "comments": [
    {
      "author": "string",
      "body": "string",
      "score": 120,
      "id": "t1_abc123",
      "parent_id": "t3_xyz789",
      "link_id": "t3_xyz789",
      "permalink": "https://www.reddit.com/...",
      "created_at": "2026-03-16 13:44:50.000+00"
    }
  ]
}

Comments come back as a flat list — rebuild the reply tree from id and parent_id.

CSV export

Every scrape is saved to your durable history. Add ?format=csv to the history endpoints for a spreadsheet-ready download instead of JSON.

curl "https://api.ugcscraper.com/v1/history?format=csv" \
  -H "Authorization: Bearer rps_live_your_key"

Errors

A failed request returns a plain, human-readable error message with an HTTP status code and a reference id you can quote if you need help — never internal implementation detail. Common cases: a malformed or non-Reddit URL (400), an invalid or inactive API key (401/403), a rate limit (429), or a temporary extraction failure (502). Rate-limited and failed requests never consume your monthly quota.

Rate limits & usage

Each successful response includes headers reporting cache status, latency, and your remaining quota, so you can monitor usage without a separate call:

X-RPS-Cache: MISS
X-RPS-Latency-Ms: 842
X-RPS-RateLimit-Remaining: 999

Only successful posts count toward your monthly quota — cache hits are included, and failed or blocked pulls are free. There's also a short burst limit per key to keep the API fair under a traffic spike.

Pricing

Free: 1,000 successful posts/month, $0. Pro: 50,000/month, $99. Scale: 500,000/month, $799. Every tier gets the same schema, fallback, and CSV export — higher tiers add durable history, higher burst limits, and priority support. See the full breakdown and start free on the pricing section of the homepage.

Reddit Scraper API FAQ

Do I need a Reddit developer account to use this API?

No. You create a UGC Scraper account and get an API key. There is no Reddit OAuth app, developer approval, or Reddit credentials involved.

What format does the API return?

JSON by default. The history endpoints also support ?format=csv for a spreadsheet-ready export.

Is there a free tier?

Yes — 1,000 successful posts per month on the Free plan, with the same schema and fallback behavior as paid plans.

What happens if a request fails?

You get a clear error and a reference id to quote if you contact support. Failed requests don't count against your monthly quota.

Can I use this from Python or Node.js, not just cURL?

Yes — it's a plain REST API over HTTPS, so any HTTP client works. Examples for cURL, Python, and Node.js are below, and a small Python helper package is also available.

Related guides

Start scraping Reddit

Free tier, no credit card, live in about two minutes.

Get your API key