Reddit Comment Scraper

Extract full Reddit comment threads — every reply, its author, score, timestamp, and position in the thread — as one consistent JSON schema, or a user's comments across every post they've replied to.

What you're collecting

Reddit comments carry more structure than a flat list of text: who wrote each reply, how it scored, when it was posted, and which comment (or the post itself) it replied to. A comment scraper that drops that nesting turns a discussion into an unordered pile of sentences — most analysis (sentiment over a thread, tracking a specific reply chain, ranking by score) needs the structure intact.

How UGC Scraper handles it

POST /v1/scrape with a post URL returns the post plus its full comment list. Each comment carries id and parent_id (a t3_ prefix means it replies to the post directly, a t1_ prefix means it replies to another comment), so you can reconstruct the reply tree client-side from a flat array — no recursive pagination required on your end.

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()
for c in post["comments"]:
    print(c["author"], c["score"], c["body"][:80])

One user's comments, across posts

To pull what one account has said — not one thread — POST /v1/user/comments returns that user's own comments, each paired with the title and body of the post it was posted on. It supports an after/before Unix-timestamp cursor for paging through a large comment history.

curl -X POST https://api.ugcscraper.com/v1/user/comments \
  -H "Authorization: Bearer rps_live_your_key" -H "Content-Type: application/json" \
  -d '{"target":"some_username","limit":25}'

Output structure

{
  "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"
}

Practical use cases

  • Sentiment and text analysis — bulk comment bodies with score and timestamp, ready for a linguistics or NLP pipeline without a separate parsing step.
  • LLM context and RAG— feed a thread's comments into a model to summarize what people actually said, with the reply structure preserved.
  • Monitoring one account — track what a specific user posts across subreddits over time via /v1/user/comments.

Limitations

Very large threads (many thousands of comments) may take longer to return in full than a small one. If a comment count is sourced from a listing rather than the full comment list, the response marks num_comments_estimated: true rather than presenting a guess as an exact number.

Reddit comment scraper FAQ

Do I get the full comment thread, or just top-level comments?

The full thread. Every comment returned includes its parent_id and link_id, so you can rebuild the complete reply tree, not just the first level.

Can I get a user's own comments across many posts?

Yes — POST /v1/user/comments returns a user's comments paired with the title and body of the post each one was posted on, with a Unix-timestamp cursor (after/before) for paging through a large history.

Is the comment count always exact?

When a comment count comes from a source that only reports the number (not the full comments), the response flags num_comments_estimated so you know it's a lower bound rather than presenting an estimate as exact.

Can I export comments to a spreadsheet?

Yes — your stored scrape history exports as CSV with one row per comment (or one row per post), via ?format=csv on the history endpoints.

Related guides

Start pulling comment threads

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

Get your API key