Reddit User Activity Scraper - Posts and Comments
Pricing
from $2.13 / 1,000 results
Reddit User Activity Scraper - Posts and Comments
Reads a Reddit account's public activity feed, which carries posts and comments interleaved, and saves one row per record stating which kind it is. The feed can be narrowed to posts only or comments only. Long histories page automatically and a run resumes where an earlier one stopped.
Pricing
from $2.13 / 1,000 results
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Reddit User Activity Scraper
The Actor reads a Reddit account's public activity feed and saves a structured record for every post
and every comment in it. Reddit publishes that activity as one interleaved stream rather than as two
lists, and this Actor returns it the same way: each saved row states in kind whether it is a post
or a comment. The feed can be narrowed to one of the two, with the consequence described below. No
Reddit account, application, or API credential is involved.
Accepted input
| Field | Required | Default | Notes |
|---|---|---|---|
username | yes | — | A bare name (spez), a prefixed name (u/spez), or a copied reddit.com profile link. |
include | no | all | all, posts, or comments. See the section below before choosing anything but all. |
maxItems | no | 100 | Total records to save across the whole run. 0 removes the bound. |
after | no | — | A continuation point from an earlier run, or the fullname of a record already collected. |
{"username": "u/spez","include": "all","maxItems": 100}
Response fields
The saved columns are the union of the two record shapes, and each row fills in the ones its kind uses.
A post row carries kind, id, fullname, permalink, url, title, subreddit,
subreddit_prefixed, subreddit_id, author, author_id, author_icon, created_at, score,
upvote_ratio, comment_count, award_count, domain, content_url, post_type, flair,
flair_url, thumbnail, media, text, nsfw, spoiler, locked, and archived.
A comment row carries kind, id, fullname, subreddit, body, score, created_at,
permalink, and the tree columns post_fullname, parent_fullname, depth, position,
parent_positions, is_deleted, and is_collapsed.
{"kind": "profile_comment","id": "p44qdpd","fullname": "t1_p44qdpd","subreddit": "AskReddit","body": "This is the comment text.","score": 42,"created_at": "2026-08-14T09:41:07.000Z","permalink": "/r/AskReddit/comments/1abcdef/example_title/p44qdpd/","depth": 0,"parent_fullname": null}
Two of those columns behave differently here from how they behave elsewhere, and the difference is a
property of the feed rather than of the data. depth is 0 on every comment row and
parent_fullname is null, because this feed spans many posts and there is no single tree for a
comment to sit at a depth in. The Reddit Comment Tree Scraper returns those values populated,
because it reads one tree.
Choosing include, and what it costs
Reddit serves one feed per account with posts and comments together and offers no way to ask it for
only one of them. posts and comments are therefore applied to the feed after it has been read,
and the consequence is visible rather than hidden: an active account's feed runs on the order of one
post to ten comments, so a posts run reads a large stretch of feed for each row it saves and can
finish below maxItems while the account still has more to give.
The run log distinguishes the two endings — the account running out, and the reading stopping. A run whose requests stop returning matching records while the feed continues is ended deliberately rather than allowed to read indefinitely, and the log says so and prints the continuation point so the run can be picked up later.
For a comment history specifically, the Reddit User Comment History Scraper reads a different
feed that Reddit dedicates to comments. It returns comments only, without filtering, and does not
have this behaviour at all. Prefer it over include: "comments" here.
Pagination, limits, and resuming
maxItems bounds records saved, not requests made. Setting it to 0 removes the bound and the run
continues until the feed reports that it has ended.
A run that stops with more available writes its continuation point into the run log, and passing
that value as after continues from that record. The continuation point is the last record saved,
whichever kind it was, and that detail is load-bearing: this feed's position is the last item, and
on an active account the last item is usually a comment. Supplying a post's id when the feed expects
an item's fullname does not fail — it re-serves the same stretch of feed indefinitely. Using the
value the run log prints avoids that entirely, and the after field accepts either prefix for
callers building one by hand.
Fields that are frequently absent
media, text, and nsfw are empty on most post rows for ordinary reasons: text is the body of a
self post and link, image, and video posts have none; media is populated only where the feed
carries the attachment. body is null on a comment Reddit reports as deleted, which keeps its
place in the feed and is saved with is_deleted set rather than dropped.
nsfw has three states. true and false are Reddit's report; null means the feed said nothing
either way, and is an absence of information rather than a statement that the record is safe for
work. No NSFW filter is offered, because filtering on a field that is frequently unknown produces a
set that looks filtered without being filtered.
Failures and partial results
An unusable username is rejected before any request is made, with a message naming what was
received. A request that fails ends the run; records already saved remain in the dataset and the
continuation point is in the log. Fields absent from the feed are returned as null rather than
omitted, so the column set is the same in every record.
Cost
Charging is per record saved to the dataset, plus the platform's one-off Actor start event. A
filtered run is charged for the rows it saves and not for the feed it read past to find them, so
include: "posts" costs the same per saved post as include: "all" does.
Related Actors
- Reddit User Comment History Scraper — comments only, from the feed Reddit dedicates to them.
- Reddit Account Profile Scraper — karma, cake day, and description for the same account.
- Reddit Comment Tree Scraper — a full thread, with the depth and parent this feed cannot state.
Support
Questions, bug reports, and requests for a field that is not here yet: thenetaji@proton.me.