Reddit Posting V1 — Create Post (8 types)
Pricing
from $0.01 / 1,000 results
Reddit Posting V1 — Create Post (8 types)
By using this Reddit poster, you can create any Reddit post — text, link, image, gallery, video, GIF, crosspost, or poll — in any subreddit. Pick a post type, fill the matching fields. Bring your Reddit OAuth bearer + matching proxy.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
Red Crawler
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Create any kind of Reddit post — text, link, image, gallery, video, GIF, crosspost, or poll — in any subreddit. One actor, one input form, eight post types. Pick the type, fill the matching section, supply credentials (saved by name in the Reddit Vault actor, or pasted inline), and the actor publishes the post on your behalf.
What this actor does
Pick a post type from the dropdown, fill the matching section, supply credentials, run. The actor publishes the post on the chosen subreddit on your account's behalf.
You can post:
- Text — markdown self-post
- Link — share an external URL (with an optional body)
- Image — single image from a public URL
- Gallery — 2–20 images from public URLs
- Video — video from a public URL (with optional thumbnail)
- GIF — animated
.giffrom a public URL - Crosspost — republish an existing Reddit post to another subreddit
- Poll — 2–6 options, 1–7 day duration
For each type you control flair, NSFW / spoiler flags, reply notifications, and (for link posts) resubmit behavior — everything Reddit's own UI exposes.
Heads-up: this actor only handles post creation. For voting, editing, deleting, reporting, or replying, see the other actors in the RedCrawler family.
Quick start — your first post
1. Save an account in Reddit Vault (one-time setup, recommended)
Run the Reddit Vault actor with:
- Mode =
STORE - Account name =
motor_tip8865 - Token V2 (the
token_v2cookie, ~24 h) or Reddit Session (thereddit_sessioncookie, ~180 days) + Proxy =ip:port:user:pass
You only do this once per Reddit account, then reuse the name across every Reddit actor. See Reddit Vault for screenshots showing how to extract token_v2 / reddit_session from your browser.
In a hurry / one-off post? You can skip the vault: in the credentials section pick Paste Token V2 + proxy and supply both inline. Saving in the vault is recommended for repeat use because it spares you from re-pasting on every run and (with a Reddit Session) auto-refreshes the Token V2 for you.
2. Create a text post
In this actor:
- Post type →
Text post - Scroll to the Text post section:
- Subreddit →
test(or your own user-profile sub likeu_yourname) - Post title →
Hello from Apify! - Post body →
Markdown supported. **Bold**, *italic*, > quote, [link](https://example.com)
- Subreddit →
- Scroll to Reddit credentials and pick one of:
- Use saved account (vault) + Saved account name =
motor_tip8865(recommended) - Paste Token V2 + proxy + paste your
eyJ…Token V2 (thetoken_v2cookie) andip:port:user:passproxy (quick, no save)
- Use saved account (vault) + Saved account name =
- Run.
3. Read the result
The dataset row gives you the live post URL plus rate-limit metadata:
{"success": true,"post_type": "text","post_id": "1abc23","post_fullname": "t3_1abc23","permalink": "https://reddit.com/r/test/comments/1abc23/hello_from_apify/","url": "https://reddit.com/r/test/comments/1abc23/hello_from_apify/","subreddit": "test","title": "Hello from Apify!","selftext": "Markdown supported...","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"rate_limit": 100,"rate_used": 1,"rate_remaining": 99,"rate_reset_in_seconds": 599,"bearer_expires_at": "2026-05-08T11:42:18+00:00"}
The 8 post types
Each post type has its own dedicated section in the input form. The fields are namespaced (e.g. text_subreddit, link_url, gallery_items, poll_options) so you only fill the section that matches your chosen Post type — the others are ignored.
1. Text post
A self-post with markdown body. Most subs allow text posts.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Just the name, with or without r/ |
| Post title | yes | Max 300 chars |
| Post body | optional | Markdown — **bold**, *italic*, > quote, [link](url), - bullet |
| Flair ID | optional | Reddit's internal flair template ID |
| Flair text | optional | Display text override |
| Mark as NSFW / Spoiler | optional | Booleans |
| Send reply notifications | optional (default: true) | Inbox notifications when someone replies |
Example
Input
{"post_type": "text","text_subreddit": "test","text_title": "Hello from RedCrawler Posting V1 — text post","text_body": "**Markdown supported.** *italic*, > quote, [link](https://redcrawler.com), `code`.\n\nThis is a sample text post created by the actor on r/test for the README capture.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record)
{"success": true,"post_type": "text","post_id": "1tbwj7w","post_fullname": "t3_1tbwj7w","permalink": "https://www.reddit.com/r/test/comments/1tbwj7w/hello_from_redcrawler_posting_v1_text_post/","url": "https://www.reddit.com/r/test/comments/1tbwj7w/hello_from_redcrawler_posting_v1_text_post/","subreddit": "test","title": "Hello from RedCrawler Posting V1 — text post","selftext": "**Markdown supported.** *italic*, > quote, [link](https://redcrawler.com), `code`. ...","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z"}
2. Link post
Share an outbound URL with an optional caption.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Just the name, with or without r/ |
| Post title | yes | Max 300 chars |
| Link URL | yes | The URL you want to share |
| Post body | optional | Caption shown below the link. Subs configured for rich/media link posts keep it; classic link-only subs silently drop it |
| Allow resubmit | optional (default: true) | Permit re-submitting a URL already posted to this sub |
| Flair / NSFW / Spoiler / Send replies | optional | Same as text |
Example
Input
{"post_type": "link","link_subreddit": "test","link_title": "RedCrawler Posting V1 — link post sample","link_url": "https://redcrawler.com","link_body": "Caption shown below the link — markdown OK.","link_resubmit": true,"credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record)
{"success": true,"post_type": "link","post_id": "1tbwje9","post_fullname": "t3_1tbwje9","permalink": "https://www.reddit.com/r/test/comments/1tbwje9/redcrawler_posting_v1_link_post_sample/","url": "https://www.reddit.com/r/test/comments/1tbwje9/redcrawler_posting_v1_link_post_sample/","subreddit": "test","title": "RedCrawler Posting V1 — link post sample","selftext": "Caption shown below the link — markdown OK.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z"}
3. Image post
Upload a JPG / PNG / GIF from a public URL.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Just the name, with or without r/ |
| Post title | yes | Max 300 chars |
| Image URL | yes | Publicly reachable image URL (.jpg, .png, .gif) |
| Post body | optional | Caption shown below the image |
| Flair / NSFW / Spoiler / Send replies | optional | Same as text |
Media posts return a websocket URL, not a
post_id. Reddit uploads images / video / GIFs asynchronously — the synchronous response carries awebsocket_urlyour client connects to for the finalpost_idonce Reddit finishes processing the upload. The post itself still lands; just poll your account's submitted page if you don't want to handle the websocket.
Example
Input
{"post_type": "image","image_subreddit": "test","image_title": "Sunset over the lake — image post sample","image_url": "https://i.imgur.com/KAeuBNn.jpeg","image_body": "Single-image post created via RedCrawler Posting V1.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record — note media posts ship a websocket_url instead of a post_id)
{"success": true,"post_type": "image","subreddit": "test","title": "Sunset over the lake — image post sample","selftext": "Single-image post created via RedCrawler Posting V1.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z","websocket_url": "wss://k8s-lb.wss.redditmedia.com/lwhwk61w1w0h1?m=AQAAr18Eaouz..."}
The post actually landed at https://www.reddit.com/r/test/comments/1tbwjlt/.
4. Gallery post
2–20 images, one URL per row. The whole gallery shares the Post body.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Just the name, with or without r/ |
| Post title | yes | Max 300 chars |
| Gallery images | yes | 2–20 publicly reachable image URLs, one per row |
| Post body | optional | Caption shown above the gallery |
| Flair / NSFW / Spoiler / Send replies | optional | Same as text |
Example
Input
{"post_type": "gallery","gallery_subreddit": "test","gallery_title": "Three-shot gallery sample","gallery_items": ["https://i.imgur.com/B9omOe6.jpeg","https://i.imgur.com/GGhH70K.jpeg","https://i.imgur.com/TPMezMZ.jpeg"],"gallery_body": "Gallery post created via RedCrawler Posting V1.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record)
{"success": true,"post_type": "gallery","post_id": "t3_1tbwjv3","permalink": "https://www.reddit.com/r/test/comments/1tbwjv3/threeshot_gallery_sample/","url": "https://www.reddit.com/r/test/comments/1tbwjv3/threeshot_gallery_sample/","subreddit": "test","title": "Three-shot gallery sample","selftext": "Gallery post created via RedCrawler Posting V1.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z"}
5. Video post
Upload an MP4 / MOV from a public URL.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Just the name, with or without r/ |
| Post title | yes | Max 300 chars |
| Video URL | yes | Publicly reachable .mp4 / .mov URL |
| Thumbnail URL | optional | If omitted, a frame is auto-extracted from the video |
| Post body | optional | Caption shown below the video |
| Flair / NSFW / Spoiler / Send replies | optional | Same as text |
Video uploads are slower than images — Reddit transcodes the file before the post becomes visible. Expect 30–90 s end-to-end. Like image posts, the record carries a
websocket_urlfor the finalpost_id.
Example
Input
{"post_type": "video","video_subreddit": "test","video_title": "30-second clip — video post sample","video_url": "https://i.imgur.com/BuzoHUZ.mp4","video_body": "Video post created via RedCrawler Posting V1.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record — post_id arrives via the websocket once Reddit finishes transcoding)
{"success": true,"post_type": "video","subreddit": "test","title": "30-second clip — video post sample","selftext": "Video post created via RedCrawler Posting V1.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z","websocket_url": "wss://k8s-lb.wss.redditmedia.com/qbn8ql502w0h1?m=AQAA1l8Eag2v..."}
The post actually landed at https://www.reddit.com/r/test/comments/1tbwk4e/.
6. GIF post
Upload a .gif from a public URL. Reddit converts it to native MP4 for playback.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Just the name, with or without r/ |
| Post title | yes | Max 300 chars |
| GIF URL | yes | Publicly reachable .gif URL |
| Post body | optional | Caption shown below the GIF |
| NSFW / Spoiler / Send replies | optional | Same as text. GIF posts skip the flair field |
Example
Input
{"post_type": "gif","gif_subreddit": "test","gif_title": "When the build passes on the first try — GIF sample","gif_url": "https://media3.giphy.com/media/v1.../11fot0YzpQMA0g/giphy.gif","gif_body": "Animated GIF posted via RedCrawler Posting V1.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record — same async pattern as image / video)
{"success": true,"post_type": "gif","subreddit": "test","title": "When the build passes on the first try — GIF sample","selftext": "Animated GIF posted via RedCrawler Posting V1.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z","websocket_url": "wss://k8s-lb.wss.redditmedia.com/vwb245w12w0h1?m=AQAA5l8Eaq..."}
The post actually landed at https://www.reddit.com/r/test/comments/1tbwkby/.
7. Crosspost
Republish an existing post to another subreddit.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | The destination subreddit |
| Post title | yes | The crosspost title (independent of the source post) |
| Source post URL | yes | A full reddit.com/r/.../comments/... URL |
| Post body | optional | Comment shown above the crossposted source post |
| NSFW / Spoiler / Send replies | optional | Same as text. Crossposts inherit the source post's flair |
The source post's subreddit must allow crossposting (it's a per-sub setting). Some subs lock it down.
Example
Input
{"post_type": "crosspost","crosspost_subreddit": "test","crosspost_title": "Crosspost sample — AITAH chair story","crosspost_source_post_url": "https://www.reddit.com/r/AITAH/comments/1p3hgw2/someone_at_work_stole_my_chair_so_i_had_them/","crosspost_body": "Crosspost created via RedCrawler Posting V1.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record)
{"success": true,"post_type": "crosspost","post_id": "1tbwkhp","post_fullname": "t3_1tbwkhp","permalink": "https://www.reddit.com/r/test/comments/1tbwkhp/crosspost_sample_aitah_chair_story/","url": "https://www.reddit.com/r/test/comments/1tbwkhp/crosspost_sample_aitah_chair_story/","subreddit": "test","title": "Crosspost sample — AITAH chair story","selftext": "Crosspost created via RedCrawler Posting V1.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z"}
8. Poll post
2–6 options, 1–7 day duration.
| Field | Required | Notes |
|---|---|---|
| Subreddit | yes | Sub must allow polls |
| Post title | yes | The poll question |
| Poll options | yes | 2–6 options, one per row |
| Poll duration (days) | yes (default: 3) | 1–7 days |
| Post body | optional | Description shown above the poll |
| Flair / NSFW / Spoiler / Send replies | optional | Same as text |
Example
Input
{"post_type": "poll","poll_subreddit": "test","poll_title": "Which language should I learn next?","poll_options": ["Rust", "Go", "Zig", "TypeScript"],"poll_duration_days": 3,"poll_body": "Quick poll for the README capture.","credentialSource": "vault","accountName": "motor_tip8865"}
Output (one dataset record)
{"success": true,"post_type": "poll","post_id": "t3_1tbwvgs","permalink": "https://www.reddit.com/r/test/comments/1tbwvgs/which_language_should_i_learn_next/","url": "https://www.reddit.com/r/test/comments/1tbwvgs/which_language_should_i_learn_next/","subreddit": "test","title": "Which language should I learn next?","selftext": "Quick poll for the README capture.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T11:29:01Z"}
What a Reddit-throttled failure looks like — when the same account posts too many times in a short window, Reddit returns its anti-spam cooldown, and the actor pushes a failure record with the message in the error field:
{"success": false,"post_type": "poll","subreddit": "test","title": "Which language should I learn next?","selftext": "Quick poll for the README capture.","is_nsfw": false,"is_spoiler": false,"sendreplies": true,"bearer_expires_at": "2026-05-14T10:20:54Z","error": "Looks like you've been doing that a lot. Take a break for 1 minute before trying again."}
Reddit credentials (shared across all types)
The bottom section of the input form is the same for every post type.
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_v2(the Token V2) orreddit_session(the Reddit Session) and copy the Value column.
Credential source
- Use saved account (vault) — pull Token V2 + proxy from the Reddit Vault by name. Only the Saved account name field below matters.
- Paste Token V2 + proxy — fill the Token V2 + proxy fields directly. The saved-account-name field is ignored.
Saved account name (vault path)
The label you used when running Reddit Vault → STORE. Lowercase, 1–32 chars, letters/digits/-/_.
Token V2 (manual path)
Your token_v2 cookie value (eyJ…). Encrypted by Apify at rest (isSecret: true). Lifetime: ~24 h.
Proxy (manual path)
ip:port:user:pass. Must be the IP that minted the Token V2 — Reddit IP-binds these cookies.
Output schema
Every run pushes exactly one record to the run's default dataset. The shape is the same across post types, with type-specific fields filled where relevant. Per-type captured examples live under each section above — this section is the field reference.
Field reference
| Field | Type | Present when | Notes |
|---|---|---|---|
success | bool | always | true if the post landed (or, for media, the upload was accepted and a websocket URL was issued); false if Reddit or the actor rejected it |
post_type | string | always | One of text, link, image, gallery, video, gif, crosspost, poll |
post_id | string | success, non-media | Reddit's post ID (e.g. 1tbwj7w). Media posts (image / video / GIF) ship websocket_url instead |
post_fullname | string | success, non-media | t3_ + post_id |
permalink, url | string | success, non-media | Full reddit.com URL of the landed post |
subreddit | string | always | Echo of the input subreddit (normalized — no r/ prefix) |
title, selftext | string | always | Echo of input (selftext = the body text you provided) |
is_nsfw, is_spoiler, sendreplies | bool | always | Echo of input booleans |
flair_id, flair_text | string | null | always (non-GIF / non-crosspost) | Echo of flair input (these post types skip flair) |
websocket_url | string | success, media only | wss://...redditmedia.com/... — your client connects to receive the final post_id once Reddit finishes processing the upload |
error | string | null | failure | Human-readable Reddit error or actor validation message |
error_kind | string | null | failure | Reddit's structured error code (RATELIMIT, SUBREDDIT_NOTALLOWED, BAD_FLAIR_TEMPLATE_ID, ALREADY_SUB, etc.) |
bearer_expires_at | ISO 8601 string | always | When your Token V2 cookie expires — refresh before this if you didn't save a Reddit Session |
bearer_expired_at | ISO 8601 string | null | failure (auth) | Set if the bearer was already expired when this run started |
rate_limit, rate_used, rate_remaining | int | when Reddit returns headers | Your account's live per-window post-create counter — pace your runs to stay above zero |
rate_reset_in_seconds | int | when Reddit returns headers | Seconds until the window resets |
Failure record (example)
{"success": false,"post_type": "link","subreddit": "AskReddit","title": "A delightful little site","error": "URL has already been submitted","error_kind": "ALREADY_SUB","bearer_expires_at": "2026-05-14T10:20:54Z"}
error_kind echoes Reddit's structured error code when available. The plain error string is always set.
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. One dataset row per post. | Open the dataset — check success and permalink. | |
| "The Actor process failed…" | Hard process error. Rare; Reddit faults finish SUCCEEDED. | Check the run log. You are NOT charged on FAILED runs. | |
| "The Actor timed out. You can resurrect it with a longer timeout to continue where you left off." | Run exceeded its timeout. Usually a slow video upload. | Re-run with a longer timeout — bump to 5+ min for big videos. | |
| "The Actor process was aborted. You can resurrect it to continue where you left off." | You stopped the run manually. | No charge for unpushed posts. |
Common in-run errors (success: false in the dataset row — visible in run log)
Error / error_kind | What it means | Fix |
|---|---|---|
URL has already been submitted / ALREADY_SUB (link post) | Someone already posted that URL to that subreddit | Set link_resubmit: true, or pick a different URL or sub |
SUBREDDIT_NOTALLOWED | Sub doesn't allow this post type, or your account has too little karma / age | Pick a different sub, or read r/{sub}'s posting rules |
RATELIMIT ("you are doing that too much") | Reddit's per-account post throttle (often 1–15 minutes between posts on new accounts, escalating with each retry while throttled) | Wait the full quoted cooldown before retrying. The rate_remaining field shows how many calls you have left in the current window |
BAD_FLAIR_TEMPLATE_ID | Flair ID doesn't exist on this sub | Drop the flair fields, or fetch the right ID via Reddit Flairs V2 actor |
Bearer token invalid / expired | Your saved Token V2 expired and you don't have a Reddit Session for auto-refresh | Run Reddit Vault → UPDATE with a fresh Token V2, or save a Reddit Session next time |
Proxy connection failed | Proxy IP unreachable from Reddit | Check the proxy is alive — Reddit must return 200 OK when reached through it |
failed to resolve image_url | Image / video / GIF URL not publicly reachable | Use a CDN URL the actor can GET without auth |
Bearer minted on a different IP | Saved Token V2's IP doesn't match your saved proxy | Re-mint the Token V2 on the proxy you'll use, then STORE / UPDATE both together |
crossposting is not enabled in this community | The source post's subreddit disabled crossposting | Pick a different source post |
Limits and quirks
- Title length: Reddit caps post titles at 300 characters.
- Body length: 40,000 characters.
- Per-account rate limit: Reddit enforces per-account write limits — pace your runs accordingly to avoid throttling (shared with voting). The
rate_*fields in the response show your live counter. - New-account throttle: Brand-new accounts (low age or low karma) get extra cooldowns between posts (sometimes minutes apart). This is a Reddit-side anti-spam measure, not an actor bug.
- Datacenter proxies: Reddit zero-weights votes from datacenter IPs and aggressively rate-limits them for posting. Use mobile or residential proxies for sustained automation.
- File extension must match: Reddit rejects images whose actual format doesn't match the URL extension (e.g. a
.jpgURL serving a PNG). Make sure the URL extension reflects the real file type. - Video processing: Reddit processes videos asynchronously, so the post can show "Processing" for 30–90 seconds before becoming visible.
- Crosspost source restrictions: Some subreddits disable crossposting from their content. The error returned by Reddit is
crossposting is not enabled in this community.
Best practices
- Use the Reddit Vault. Save your accounts once with a Reddit Session — Token V2 auto-refresh keeps everything working for ~180 days.
- Match account ↔ subreddit. Brand-new accounts can't post to large default subs (AskReddit, news, etc.). Build account reputation first by commenting in small communities.
- Stagger posts. Reddit's anti-spam looks at velocity — 5 posts in 5 minutes from the same account is suspicious. Schedule with the Apify Scheduler instead.
- Mobile/residential proxies only for posting. Datacenter IPs work for read-only scraping but are visibility-degraded for vote/post actions (March 2026 Reddit policy change).
- Respect subreddit rules. Each sub's
r/{sub}/about/rules.jsonlists posting requirements. The Reddit Subreddits V2 actor can fetch them programmatically.
Need a different shape of data?
- Reddit Vault — save Reddit accounts once, call them by name from this actor (free)
- Reddit Wiki & Emojis & Widgets — read wiki pages, list emojis/widgets per subreddit
- Reddit Flairs V2 — list, set, or remove user/link flair
- Reddit Content Fetcher — pull saved posts / comments / inbox for a saved account
All of them accept the same accountName field, so saving credentials in Reddit Vault unlocks them all.
Why this actor is fast
- Speed — 1–3 seconds per call, end-to-end. 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. No surprise mid-run failures from a browser quirk.
- 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.
Pricing
Pay-per-event — you only pay for successful post creations. Failed runs (auth errors, validation errors, subreddit-rule rejections, network timeouts) are not charged.
| Event | Trigger | Price (per 1,000) |
|---|---|---|
post-created-text | Successful text post | $30 |
post-created-link | Successful link post | $30 |
post-created-crosspost | Successful crosspost | $30 |
post-created-poll | Successful poll post | $30 |
post-created-image | Successful single-image post | $40 |
post-created-gif | Successful GIF post | $40 |
post-created-gallery | Successful gallery post (any number of images) | $50 |
post-created-video | Successful video post | $60 |
result | Each row pushed to the dataset (success or failure) | $0.01 |
Heavier media types cost more because they involve a longer end-to-end pipeline — upload, processing, and asset readiness checks against Reddit. Light text/link posts complete in seconds and are priced accordingly.
You'll see each line item on your Apify usage statement under its event name (e.g. post-created-image).
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 Posting V1 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.


