Reddit User Karma & Post History Extractor
Look up Reddit accounts by username for archive-wide post/comment/total karma, archived post and comment counts, first/last activity dates, and their public post and comment history with 30+ filters. No API key, login or proxy setup required.
Open in Apify Store$0.99 / 1K on Free
Short answer
Reddit User Karma & Post History Extractor is an Apify Store Actor for Reddit data that returns 9 published output fields, including title, body, score, url. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 37 input settings, none required. It covers 5 of the 7 core Reddit fields this site tracks. Last updated Nov 13, 2026.
From the public Store listing and published build schema, synced 2026-11-13.What it returns
9 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
dataTypeusernametitlebodysubreddit_prefixedscorenum_commentsurlcreated_at
Not in the schema among the core Reddit fields: author, subreddit. The field matrix shows which other tools return them.
How it differs from the other Reddit Actors
Every field it publishes also appears in at least one of the other 10 catalogue Actors for Reddit with a schema, so pick on price, input options and the fields below.
Pick another Actor if you need
| Actor | Fields it adds | Price / 1K |
|---|---|---|
| Reddit Comment Thread Scraper with Score & Keyword Filters | author, depth, repliesCount, is_op | $0.99 |
| Reddit Subreddit Profile, Rules & Post Filter Scraper | rule_name, name, author, weekly_active_users | $0.99 |
| Reddit Keyword Search with Advanced Filters | author, upvote_ratio, dataFreshness | $0.99 |
| Reddit Multi-Mode Scraper for Posts, Comments & Profiles | author, commentCount | $0.99 |
| Reddit Multi-Mode Scraper with Advanced Pro Filters | author, content | $0.99 |
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| usernames | array | No | – | List of Reddit usernames to scrape. Accepts bare names (spez), u/ prefixed (u/spez) or profile URLs. |
| includeProfileInfo | boolean | No | true | Emit a user_profile record with archive-wide post/comment/total karma, archived post/comment counts, first/last activity dates, and any profile fields the public profile page exposes. |
| sections | array | No | ["posts"] | Which parts of the user's history to scrape. Overview returns posts and comments merged newest-first (or by the selected sort). |
| maxPosts | integer | No | 100 | Maximum number of matching posts to emit per user. |
| maxComments | integer | No | 100 | Maximum number of matching comments to emit per user. |
| sort | string | No | newest | Newest or oldest first by creation time. Top ranks the fetched items by score (the archive itself only sorts by date, so this is a ranking within the most recent items up to the cap). |
| timeFilter | string | No | all | Only keep posts/comments created within this rolling window (UTC). Applied as a date window for every sort; an explicit 'postedAfter' later than the window wins. |
| includeNSFW | boolean | No | false | Include NSFW posts in the user's history. |
| onlyWithFlair | boolean | No | false | Keep only posts that have a link flair set. Has no effect on comments (comments don't carry link flair). |
| subreddits | array | No | – | Only keep posts/comments made in these subreddits (case-insensitive). Accepts bare names (python), r/ prefixed (r/python), or subreddit URLs. Leave empty to include every subreddit in the user's history. |
Show the other 27 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| keyword | string | No | – | Only keep posts/comments whose title, self-text or comment body contains this text (case-insensitive substring match). Leave empty to disable. |
| titleContains | string | No | – | Only keep posts whose title contains this text (case-insensitive substring match). Has no effect on comments. Leave empty to keep all titles. |
| contentContains | string | No | – | Only keep self (text) posts whose body contains this text (case-insensitive substring match). Link/image/video posts have no body text and are excluded when this is set. Has no effect on comments. Leave empty to keep all posts. |
| flairContains | string | No | – | Only keep posts whose link flair text contains this text (case-insensitive substring match). Has no effect on comments. Leave empty to keep all flairs. |
| authorFlairContains | string | No | – | Only keep posts whose author flair text contains this text (case-insensitive substring match). Has no effect on comments. Leave empty to keep all. |
| domain | string | No | – | Only keep posts whose link domain contains this text (case-insensitive, e.g. 'youtube.com' or 'self.python'). Has no effect on comments. Leave empty to keep all domains. |
| distinguished | string | No | – | Only keep posts distinguished by Reddit as moderator, admin or special (e.g. Reddit-team) posts, or only regular (non-distinguished) posts. Has no effect on comments. Leave unset to keep all posts. |
| minAwards | integer | No | – | Only keep posts with at least this many total awards. Has no effect on comments. Leave unset to keep all posts. |
| onlyOriginalContent | boolean | No | false | When enabled, only posts the author tagged as original content are kept. Has no effect on comments. |
| excludeArchived | boolean | No | false | When enabled, posts that Reddit has archived (locked from further voting/commenting after 6 months) are dropped from the results. Has no effect on comments. |
| excludeKeywords | array | No | – | Drop posts whose title, self-text body or flair contains any of these keywords or phrases (case-insensitive substring match) — useful for filtering out megathreads, giveaways or spam boilerplate. Has no effect on comments. Leave empty to keep all posts. |
| minContentLength | integer | No | – | Only keep self (text) posts whose body is at least this many characters long. Link/image/video posts have no body and are excluded when this is set. Has no effect on comments. Leave unset to keep all lengths. |
| maxContentLength | integer | No | – | Only keep self (text) posts whose body is at most this many characters long. Has no effect on comments. Leave unset to keep all lengths. |
| postType | string | No | – | Keep only posts of the selected content type. Leave unset to keep all types. Has no effect on comments. |
| minScore | integer | No | – | Only keep posts/comments with a score at or above this value. Leave unset to keep all scores. |
| maxScore | integer | No | – | Only keep posts/comments with a score at or below this value. Useful for finding overlooked/low-visibility items. Leave unset to keep all scores. |
| minPostComments | integer | No | – | Only keep posts that have at least this many comments (the post's own comment count — not to be confused with 'Maximum comments per user' above, which caps how many comment records are scraped). Has no effect on comments. |
| maxPostComments | integer | No | – | Only keep posts that have at most this many comments. Useful for finding under-discussed posts. Has no effect on comments. |
| minUpvoteRatio | number | No | – | Only keep posts whose upvote ratio (fraction of votes that are upvotes, 0-1) is at or above this value. Useful for filtering out controversial/divisive posts. Has no effect on comments. |
| excludeStickied | boolean | No | false | When enabled, posts pinned/stickied in their community are dropped from the results. |
| excludeRemoved | boolean | No | false | When enabled, posts removed by a moderator, Reddit, or deleted by their author (marker: removed_by_category) are dropped from the results. |
| excludeCrossposts | boolean | No | false | When enabled, posts that are crossposts from another subreddit are dropped, keeping only the user's original submissions. |
| excludeSpoilers | boolean | No | false | When enabled, posts marked as a spoiler by their author are dropped from the results. |
| excludeLocked | boolean | No | false | When enabled, posts with comments locked by a moderator are dropped from the results. |
| excludeDeletedAuthor | boolean | No | false | When enabled, posts whose author account was deleted (shown as [deleted]/[removed]) are dropped from the results. |
| postedAfter | string | No | – | Only keep items created on or after this date (UTC). |
| postedBefore | string | No | – | Only keep items created on or before this date (interpreted as the end of that day, UTC). |
Example input
Built from the input form's published example values and defaults.
{
"usernames": [
"spez"
],
"includeProfileInfo": true,
"sections": [
"posts"
],
"maxPosts": 3,
"maxComments": 3,
"sort": "newest",
"timeFilter": "all",
"includeNSFW": false,
"onlyWithFlair": false,
"onlyOriginalContent": false,
"excludeArchived": false,
"excludeStickied": false,
"excludeRemoved": false,
"excludeCrossposts": false,
"excludeSpoilers": false,
"excludeLocked": false,
"excludeDeletedAuthor": false
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"usernames": [
"spez"
],
"includeProfileInfo": True,
"sections": [
"posts"
],
"maxPosts": 3,
"maxComments": 3,
"sort": "newest",
"timeFilter": "all",
"includeNSFW": False,
"onlyWithFlair": False,
"onlyOriginalContent": False,
"excludeArchived": False,
"excludeStickied": False,
"excludeRemoved": False,
"excludeCrossposts": False,
"excludeSpoilers": False,
"excludeLocked": False,
"excludeDeletedAuthor": False
}
run = client.actor("xyrelith-data/reddit-user-karma-and-post-history-extractor").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"usernames": [
"spez"
],
"includeProfileInfo": true,
"sections": [
"posts"
],
"maxPosts": 3,
"maxComments": 3,
"sort": "newest",
"timeFilter": "all",
"includeNSFW": false,
"onlyWithFlair": false,
"onlyOriginalContent": false,
"excludeArchived": false,
"excludeStickied": false,
"excludeRemoved": false,
"excludeCrossposts": false,
"excludeSpoilers": false,
"excludeLocked": false,
"excludeDeletedAuthor": false
};
const run = await client.actor("xyrelith-data/reddit-user-karma-and-post-history-extractor").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/xyrelith-data~reddit-user-karma-and-post-history-extractor/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"usernames":["spez"],"includeProfileInfo":true,"sections":["posts"],"maxPosts":3,"maxComments":3,"sort":"newest","timeFilter":"all","includeNSFW":false,"onlyWithFlair":false,"onlyOriginalContent":false,"excludeArchived":false,"excludeStickied":false,"excludeRemoved":false,"excludeCrossposts":false,"excludeSpoilers":false,"excludeLocked":false,"excludeDeletedAuthor":false}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=xyrelith-data/reddit-user-karma-and-post-history-extractor",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among Reddit routes
It ranks 9 of 11 catalogue Actors for Reddit on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Reddit Comment Thread Scraper with Score & Keyword Filters 11 output fields, pay per event 6 of 7 core fields
$0.99 / 1K - 2 Reddit Subreddit Profile, Rules & Post Filter Scraper 12 output fields, pay per event 5 of 7 core fields
$0.99 / 1K - 3 Reddit Keyword Search with Advanced Filters 13 output fields, pay per event 5 of 7 core fields
$0.99 / 1K - 9 Reddit User Karma & Post History Extractor 9 output fields, pay per event 5 of 7 core fields
$0.99 / 1K - + 8 other Store tools, combined Reference only 7 of 7 core fields
from $1.15 / 1K - API Reddit Data API Limited access fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: Reddit Data API
Limited access. Reddit is moving public data access to its Developer Platform. RSS support ends November 13, 2026; new public API access requests stopped October 31, 2026; access for unregistered apps starts closing January 12, 2027; remaining public API access ends in March 2027.
Commercial use requires a data agreement. Pricing is not published as a public rate card.
Other Store tools for Reddit
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Reddit Scraper: Posts, Comments, Subreddits & Search | 24 | $1.15 |
| Reddit Scraper | 120 | $2.00 |
| Reddit Subreddit Posts Scraper | 28 | $1.99 |
| Reddit Scraper | 12 | $2.00 |
| Reddit Post Comments Scraper | 29 | $2.99 |
What people use it for
- analyze account activity
- review post and comment history
Other catalogue Actors for Reddit
Reddit Comment Thread Scraper with Score & Keyword Filters
Scrape Reddit comment threads, nested replies included, with author, score, depth, and moderation flags, filtered by date, score, author, or…
Reddit Subreddit Profile, Rules & Post Filter Scraper
Scrape full community intelligence for any subreddit: description, subscriber count, active users, weekly activity, posting rules, wiki pages,…
Reddit Keyword Search with Advanced Filters
Search Reddit by keyword and filter the matches by subreddit, score, date range, NSFW status, and author before they reach your dataset.
Reddit Multi-Mode Scraper for Posts, Comments & Profiles
Pick one of five modes to pull subreddit posts, full comment threads, user profiles, keyword search results or curated community listings from…
Reddit Multi-Mode Scraper with Advanced Pro Filters
Scrape Reddit subreddit posts, post comment threads, and user profile posts, with any combination of modes in a single run. Filter by score, age,…
Reddit Subreddit Post & Comment Harvester
Pull posts from any subreddit with score, media, flairs, awards and moderation flags, plus optional nested comment threads. Filter by date, score,…
Similar Actors
Reddit User Profile & Post History Crawler Pro
Turn Reddit usernames or profile URLs into split karma, account-age and status-badge data, plus filterable post history with per-post awards,…
Reddit Keyword Monitor with Score & Karma Filters
Search Reddit by keyword for matching posts, comments, communities and accounts, with score, karma, flair, date and subreddit filters, Reddit's…
LinkedIn Post Comment & Reply Thread Extractor
Pull top-level comments from LinkedIn posts, with optional nested reply threads, author identity, reaction counts, and linked profiles found in…
LinkedIn Profile Engagement Timeline Scraper
Pull a LinkedIn profile's posts, reposts, comments, and reactions in one run, with the original post's author, text, and link attached to each…
LinkedIn Profile Feed Scraper with Likers & Commenters
Pull posts from a LinkedIn profile's activity feed or a direct post URL, with engagement counts, hashtags, media, and optionally the people who…
LinkedIn Trending Posts & Top Voices Feed Scraper
Pull LinkedIn's trending and top-performing posts by topic keyword, with reaction/comment/repost counts, a per-reaction-type breakdown, author…
Questions people ask
How much does Reddit User Karma & Post History Extractor cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Reddit User Karma & Post History Extractor return?
Its published output schema lists 9 fields: dataType, username, title, body, subreddit_prefixed, score, num_comments, url, created_at. A listed field is not guaranteed to be filled in every row.
What input does Reddit User Karma & Post History Extractor need?
No input is strictly required; the defaults run as is. Common settings: usernames, includeProfileInfo, sections, maxPosts, maxComments, sort.
What are the alternatives to Reddit User Karma & Post History Extractor for Reddit?
11 catalogue Actors cover Reddit. Close alternatives: Reddit Comment Thread Scraper with Score & Keyword Filters; Reddit Subreddit Profile, Rules & Post Filter Scraper; Reddit Keyword Search with Advanced Filters. The Reddit page compares all of them field by field.
How do I run Reddit User Karma & Post History Extractor from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("xyrelith-data/reddit-user-karma-and-post-history-extractor").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("xyrelith-data/reddit-user-karma-and-post-history-extractor").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/xyrelith-data~reddit-user-karma-and-post-history-extractor/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Reddit User Karma & Post History Extractor on Apify Store
- Published build with input and output schema (JSON)
- Reddit Data API documentation
Cite this page
Scraper Finder. "Reddit User Karma & Post History Extractor." https://scraperfinder.com/catalogue/reddit-user-karma-and-post-history-extractor/ (data checked 2026-11-13).
Run Reddit User Karma & Post History Extractor
$0.99 per 1,000 results. Paste the example input above, set your Reddit query, then export the dataset. Still choosing? Compare every Reddit route.