Reddit User Scraper
Pull what a Reddit user has posted, what they've commented, or their public profile (karma, account age, and trophies) as clean, consistent JSON.
What you're collecting
"Scrape a user" can mean three different things: what they've posted, what they've said in comments across other people's posts, or who they are: karma, account age, trophies. UGC Scraper treats these as three separate, purpose-built endpoints rather than one bundle you have to pick fields out of.
A user's submitted posts
POST /v1/user returns up to 100 of a user's own submitted posts as summaries, the same shape as a subreddit listing.
cURL
curl -X POST https://api.ugcscraper.com/v1/user \
-H "Authorization: Bearer rps_live_your_key" -H "Content-Type: application/json" \
-d '{"target":"spez","limit":25}'Python
import requests
r = requests.post(
"https://api.ugcscraper.com/v1/user",
headers={"Authorization": "Bearer rps_live_your_key"},
json={"target": "spez", "limit": 25},
)
posts = r.json()
for post in posts["items"]:
print(post["title"], post["score"])Node.js
const res = await fetch("https://api.ugcscraper.com/v1/user", {
method: "POST",
headers: {
Authorization: "Bearer rps_live_your_key",
"Content-Type": "application/json",
},
body: JSON.stringify({ target: "spez", limit: 25 }),
});
const posts = await res.json();
for (const post of posts.items) {
console.log(post.title, post.score);
}A user's comments, with post context
POST /v1/user/comments returns that user's own comments, each paired with the title and body of the post it was posted on, so you don't have to make a second call to know what they were replying to. Supports an after/before Unix-timestamp cursor for paging through a large comment history. See the Reddit Comment Scraper page for the full output shape.
A user's public profile
POST /v1/user/profile returns the public profile fields Reddit exposes: karma, account age, admin/premium/ verified-email status, trophy case, and their moderator-of list (when not hidden by the user's own privacy setting).
cURL
curl -X POST https://api.ugcscraper.com/v1/user/profile \
-H "Authorization: Bearer rps_live_your_key" -H "Content-Type: application/json" \
-d '{"target":"spez"}'Python
import requests
r = requests.post(
"https://api.ugcscraper.com/v1/user/profile",
headers={"Authorization": "Bearer rps_live_your_key"},
json={"target": "spez"},
)
profile = r.json()
print(profile["total_karma"], profile["is_mod"])Node.js
const res = await fetch("https://api.ugcscraper.com/v1/user/profile", {
method: "POST",
headers: {
Authorization: "Bearer rps_live_your_key",
"Content-Type": "application/json",
},
body: JSON.stringify({ target: "spez" }),
});
const profile = await res.json();
console.log(profile.total_karma, profile.is_mod);{
"username": "spez",
"post_karma": 184021,
"comment_karma": 756248,
"total_karma": 940269,
"created_utc": 1118030400,
"is_admin": true,
"has_verified_email": true,
"is_premium": true,
"trophies": ["15-Year Club", "Verified Email", "Reddit Premium", "..."],
"moderator_of": null,
"is_mod": true
}moderator_of is null when the account moderates somewhere but has hidden the list; is_mod stays true either way, so "hidden" and "moderates nothing" (an empty list) stay distinguishable.
Not available
Private fields Reddit itself never exposes publicly (birthdate, email, phone number, payment info, private messages, saved/hidden content) for any account, not just this one. None of that is fabricated or guessed; it's simply absent.
Practical use cases
- Moderator/community research: see who's active and moderating in the communities you track.
- Account verification signals: karma and account age as a lightweight trust signal before engaging with an account programmatically.
- Contributor analysis: pair a user's post history with their comment history to understand one account's full footprint in a research dataset.