Reddit API
Reddit's Data API charges $0.24 per 1,000 calls beyond the free tier. Aether includes Reddit API costs in your plan — post text, links, images, videos, and polls across any subreddit with one API key.
One call for link posts, text posts, and polls. Specify subreddit, post type, and flair in the overrides object.
import Aether from "aether";
const aether = new Aether({ apiKey: process.env.AETHER_API_KEY });
// Post a link to a subreddit
const post = await aether.posts.create({
text: "We built an open API for social media automation. Here's how it works...",
profileIds: ["rd_user789"],
overrides: {
reddit: {
subreddit: "r/webdev",
postType: "link",
url: "https://aetherhq.dev",
flair: "Tool",
},
},
});
// Post a text post with a poll
const poll = await aether.posts.create({
profileIds: ["rd_user789"],
overrides: {
reddit: {
subreddit: "r/webdev",
postType: "poll",
title: "How do you currently post to social media from your app?",
options: ["Direct platform APIs", "Third-party API (Aether etc.)", "Manual dashboard", "We don't"],
duration: 3,
},
},
});Free tier · 3 accounts · no credit card
Get your free API keyimport os
import aether
client = aether.Aether(api_key=os.environ["AETHER_API_KEY"])
# Post a link to a subreddit
post = client.posts.create(
text="We built an open API for social media automation...",
profile_ids=["rd_user789"],
overrides={
"reddit": {
"subreddit": "r/webdev",
"post_type": "link",
"url": "https://aetherhq.dev",
"flair": "Tool",
}
},
)curl -X POST https://api.aetherhq.dev/v1/posts \
-H "Authorization: Bearer $AETHER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "We built an open API for social media automation.",
"profileIds": ["rd_user789"],
"overrides": {
"reddit": {
"subreddit": "r/webdev",
"postType": "link",
"url": "https://aetherhq.dev",
"flair": "Tool"
}
}
}'Aether returns a normalized post object immediately. Once published, publishResults includes the native Reddit post ID and permalink.
{
"success": true,
"data": {
"id": "post_8s0wx5d",
"status": "publishing",
"text": "We built an open API for social media automation.",
"profileIds": ["rd_user789"],
"mediaUrls": [],
"mediaKeys": [],
"scheduledFor": null,
"publishResults": [],
"publishedAt": null,
"failedAt": null,
"createdAt": "2026-06-08T14:23:11.000Z"
}
}Getting direct Reddit API access means: registering a Reddit developer app, managing OAuth 2.0 client credentials, implementing token refresh, and keeping up with Reddit's evolving API terms.
Aether's Connect Link removes all of that. Call one endpoint, get a URL, send it to your user. They authorize on Reddit, and the account appears in your dashboard.
// Generate a Connect Link for your user to authenticate Reddit
const link = await aether.connectLinks.create({
platform: "reddit",
redirectUrl: "https://yourapp.com/settings/social",
});
// Send link.url to your user — they click, authorize on Reddit,
// and the account appears in your dashboard automatically.
// No Reddit developer app setup needed on your end.
console.log(link.url); // "https://connect.aetherhq.dev/link/cl_rd5x8y..."
console.log(link.expiresAt); // "2026-06-15T14:23:11.000Z"Reddit Data API costs are included in your Aether subscription. No separate billing relationship with Reddit, no per-call metering on your side.
Text posts, link posts, image posts, video posts, polls, and gallery posts (multiple images). Each type is a single API call with type-specific fields.
Each Reddit account is a separate connected profile with its own profileId. Manage multiple accounts for agencies, community managers, or multi-brand orgs.
Target any subreddit and specify post flair via the overrides.reddit object. Aether returns clear error messages when subreddit rules reject a post.
Reddit's 100 requests/minute limit is tracked per OAuth token. Aether queues excess requests and retries automatically with exponential backoff.
Pass scheduledFor to queue posts for future publishing. Works for all Reddit post types. Note: some subreddits flag posts from off-peak hours.
Upvotes, comments, awards, and karma delta — per post and per account. Historical data with custom date ranges via the Analytics API.
Every Reddit endpoint is an MCP tool. Claude, Cursor, and any MCP-compatible agent can post to subreddits and pull analytics without extra code.
Reddit's API is well-documented but has cost and complexity tradeoffs. Here's the comparison.
| Feature | Aether | Reddit API directly |
|---|---|---|
| API costs | ✓Included in Aether plan — no Reddit bill | ✗$0.24 per 1,000 calls beyond free tier |
| Authentication | ✓One API key | ✗OAuth 2.0 + client ID/secret per app |
| Rate limits | ✓Managed automatically | ✗100 requests/minute per OAuth token |
| Multi-account | ✓Multiple accounts via profileIds | ✗One token per account, manual rotation |
| API maintenance | ✓We absorb all breaking changes | ✗Your team's responsibility |
| Subreddit rules | Platform rules still apply | Platform rules still apply |
Platform-level limits set by Reddit. Aether queues and retries automatically — your integration does not need backoff logic.
| Operation | Limit | Error code | Note |
|---|---|---|---|
| API requests | 100 req / min per token | 429 | Per OAuth token |
| Post gap | 10 min between posts | RATELIMIT | Same account, anti-spam |
| Post title | 300 characters | 400 | Required field |
| Text post body | 40,000 characters | 400 | Markdown supported |
| Gallery images | 20 images max | 400 | Per gallery post |
| Poll options | 2–6 options | 400 | Duration 1–7 days |
| Code | Meaning | How Aether handles it |
|---|---|---|
| 401 | Invalid or expired access token | Aether auto-refreshes OAuth tokens — reconnect if it persists |
| 403 | Account banned or not allowed in subreddit | Check account standing and subreddit rules; contact sub moderators |
| 429 | Rate limit exceeded (100 req/min) | Aether queues and retries after the window resets |
| RATELIMIT | Posting too fast — 10 min gap required | Aether enforces the gap automatically between consecutive posts |
| 400 | Invalid post type or missing required field | Aether validates requests; check subreddit, title, and post type |
| SUBREDDIT_NOTALLOWED | Account not approved for restricted sub | Request subreddit access separately; Aether returns this as an error |
AI-Native
Aether ships an MCP server that exposes every Reddit endpoint as a callable tool. Claude Desktop, Cursor, and any MCP-compatible agent can post to subreddits, create polls, and pull analytics — with no additional integration code.
# Add to ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"aether": {
"command": "npx",
"args": ["-y", "aether-mcp"],
"env": { "AETHER_API_KEY": "sk_live_..." }
}
}
}
# Claude can now post to Reddit:
# "Post our launch to r/webdev as a link post with the Tool flair"
# "Create a poll in r/programming about API integration approaches"
# "What subreddits are our posts getting the most upvotes in?"Aether posts via the official Reddit API on your behalf, but subreddit-specific rules (approved submitters, flair requirements, post type restrictions) still apply at the platform level. We return clear, actionable error messages when Reddit rejects a post.
Yes. Each Reddit account is a separate connected profile with its own profileId. You can post from multiple accounts independently — useful for community managers and agencies handling multiple clients.
Text posts, link posts, image posts, video posts, and polls. Gallery posts (multiple images) are also supported. Each type has its own required fields accessible via the overrides.reddit object.
Reddit Data API costs are included in your Aether subscription. You do not have a separate billing relationship with Reddit — Aether handles that entirely.
Yes. Use the standard scheduledFor field. Note that some subreddits flag posts made at off-peak hours, so we recommend testing scheduling behavior in the specific subreddits you target.
Free tier · 3 accounts · full API access · MCP server · no credit card.
Get your free API key →