Reddit Voting V2 — Vote on Posts and Comments avatar

Reddit Voting V2 — Vote on Posts and Comments

Pricing

$1.99 / 1,000 results

Go to Apify Store
Reddit Voting V2 — Vote on Posts and Comments

Reddit Voting V2 — Vote on Posts and Comments

Cast upvotes, downvotes, or remove votes on any Reddit post or comment from a Reddit account you control.

Pricing

$1.99 / 1,000 results

Rating

0.0

(0)

Developer

Red Crawler

Red Crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Reddit Voting V2

Endpoints Auth Proxy Pricing

Two self-contained voting actions — upvote / downvote / clear your vote on any Reddit post or comment, on your saved account's behalf. One run = one vote = one dataset record.

Bring a Reddit Token V2 + matching proxy, or reuse a saved account from the Reddit Vault. Pick the action, paste the target, choose the direction, hit Start.


What you can do

The Post field accepts: full URL (https://reddit.com/r/sub/comments/1sys4r2/...), stripped ID (1sys4r2), or t3_ fullname (t3_1sys4r2). The Comment field accepts: full URL, stripped ID (ogv9p8c), or t1_ fullname (t1_ogv9p8c).

Both endpoints (Reddit account required)

1. Vote on Post — upvote, downvote, or clear your vote on a post

The standard post-vote action — applies an upvote, downvote, or removes your previous vote.

Input: post target (URL / ID / fullname) + vote direction (upvote / downvote / remove).

Returns: echoed action, vote direction, post fullname, account name, error info (null on success), bearer expiry, live per-account rate-limit counters (rate_limit, rate_used, rate_remaining, rate_reset_in_seconds).

Use it when: ranking your own content up, signal-boosting useful posts across communities you participate in, programmatic karma-flow audits, account-warmup pipelines, scheduled content curation.

remove clears your previous vote. If you'd already upvoted, remove undoes the upvote. If you hadn't voted at all, remove is a no-op (Reddit accepts it without error).

Example

Input

{
"operation": "vote_post",
"vote_post_id": "https://www.reddit.com/r/Wordpress/comments/1s4a4j6/",
"vote_post_direction": "upvote",
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one dataset record)

{
"success": true,
"operation": "vote_post",
"vote": "upvote",
"post_id": "t3_1s4a4j6",
"account_name": "motor_tip8865",
"error": null,
"error_kind": null,
"bearer_expires_at": "2026-05-15T11:42:18+00:00",
"rate_limit": 100,
"rate_used": 1,
"rate_remaining": 99,
"rate_reset_in_seconds": 599
}

2. Vote on Comment — upvote, downvote, or clear your vote on a comment

The standard comment-vote action — applies an upvote, downvote, or removes your previous vote on a comment.

Input: comment target (URL / ID / fullname) + vote direction (upvote / downvote / remove).

Returns: echoed action, vote direction, comment fullname, account name, error info (null on success), bearer expiry, live per-account rate-limit counters.

Use it when: rewarding helpful answers, downvoting low-quality replies in moderated communities, programmatic engagement tracking, comment-quality scoring pipelines, account-warmup automation.

Example

Input

{
"operation": "vote_comment",
"vote_comment_id": "t1_ogv9p8c",
"vote_comment_direction": "downvote",
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one dataset record)

{
"success": true,
"operation": "vote_comment",
"vote": "downvote",
"comment_id": "t1_ogv9p8c",
"account_name": "motor_tip8865",
"error": null,
"error_kind": null,
"bearer_expires_at": "2026-05-15T11:42:18+00:00",
"rate_limit": 100,
"rate_used": 1,
"rate_remaining": 99,
"rate_reset_in_seconds": 599
}

Credentials

Both endpoints need a signed-in Reddit account. Save it once in Reddit Vault and reuse the name forever, or paste a Token V2 + matching proxy inline for one-off runs.

Credential lifetimes

CredentialLifetimeWhen to refresh
Token V2 (token_v2 cookie)~24 hoursDaily — or save a Reddit Session in the vault and let it auto-refresh
Reddit Session (reddit_session cookie)~180 daysRoughly 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 by token_v2 or reddit_session and copy the Value column.

Token V2 cookie in DevTools

Reddit Session cookie in DevTools

  1. Run the Reddit Vault actor once with mode STORE, an account name (e.g. main), your Token V2 (or Reddit Session for auto-refresh), and the matching proxy.
  2. In this actor, set Credential source = Use saved account (vault) and Saved account name = main.
  3. Token V2 + proxy are pulled from the vault on every run. If you saved a Reddit Session, the Token V2 auto-refreshes whenever it expires.

Option B — Paste Token V2 + proxy inline

  1. Set Credential source = Paste Token V2 + proxy.
  2. Paste the eyJ… Token V2 cookie value (encrypted by Apify at rest).
  3. Paste the Proxy as ip:port:user:pass — must be the same IP that minted the Token V2 (Reddit IP-binds these cookies).

How to run

  1. ActionVote on Post or Vote on Comment.
  2. Fill the matching section (only the chosen action's section matters — the other is ignored).
  3. Pick a Vote direction (upvote / downvote / remove).
  4. Pick a Credential source and fill the matching vault or manual fields.
  5. Hit Start. One run = one vote = one row in the dataset.

Output

Every run pushes exactly one record to the run's default dataset. Success and failure both produce a row — the success field distinguishes them.

Front-loaded columnMeaning
successtrue if the vote was accepted by Reddit, false otherwise
operationvote_post or vote_comment
voteupvote, downvote, or remove
post_id / comment_idTarget fullname (t3_… or t1_…)
account_nameVault account name (or "manual" for inline credentials)
errorHuman-readable message on failure, null on success
error_kindShort error code (UNAUTHORIZED, RATELIMIT, THREAD_ARCHIVED, QUARANTINED, …), null on success
bearer_expires_atWhen the saved Token V2 expires (helps you spot upcoming refresh)
rate_limit / rate_used / rate_remaining / rate_reset_in_secondsLive per-account rate-limit counters from Reddit

Common edge cases

Edge caseCauseHow it surfaces
Bearer expiredSaved Token V2 past ~24 h, no vault session for auto-refreshRow with success: false, error_kind: UNAUTHORIZED. Re-save the account in Reddit Vault with a Reddit Session for auto-refresh.
Bearer minted on a different IPToken V2 was minted on a different proxy than the one you've paired with itRow with success: false, error_kind: UNAUTHORIZED. Re-mint the Token V2 on the proxy you'll use, save them as a pair.
Thread archivedPosts / comments older than 6 months — Reddit no longer accepts votesRow with success: false, error_kind: THREAD_ARCHIVED. Pick a non-archived target.
Quarantined subredditYour account hasn't opted in to the quarantined communityRow with success: false, error_kind: QUARANTINED. Open the subreddit in your browser as that account and accept the quarantine notice.
Reddit rate-limit hitPer-account write throttle reachedRow with success: false, error_kind: RATELIMIT. Wait — rate_remaining field tells you how many calls are left in the current window.
Vote silently droppedReddit accepts the vote but anti-spam zero-weights it (new account, datacenter proxy, suspicious fingerprint)Row with success: true — vote was accepted but score may not change. Warm the account up; switch to mobile / residential proxy.
Datacenter proxy zero-weightedReddit zero-weighted all datacenter-IP votes as of March 2026Vote accepted but doesn't affect score. Switch to mobile / residential proxy.
remove on no-existing-voteYou called remove but hadn't voted previouslyRow with success: true — Reddit treats this as a no-op, not an error.
Missing required inputForgot to paste the post / comment URLRun FAILED immediately, no row pushed, no charge.

Why this actor is fast

  • Speed — 1–3 seconds per vote, end-to-end. Pure HTTP to Reddit. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Competing browser-based actors 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 actors 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)

StatusApify messageMeaningWhat to do
Succeeded"Actor succeeded with N results in the dataset"Run finished, one record pushed.Open the dataset to view the result.
Failed"The Actor process failed…"Validation error or missing required input.Check the run log. You are NOT charged for failed runs.
Timed out"The Actor timed out. You can resurrect it with a longer timeout to continue where you left off."Run exceeded timeout (rare — votes are fast).Re-run; check proxy is reachable.
Aborted"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 and output record)

ConditionCauseResult
RATELIMIT from RedditPer-account vote throttle hit.Run SUCCEEDED, failure row with error_kind: RATELIMIT.
Bearer expired / invalidSaved Token V2 past ~24 h, no vault session for auto-refresh.Run SUCCEEDED, failure row with error_kind: UNAUTHORIZED.
Datacenter proxy zero-weightedReddit accepts the vote but silently drops it (March 2026 policy).Run SUCCEEDED, vote may not register on score.
THREAD_ARCHIVEDPost older than 6 months — votes no longer accepted.Run SUCCEEDED, failure row with error_kind: THREAD_ARCHIVED.
QUARANTINEDAccount hasn't opted in to the target quarantined sub.Run SUCCEEDED, failure row with error_kind: QUARANTINED.
Validation error: missing post / commentRequired input not provided.Run FAILED immediately, no charge.

Pricing

Pay-per-result. You're only charged for records actually pushed to the dataset — failed runs, validation errors, and credential errors that never reach Reddit cost nothing.

EventTriggerPrice (per 1,000)
resultEach row pushed to the dataset (success or failure)$1.99

Every vote — post or comment, upvote / downvote / remove — is one row, one charge.


Need a different shape of data?

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, or 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 Voting 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.