Reddit Posts & Feeds V2 — Types, Home Feed, State Controls
Pricing
$1.99 / 1,000 results
Reddit Posts & Feeds V2 — Types, Home Feed, State Controls
Three V2 reads on posts and your home feed: 1) allowed post types per subreddit (anonymous), 2) personalized home feed sorted Best/Hot/New/Top/Controversial/Rising, 3) state controls on your own posts (save / hide / nsfw / spoiler / pin / delete and 14 more). 1 anonymous + 2 saved-account.
Pricing
$1.99 / 1,000 results
Rating
5.0
(2)
Developer
Red Crawler
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Reddit Posts & Feeds V2
Three V2 reads on Reddit posts and your home feed:
- Allowed Post Types — which post types a subreddit accepts (anonymous, no account needed)
- Home Feed — your personalized home-feed posts, sorted any way you want (bearer required)
- Post State Controls — apply 20 different state actions to one of your own posts:
save / hide / nsfw / spoiler / pin / delete / update / send_replies / follow / brand / reminderplus their inverses (bearer required)
The first endpoint is anonymous — no Reddit account, no proxy required. The other two reuse a Reddit account you've already saved in the Reddit Vault actor (or you can paste a Token V2 + matching proxy directly).
Pick an endpoint, fill the matching section, hit Start.
What you can fetch / change
The subreddit field accepts a name in any of these formats — paste whichever you have:
- raw name —
pics - prefixed —
r/pics - subreddit URL —
https://www.reddit.com/r/pics - old-Reddit URL —
https://old.reddit.com/r/pics
Public endpoints (no Reddit account needed)
1. Allowed Post Types — what kinds of posts a subreddit accepts
Returns the post-type policy for a subreddit. Every sub can independently enable / disable each post type via its Allowed posts settings — this endpoint surfaces the result.
Inputs:
- Subreddit (required)
Returns: booleans for isTextPostAllowed, isImagePostAllowed, isLinkPostAllowed, isVideoPostAllowed, isGalleryPostAllowed, isPollPostAllowed, isAmaPostAllowed, isCrosspostAllowed, plus a allowedPostTypes summary list.
Use it when: building a posting UI that auto-disables the wrong types per sub, pre-flighting before bulk posting (skip subs that won't accept your content), auditing which subs allow polls / videos / etc.
Example
Input
{"endpoint": "post_types","post_types_subreddit": "AskReddit"}
Output (one dataset record)
{"endpoint": "post_types","subreddit": "AskReddit","__typename": "Subreddit","allAllowedPostTypes": ["TEXT", "SPOILER"],"isCrosspostingAllowed": false,"isPredictionAllowed": false,"amaSettings": { "postPermissions": "OFF" },"rate_limit_used": 1,"rate_limit_remaining": 1799,"rate_limit_reset_at": "2026-05-13T18:00:00Z"}
Reddit returns the post-type policy as the
allAllowedPostTypesenum list (TEXT,LINK,IMAGE,VIDEO,GALLERY,POLL,SPOILER, etc.). Subs that opt out of crossposts or AMAs haveisCrosspostingAllowed: false/amaSettings.postPermissions: "OFF".
Bearer-required endpoints (need a Reddit account)
These two endpoints require authentication. Fill the Reddit credentials section at the bottom of the input form (see Credentials below).
2. Home Feed — your personalized home-page posts
Returns the posts Reddit shows on your home feed (the one you see when logged in at reddit.com/). Reddit personalizes this based on your subscriptions, follows, and interaction history.
Inputs:
- Sort —
best,hot,new,top,controversial,rising(defaultbest) - Time filter —
hour,day,week,month,year,all(only applies when sort istoporcontroversial) - Limit — 1 to 1250 (default 100). Auto-paginates server-side.
Returns: post records with title, body, score, comment count, created timestamp, subreddit, post URL, thumbnail, vote state, NSFW / spoiler / locked / stickied / archived flags, flair, media, author info — one dataset row per post.
Use it when: mirroring your personal home feed into a dashboard, exporting the posts Reddit recommends to you, training models on what your account actually sees, building "what's new in my subs" digests.
Example
Input
{"endpoint": "home_feed","home_feed_sort": "best","home_feed_limit": 3,"credentialSource": "vault","accountName": "main"}
Output (one dataset record per post — first record shown, truncated)
{"endpoint": "home_feed","__typename": "RichtextRecommendationContextCell","id": "1t9rspp","name": "t3_1t9rspp","title": "Finally joined Reddit after years of hearing about it 😅","authorName": "u/[deleted]","score": 8,"commentCount": 5,"createdAt": "2026-05-11T03:41:08.501000+0000","voteState": "NONE","detailsString": "r/redditdev","detailsLink": "redditdev","iconPath": "https://b.thumbs.redditmedia.com/...png","iconShape": "ROUND","isJoinButtonShown": true,"joinSubredditId": "t5_2qizd","isVisited": false,"text": "Hey everyone 👋 I recently started exploring the Reddit API and wanted to learn more...","isRead": false,"isScoreHidden": false,"shareCount": 5,"groupRecommendationContext": {"typeIdentifier": "user_to_post","richText": "{\"document\":[{\"c\":[{\"e\":\"text\",\"t\":\"Suggested for you\"}],\"e\":\"par\"}]}"}}
The home feed flattens Reddit's per-post cell stack — each row carries the title / preview / score / comment count, the resolved subreddit at
detailsString(e.g.r/redditdev), the personalization hint atgroupRecommendationContext, and the cell-level vote state atvoteState. Sethome_feed_limithigher to auto-paginate.
3. Post State Controls — apply an action to one of your own posts
Action endpoint (writes state to your own post). Apply any of 20 state-control actions: save, hide, mark NSFW, mark spoiler, follow comments, pin to profile, set reminder, toggle inbox replies, mark as brand-affiliate, delete, update body — plus the inverse (unsave, unhide, unnsfw, unspoiler, unfollow, unpin, no_reminder, no_replies, unbrand).
Inputs:
- Post ID (required) — accepts
t3_abc123, rawabc123, or a full Reddit post URL - Action (required) — one of:
save,unsave— Reddit's "save for later"hide,unhide— hide from your feednsfw,unnsfw— toggle NSFW flagspoiler,unspoiler— toggle spoiler flagfollow,unfollow— follow comments / replies on this postbrand,unbrand— brand-affiliate disclosure flagpin,unpin— pin to your profile (max 4 pinned posts)reminder,no_reminder— Reddit's "remind me later"send_replies,no_replies— toggle inbox notifications for repliesdelete— permanently delete the postupdate— edit the post body (requires Content field)
- Content (only used when action =
update) — the new markdown body
Returns: success: true, action, post_id, plus any structured response Reddit returned.
Use it when: building post-management automation (auto-save threads matching a query, auto-pin a sticky to a fresh-account profile, bulk-NSFW your back-catalog, scheduled-edit a stale post, cleanup-delete old posts).
Action endpoint, not a scraper. Each run modifies one post — no dataset bulk action. For bulk-saving / bulk-deleting, schedule multiple runs with the Apify Scheduler.
Example (save action shown — the output shape is the same for every action; update echoes the new body in the response payload, pin returns the updated pin slot, etc.)
Input
{"endpoint": "post_state","post_state_action": "save","post_state_post_id": "1syw2sd","credentialSource": "vault","accountName": "main"}
Output (one dataset record)
{"endpoint": "post_state","success": true,"action": "save","post_id": "1syw2sd","result": {"updatePostSaveState": { "ok": true, "errors": null }},"rate_limit_used": 3,"rate_limit_remaining": 1797,"rate_limit_reset_at": "2026-05-13T18:00:00Z"}
Credentials
The two bearer-required endpoints (Home Feed, Post State Controls) need a Reddit Token V2 cookie + the proxy that minted it. The Allowed Post Types endpoint ignores credentials entirely — leave the section blank for that one.
Credential lifetimes
| Credential | Lifetime | When to refresh |
|---|---|---|
Token V2 (token_v2 cookie) | ~24 hours | Daily — or save a Reddit Session in the vault and let it auto-refresh |
Reddit Session (reddit_session cookie) | ~180 days | Roughly twice a year, or when a run reports unauthorized |
How to extract these from your browser: open Reddit in Chrome / Brave / Edge / Firefox, then DevTools → Application → Cookies →
https://www.reddit.com. Filter bytoken_v2orreddit_sessionand copy the Value column.
You have two options:
Option A — Use a saved account (recommended)
- Run the Reddit Vault actor once to store a Reddit account under a name you choose (e.g.
main,alt-account,burner1). The vault encrypts the Token V2 + matching proxy and stores them keyed by name. If you save a long-livedreddit_sessioncookie alongside it, the vault auto-refreshes the Token V2 for you (~180 days). - In this actor, set Credential source = Use saved account (vault) and put the same name in Saved account name.
- Done — Token V2 + proxy load automatically on every run.
Option B — Paste Token V2 + proxy directly
For one-off runs without setting up the vault:
- Set Credential source = Paste Token V2 + proxy.
- Paste your Reddit
token_v2cookie value (eyJ...) into Token V2. - Paste the matching proxy in
ip:port:user:passformat into Proxy.
Critical: Reddit IP-binds Token V2 cookies. The proxy MUST be the exact same IP that originally minted the Token V2 — otherwise Reddit returns 401 on every bearer call. Both fields are stored encrypted by Apify (isSecret: true).
How to run
- Pick an endpoint in the "What to do" dropdown at the top. The anonymous endpoint (Allowed Post Types) is at the top of the list; bearer-required endpoints (Home Feed, Post State Controls) follow.
- Open the matching section below it and fill its fields.
- If your endpoint is bearer-required, fill the Reddit credentials section at the bottom.
- Click Start.
Each endpoint section is independent — fields outside your chosen section are ignored, so you can leave them as-is between runs.
Output
Results are pushed to the actor's default dataset. View them as a table or download as JSON / CSV / Excel / XML.
- Allowed Post Types pushes one record per run.
- Home Feed pushes one record per post (up to your
limit). - Post State Controls pushes one record per run (success or failure).
The most useful columns are placed first (endpoint, id, name, subreddit, title, etc.) so the dataset Table view is readable without horizontal scrolling.
Common edge cases
- Empty home feed — brand-new accounts with no subscriptions get a thin or empty home feed. Subscribe to a few subs first.
- Time filter ignored — only
topandcontroversialsort respect time filter; onbest/hot/new/risingit's silently dropped. - Pin limit — Reddit caps pinned posts at 4 per profile. Trying to pin a 5th returns an error.
- Update on a deleted post — returns success but the post body remains "[deleted]". You can't un-delete.
- NSFW / spoiler on a non-self post — works on link/image/video too. The flag attaches to the post, not the body.
- Action on someone else's post — Post State Controls only works on your own posts. Trying to delete or update another user's post returns 403.
- Bearer expired — Reddit Token V2 cookies live ~24 h. If you get a
bearer_expiredresponse, refresh the Token V2 in your vault entry (or paste a fresh one in manual mode) and re-run.
Why this actor is fast
- Speed — 1–3 seconds per call. Pure HTTP to Reddit's API. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Competing browser-based scrapers typically take 15–60 seconds per call.
- Reliability — zero browser flakiness. No headless-Chromium crashes. No JS-render timeouts. No captcha pages.
- Footprint — under 100 MB RAM per run. Most browser-based scrapers need 1–4 GB. Built for reliability behind the scenes — just paste your inputs and run.
Status & error reference
Run status (Apify-side, shown on the run page)
| Status | Apify message | Meaning | What to do |
|---|---|---|---|
| "Actor succeeded with N results in the dataset" | Run finished. Some or zero records pushed. | Open the dataset to view results. | |
| "The Actor process failed…" | Validation error or upstream Reddit fault. | Check the run log. You are NOT charged for failed runs. | |
| "The Actor timed out. You can resurrect it with a longer timeout to continue where you left off." | Run exceeded its timeout. | Re-run with a smaller limit or fewer inputs. | |
| "The Actor process was aborted. You can resurrect it to continue where you left off." | You stopped the run manually. | No charge for unpushed results. |
Common in-run conditions (visible in run log)
| Condition | Cause | Result |
|---|---|---|
| Empty result set | Feed has no posts matching the inputs. | Run SUCCEEDED, 0 records, no charge. |
| Private / quarantined subreddit | Reddit hides these from anonymous reads. | Run SUCCEEDED, those rows skipped. |
| Banned subreddit | Subreddit has been banned by Reddit. | Run SUCCEEDED, 0 records for that input. |
| Validation error: required input missing | Required parameter not provided. | Run FAILED immediately, no charge. |
Pricing
Pay-per-result. You're only charged for records actually pushed to the dataset — failed runs and validation errors cost nothing.
| Event | Trigger | Price (per 1,000) |
|---|---|---|
result | Each post / state row pushed to the dataset | $1.99 |
A 100-post Home Feed run = 100 rows. A single Post State action = 1 row. An Allowed Post Types lookup = 1 row.
Need a different shape of data?
- Reddit Vault — save Reddit accounts once, reuse them by name across every Reddit actor (free)
- Reddit Posting V2 — create posts (text, link, image, gallery, video, poll, crosspost)
- Reddit Manage Posts V1 — additional post management actions (lock, sticky, distinguish, etc.)
- Reddit Feeds V2 — subreddit / popular / news / r/all / discovery feeds
- Reddit Users V2 — user profiles + Profile Feeds (saved / hidden / upvoted / downvoted)
- Reddit Subreddits V2 — subreddit info, rules, leaderboards, settings
- Reddit Search V2 — search posts / comments / users / subreddits by keyword
- Reddit Bulk Scrape V2 — bulk lookups by ID (up to 1500 per run)
All of them accept the same accountName field, so saving credentials in Reddit Vault unlocks them all.
Support and feedback
Found a bug, want a feature, hit a Reddit error code we don't translate clearly? Open an issue via the actor's Apify Console feedback link, or reach out at the RedCrawler support channel.
Reddit Posts & Feeds V2 is part of the RedCrawler family of Reddit actors. RedCrawler is independent — not affiliated with, endorsed by, or sponsored by Reddit, Inc. Use it within Reddit's API terms and within each subreddit's posting rules.

