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.

Authenticated request
# 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 endpoints

Pull posts out of a subreddit or the whole site. These are the endpoints most integrations start with.

EndpointPer callWhat it returns
GET/api/reddit/posts
$0.002Posts from a subreddit, sorted hot, new, top, rising, controversial, or best.
GET/api/reddit/search
$0.002Keyword search, either sitewide or restricted to one subreddit.
GET/api/reddit/sub/{name}/top
$0.002Top posts in a subreddit for a timeframe.

Posts and comments

6 endpoints

Read a single post, walk its full comment tree, or check a batch of comment ids in one call.

EndpointPer callWhat it returns
GET/api/reddit/post/{id}
$0.002One post with its comment tree.
GET/api/reddit/post/{id}/comments
$0.002Comment tree for a post id.
GET/api/reddit/comments/{postId}
$0.002Alias of the route above, kept for older clients.
GET/api/reddit/comments
$0.002Comment tree addressed by permalink instead of id.
GET/api/reddit/comment/{id}
$0.002A single comment by id.
POST/api/reddit/comments/verify
$0.002Check 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 endpoints

Search one entity type at a time instead of filtering a mixed result set on your side.

EndpointPer callWhat it returns
GET/api/reddit/search/communities
$0.002Find subreddits by keyword.
GET/api/reddit/search/comments
$0.002Search comment bodies.
GET/api/reddit/search/media
$0.002Image, video, and gallery posts only.
GET/api/reddit/search/users
$0.002Find Reddit accounts by name.
GET/api/reddit/search/comments/deep
$0.02The 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 endpoints

Profile data and recent activity for a named account.

EndpointPer callWhat it returns
GET/api/reddit/user/{name}
$0.002Profile and karma for one account.
GET/api/reddit/user/{name}/comments
$0.002Recent comments by that account.

Auth, profile, and write actions

7 endpoints

Everything that changes state on Reddit. Authenticate once, then act with the returned session.

EndpointPer callWhat it returns
POST/api/reddit/login
$0.012Authenticate a Reddit account and get a session for the write endpoints.
POST/api/reddit/comment
$0.012Post a comment or a reply.
POST/api/reddit/v2/comment
$0.012The v2 comment path.
POST/api/reddit/vote
$0.005Upvote, downvote, or clear a vote.
POST/api/reddit/profile/description
$0.012Set the profile description.
POST/api/reddit/profile/display-name
$0.012Set the display name.
POST/api/reddit/profile/avatar
$0.012Set the account avatar.

Direct messages

3 endpoints

Send and read Reddit DMs. This is the surface no other third-party provider exposes.

EndpointPer callWhat it returns
POST/api/reddit/dm
$0.025Send a direct message.
POST/api/reddit/dm/threads
$0.025List DM threads for the authenticated account.
POST/api/reddit/dm/messages
$0.025List the messages inside one thread.

Account

2 endpoints

Your own billing state. These two never cost a credit.

EndpointPer callWhat it returns
GET/account/me
FreeAccount details and remaining credit balance.
GET/account/payments
FreePayment 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.

Python pagination
# 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.

StatusBodyWhat 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:

Frequently asked questions

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.

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.