Send your Redditapis key as a bearer token: an Authorization header with the value Bearer YOUR_API_KEY, on every request to api.redditapis.com. There is no OAuth handshake, no client id and secret pair, and no developer-app review. The key is issued at signup and works immediately on all 28 endpoints.
Reddit API documentation
One bearer token, 28 endpoints, JSON in and JSON out. This page is the map of the whole surface with what each call costs. The per-endpoint reference lives in the full docs.
How does the Redditapis REST API work?
Redditapis is a REST API for Reddit data and actions. You send one bearer token against api.redditapis.com and get JSON back, with no OAuth handshake and no developer-app review. There are 28 published endpoints across listings, posts and comments, typed search, users, write actions, direct messages, and account billing. Reads cost $0.002 per call, votes $0.005, writes $0.012, and direct messages $0.025, billed per call rather than per row returned.
Base URL and authentication
Every endpoint lives under https://api.redditapis.com and takes the same header. There is no token exchange step, so the first call you write is also the call you ship.
# Every call takes the same bearer token.
curl "https://api.redditapis.com/api/reddit/search?q=api&subreddit=webdev&limit=25" \
-H "Authorization: Bearer YOUR_API_KEY"What you do not need
- No OAuth client id and secret pair.
- No Reddit developer-app registration or review.
- No refresh-token rotation to maintain.
- No per-scope approval before you can read comments.
New to this? The API key guide covers issuing and rotating a token.
Every endpoint, by family
All 28 published endpoints. Prices are per call, not per row, so a listing that returns 100 items costs the same as one that returns three.
Listings
3 endpointsPull posts out of a subreddit or the whole site. These are the endpoints most integrations start with.
| Endpoint | Per call | What it returns |
|---|---|---|
GET /api/reddit/posts | $0.002 | Posts from a subreddit, sorted hot, new, top, rising, controversial, or best. |
GET /api/reddit/search | $0.002 | Keyword search, either sitewide or restricted to one subreddit. |
GET /api/reddit/sub/{name}/top | $0.002 | Top posts in a subreddit for a timeframe. |
Posts and comments
6 endpointsRead a single post, walk its full comment tree, or check a batch of comment ids in one call.
| Endpoint | Per call | What it returns |
|---|---|---|
GET /api/reddit/post/{id} | $0.002 | One post with its comment tree. |
GET /api/reddit/post/{id}/comments | $0.002 | Comment tree for a post id. |
GET /api/reddit/comments/{postId} | $0.002 | Alias of the route above, kept for older clients. |
GET /api/reddit/comments | $0.002 | Comment tree addressed by permalink instead of id. |
GET /api/reddit/comment/{id} | $0.002 | A single comment by id. |
POST /api/reddit/comments/verify | $0.002 | Check up to 100 comment ids as live, deleted, removed, or not found. POST because 100 ids do not fit in a query string, and it bills at the read rate at any batch size. |
Typed search
5 endpointsSearch one entity type at a time instead of filtering a mixed result set on your side.
| Endpoint | Per call | What it returns |
|---|---|---|
GET /api/reddit/search/communities | $0.002 | Find subreddits by keyword. |
GET /api/reddit/search/comments | $0.002 | Search comment bodies. |
GET /api/reddit/search/media | $0.002 | Image, video, and gallery posts only. |
GET /api/reddit/search/users | $0.002 | Find Reddit accounts by name. |
GET /api/reddit/search/comments/deep | $0.02 | The one read priced above the flat rate. A single call runs a comment search plus up to ten comment-tree reads, so the price tracks the fan-out. |
Users
2 endpointsProfile data and recent activity for a named account.
| Endpoint | Per call | What it returns |
|---|---|---|
GET /api/reddit/user/{name} | $0.002 | Profile and karma for one account. |
GET /api/reddit/user/{name}/comments | $0.002 | Recent comments by that account. |
Auth, profile, and write actions
7 endpointsEverything that changes state on Reddit. Authenticate once, then act with the returned session.
| Endpoint | Per call | What it returns |
|---|---|---|
POST /api/reddit/login | $0.012 | Authenticate a Reddit account and get a session for the write endpoints. |
POST /api/reddit/comment | $0.012 | Post a comment or a reply. |
POST /api/reddit/v2/comment | $0.012 | The v2 comment path. |
POST /api/reddit/vote | $0.005 | Upvote, downvote, or clear a vote. |
POST /api/reddit/profile/description | $0.012 | Set the profile description. |
POST /api/reddit/profile/display-name | $0.012 | Set the display name. |
POST /api/reddit/profile/avatar | $0.012 | Set the account avatar. |
Direct messages
3 endpointsSend and read Reddit DMs. This is the surface no other third-party provider exposes.
| Endpoint | Per call | What it returns |
|---|---|---|
POST /api/reddit/dm | $0.025 | Send a direct message. |
POST /api/reddit/dm/threads | $0.025 | List DM threads for the authenticated account. |
POST /api/reddit/dm/messages | $0.025 | List the messages inside one thread. |
Account
2 endpointsYour own billing state. These two never cost a credit.
| Endpoint | Per call | What it returns |
|---|---|---|
GET /account/me | Free | Account details and remaining credit balance. |
GET /account/payments | Free | Payment history. |
Request and response schemas for each of these live in the full endpoint reference, and the machine-readable version is at openapi.json.
Pagination
Listing responses carry an after value. Pass it straight back to get the next page. It is an opaque cursor we issue, not a raw Reddit fullname, because the cursor also carries how deep into the listing you already are. When it comes back null, the listing is exhausted.
# Page with the cursor we return. Do not hand-build a Reddit fullname.
first = requests.get(
"https://api.redditapis.com/api/reddit/posts",
params={"subreddit": "webdev", "sort": "new", "limit": 100},
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()
cursor = first["after"] # None means the listing is exhausted
if cursor:
page_two = requests.get(
"https://api.redditapis.com/api/reddit/posts",
params={"subreddit": "webdev", "sort": "new", "limit": 100, "after": cursor},
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()Reddit itself stops most listings around 1,000 items. The pagination guide covers what to do when you hit that ceiling.
Errors and billing behaviour
Errors come back as JSON with a single error field. These are the ones worth handling explicitly.
| Status | Body | What it means |
|---|---|---|
| 400 | {"error": "..."} | A required parameter is missing or malformed. The message names the parameter. |
| 401 | {"error": "Missing Bearer token"} | No Authorization header was sent. |
| 402 | {"error": "Insufficient credits"} | The key is valid but the balance is empty. Top up and retry. |
| 403 | {"error": "Invalid token"} | The bearer token was not recognised. |
| 404 | {"error": "..."} | No route matched, or Reddit has no such post, comment, or account. |
| 502 | {"error": "..."} | Reddit failed upstream. Retry with backoff, and note that a failed upstream read still resolved through our proxy layer. |
A request that matches no route is not billed, and an OPTIONS preflight is not billed, because neither runs a handler or makes an upstream Reddit call. Rate limiting against Reddit is handled on our side with proxy rotation and backoff, so you write against clean JSON instead of planning around a shared quota.
Where to go from here
This page is the surface map. These take you deeper:
- Quickstart , first call in five minutes
- Pricing , the full per-tier rate card
- MCP server , the same endpoints as agent tools
- Complete 2026 guide , the long-form walkthrough
- Community and support , where to ask when something breaks
- Search API , query parameters in depth
Frequently asked questions
There are 28 published endpoints: 15 flat-rate reads, 1 premium read, 1 vote endpoint, 6 write endpoints, 3 direct-message endpoints, and 2 free account endpoints. That count comes from the same source the OpenAPI document is generated against, so the reference on this page and the machine-readable spec cannot disagree.
Reads are $0.002 per call, votes $0.005, writes $0.012, and direct messages $0.025. Deep comment search is $0.02 because one call fans out into a search plus up to ten comment-tree reads. Account endpoints are free. The unit is the call, not the row, so a read that returns 100 items still costs $0.002.
Listing responses carry an after value. Pass it back as the after parameter on the next request to get the following page. It is an opaque cursor issued by us, so do not construct one from a Reddit fullname. When after comes back null the listing is exhausted.
A request that matches no route is not billed, and an OPTIONS preflight is not billed, because neither one runs a handler or makes an upstream Reddit call. A request that reaches a handler is billed at its tier rate.
Yes. The machine-readable OpenAPI 3.1 document is published at docs.redditapis.com/openapi.json, and it is also advertised from the API catalog at /.well-known/api-catalog so agents can discover it without reading this page.
By the numbers
The API surface, by the numbers
Every Redditapis figure resolves to our published rate card and endpoint count; every external figure is a primary source.
The API publishes 28 endpoints: 15 flat-rate reads, 1 premium read, 1 vote endpoint, 6 writes, 3 direct-message endpoints, and 2 free account endpoints. (Redditapis, 2026)
Reads bill at $0.002 per call, votes at $0.005, writes at $0.012, and direct messages at $0.025, with deep comment search at $0.02 for its fan-out. (Redditapis pricing, 2026)
Every new account starts with $0.50 in free credits and no card on file, which covers 250 reads before any charge. (Redditapis, 2026)
Reddit's own free Data API tier is capped at 100 queries per minute per OAuth client, and 10 queries per minute without OAuth. (Reddit Data API Wiki, 2026)
Reddit's commercial Data API is priced at $0.24 per 1,000 API calls, the rate that ended third-party apps like Apollo in 2023. (The Verge, 2023)
Reddit signed a reported $60 million-a-year deal to license its data for AI training, which is why programmatic access is gated the way it is. (Reuters, 2024)
Keep reading.
Continue exploring related pages.
Reddit API documentation
The complete 2026 reference: auth, all 28 endpoints, and code.
Get a Reddit API key
Instant bearer token, no waitlist and no enterprise contract.
Reddit Responsible Builder Policy
Why Reddit denies API applications, and the managed REST bypass.
Reddit API use cases
14 use cases from AI training to brand monitoring and DMs.
Reddit Search API
Search posts, comments, users, and communities over one REST endpoint.
Reddit MCP server
Wrap the REST API as MCP tools for Claude, Cursor, and any MCP client.
Reddit API for AI agents
Live Reddit context for tool calls, MCP servers, and RAG pipelines.
Redditapis pricing
Endpoint-level costs and quick monthly totals - reads from $0.002 / call.
Reddit API cost calculator
Estimate monthly spend using your request volume.
Reddit API guides and tutorials
Tutorials, walkthroughs, and API deep-dives for developers.
Reddit API alternatives
Evaluate alternatives by cost model, limits, and integration fit.
Official Reddit API vs Redditapis
Access, setup, rate limits, and pricing, side by side.
Affiliate program
Earn 20% lifetime commissions - capped at $5,000/yr.
Reddit Vote API tutorial
Upvote and downvote a post programmatically via the REST API.
Reddit Data API: REST, no PRAW
REST endpoints for Reddit data with no PRAW and no OAuth dance.
Reddit scraping benchmarks
Real throughput, error rates, and cost benchmarks for Reddit scraping.
Reddit API answers
Direct answers on cost, access, rate limits, endpoints, and auth.
How much the Reddit API costs
Per-call pricing from $0.002 a read, with $0.50 in free credits.
Reddit API in Python
One requests call with a bearer token, no PRAW and no OAuth flow.
Reddit shadowban checker
Check if a Reddit account is shadowbanned in seconds, free and no login.
Make your first call in five minutes.
$0.50 in free credits, no card required. Sign up, copy your bearer token, and hit any of the 28 endpoints.
