Everything an AI agent can do with the Reddit API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints24
AuthenticationOAuth 2.0
Last updated23 June 2026
Orientation

How the Reddit API works.

The Reddit API is how an app or AI agent works with a Reddit account: reading a subreddit's hot, new, or top posts, submitting a post, replying to and voting on comments, and reading or sending private messages. Access is granted through an OAuth 2.0 token carrying a set of scopes, such as read, submit, vote, or privatemessages, and an agent is limited to those scopes and to the subreddits it moderates for any moderator action. Reddit does not push events, so an agent learns about new activity by polling rather than by subscribing.

24Endpoints
9Capability groups
12Read
12Write
10Permissions
Authentication
Every call needs an OAuth 2.0 bearer token, sent as 'Authorization: bearer ', and authenticated calls must go to https://oauth.reddit.com rather than www.reddit.com. There are two token types: an authorization-code token that acts on behalf of a signed-in user, needed for any write such as submitting or voting, and an application-only token for read-only access to public data with no user. Reddit also requires a unique, descriptive User-Agent string identifying the app and its author.
Permissions
Access is governed by OAuth scopes, each a short token an app requests up front. The common ones are identity for the account's username and signup date, read for posts and comments, submit for posting and commenting, edit for changing or deleting the account's own content, vote for voting, save for saved items, subscribe for managing subscriptions and followed users, mysubreddits for the list of subreddits the account is part of, privatemessages for the inbox and sending messages, and history for voting and saved history. Moderator powers are separate scopes, such as modposts to approve, remove, and distinguish content, plus modflair, modconfig, modlog, and modwiki for other moderator areas. Creating a comment uses submit, while editing or deleting one uses edit.
Events
Reddit does not push events to a webhook. An app or AI agent learns about new posts, comments, and messages by polling the new listing and the inbox methods and tracking what it has already processed. There is no event subscription to register, so reacting to activity means choosing a poll interval that stays within the rate limit.
Data terms
Reddit's Data API requires OAuth and is governed by its Developer Terms and Data API Terms. Free access is for non-commercial use, capped at 100 queries per minute per client, and commercial use, including using Reddit data to train machine learning or AI models, requires Reddit's express written approval and is charged under a separate enterprise agreement. An integration that reaches commercial scale must contact Reddit rather than rely on the free tier.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Reddit determines what it can reach. Access runs through an OAuth 2.0 token, and the scopes on that token decide which areas of the account and which moderator powers a call can use.

Ways to connect

REST API

The REST API answers at https://oauth.reddit.com for any call made with a bearer token. Calls without a token go to www.reddit.com, but every authenticated request must use the oauth.reddit.com host.

Best forConnecting an app or AI agent to Reddit.
Governed byThe OAuth 2.0 token and the scopes it carries.
Docs ↗

Polling for new content

Reddit has no event push, so an app or AI agent watches for new posts, comments, and messages by repeatedly calling the new listing and inbox methods and tracking what it has already seen.

Best forReacting to new activity without a webhook.
Governed byThe OAuth 2.0 token and the scopes it carries.
Docs ↗
Authentication

OAuth 2.0 authorization code

A user grants the app a set of scopes, and the app receives an access token that acts on that user's behalf. This is the route for any action tied to a person, such as submitting, voting, or reading the inbox.

TokenOAuth user access token
Best forActing on behalf of a signed-in Reddit user
Docs ↗

OAuth 2.0 application-only

The app authenticates as itself with no user, getting a token for read-only access to public data. It cannot submit, vote, or read a user's private content.

TokenOAuth application-only token
Best forReading public listings without a user
Docs ↗
Capability map

What an AI agent can do in Reddit.

The Reddit API is split into areas an agent can act on, such as listings, posts, comments, votes, subreddits, the account, messages, and moderation. Each area has its own methods and its own scope, and some grant access to far more than others.

Listings

5 endpoints

Read a subreddit's posts sorted by hot, new, top, or rising, and look up posts or comments by their full identifier.

These are reads, but they return the full content of a community.
View endpoints

Posts

2 endpoints

Submit a link or text post, and read a single post with its comment thread.

Writes here publish to a real community under the account.
View endpoints

Comments

3 endpoints

Reply to a post or comment, edit the text of a comment or post, and delete a comment or post.

Writes here publish, change, or remove content under the account.
View endpoints

Voting & saving

2 endpoints

Cast or change a vote on a post or comment, and save or unsave content.

Votes are recorded against the account and shape what others see.
View endpoints

Subreddits

3 endpoints

Read a subreddit's details, subscribe or unsubscribe, and list the subreddits the account moderates, contributes to, or follows.

Writes here change the account's own subscriptions.
View endpoints

Account & users

3 endpoints

Read the authenticated account's identity, read a user's public profile, and add or remove a followed user.

The identity method returns the signed-in account's username and signup date.
View endpoints

Private messages

2 endpoints

Read the inbox, sent, and unread message folders, and send a private message to another user.

This area reads and sends real private messages on the account's behalf.
View endpoints

Search

1 endpoint

Search posts within a subreddit or across Reddit.

Reads return public content matching the query.
View endpoints

Moderation

3 endpoints

Approve or remove content, and distinguish a post or comment, in subreddits the account moderates.

These actions only work where the account is a moderator, and they change what a community sees.
View endpoints
Endpoint reference

Every Reddit API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Listings

Read a subreddit's posts sorted by hot, new, top, or rising, and look up posts or comments by their full identifier.5

Omitting the subreddit returns the hot listing for the account's front page. Paged through the after and before parameters.

Acts onlisting
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Polling this is how an agent discovers new posts, since Reddit pushes no events.

Acts onlisting
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The t parameter sets the window, such as hour, day, week, month, year, or all.

Acts onlisting
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Acts onlisting
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Takes a comma-separated list of fullnames in the id parameter, where a fullname is a type prefix plus an id, such as t3_ for a post and t1_ for a comment.

Acts onthing
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Posts

Submit a link or text post, and read a single post with its comment thread.2

The article is the post's id without the t3_ prefix. Returns the post followed by its comments.

Acts onpost
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The kind parameter chooses link or self (text). Errors are returned inside a 200 response, such as RATELIMIT when posting too often or SUBREDDIT_NOEXIST for an unknown subreddit.

Acts onpost
Permission (capability)submit
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Comments

Reply to a post or comment, edit the text of a comment or post, and delete a comment or post.3

The thing_id parameter is the fullname of the post or comment being replied to, and text is markdown. Creating a comment uses the submit scope, not edit.

Acts oncomment
Permission (capability)submit
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Only the account's own content can be edited. The thing_id parameter is the fullname of the post or comment.

Acts oncomment
Permission (capability)edit
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The id parameter is the fullname of the content to delete. This is a self-delete, separate from a moderator removal.

Acts oncomment
Permission (capability)edit
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Voting & saving

Cast or change a vote on a post or comment, and save or unsave content.2

The dir parameter is 1 for an upvote, -1 for a downvote, and 0 to clear. Reddit's rules forbid automated voting that a human did not direct.

Acts onvote
Permission (capability)vote
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The id parameter is the fullname. Unsaving uses the companion api/unsave method under the same scope.

Acts onsaved item
Permission (capability)save
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Subreddits

Read a subreddit's details, subscribe or unsubscribe, and list the subreddits the account moderates, contributes to, or follows.3

Acts onsubreddit
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The action parameter is sub or unsub, and sr or sr_name names the subreddit. This changes the account's own subscriptions, not a subreddit's settings.

Acts onsubreddit
Permission (capability)subscribe
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The where path segment is subscriber, contributor, moderator, or streams.

Acts onsubreddit
Permission (capability)mysubreddits
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Account & users

Read the authenticated account's identity, read a user's public profile, and add or remove a followed user.3

The identity scope reaches the signed-in account's username and signup date, not its voting or saved history.

Acts onaccount
Permission (capability)identity
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Returns public profile fields, such as karma and account age.

Acts onuser
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The subscribe scope covers managing followed users, called friends. The companion DELETE on the same path removes a followed user.

Acts onuser
Permission (capability)subscribe
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Private messages

Read the inbox, sent, and unread message folders, and send a private message to another user.2

The sent and unread folders use the matching message/sent and message/unread methods under the same scope.

Acts onmessage
Permission (capability)privatemessages
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The to parameter is the recipient username, with subject and text fields. The same scope grants both reading the inbox and sending messages.

Acts onmessage
Permission (capability)privatemessages
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
Search posts within a subreddit or across Reddit.1

The q parameter is the query, and restrict_sr limits results to the named subreddit. Sort and time-window parameters narrow the results.

Acts onsearch result
Permission (capability)read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Moderation

Approve or remove content, and distinguish a post or comment, in subreddits the account moderates.3

Only works where the account holds moderator powers. The id parameter is the fullname of the content to approve.

Acts onpost
Permission (capability)modposts
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Moderator removal, separate from the author self-delete at api/del. The spam parameter marks the removal as spam.

Acts onpost
Permission (capability)modposts
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The how parameter sets the badge, such as yes for the moderator badge or no to clear it.

Acts oncomment
Permission (capability)modposts
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Reddit does not push events to a webhook. An app or AI agent learns about new posts, comments, and messages by polling the listing and inbox methods, so there is no event subscription to register.

EventWhat it signalsTriggered by
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Reddit limits how fast an app or AI agent can call, through a per-client request quota measured over a rolling window, and reports the current state in response headers on every call.

Request rate

Reddit sets a per-client request quota rather than a per-user one, so every user running under the same registered app shares one ceiling. The OAuth limit is up to 60 requests per minute, measured as a rolling average over a 10-minute window, which allows short bursts as long as the average holds. The free Data API tier is capped at 100 queries per minute per client identifier, again averaged over 10 minutes. Every response carries the headers X-Ratelimit-Used, X-Ratelimit-Remaining, and X-Ratelimit-Reset, which report requests used, requests left, and seconds until the window resets; an app is expected to watch these and slow down before exceeding the limit. Reddit also requires a unique, descriptive User-Agent in the form platform:appID:version (by /u/username), and warns that default or generic User-Agents are drastically rate limited.

Pagination

Listing methods page through opaque cursors. The after parameter takes the fullname of the last item seen to fetch the next page, and before pages backward, with limit setting the page size up to 100 and a count parameter tracking the running total. A fullname is a type prefix plus an id, such as t3_ for a post or t1_ for a comment. There is no offset or page number.

Request size

Requests and responses are JSON over HTTPS. A listing returns at most 100 items per page. Reddit does not publish a single payload size limit; individual fields, such as a post title or a self-post body, have their own length caps enforced on submission.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
200RATELIMIT (in body)Many write methods report failure inside a 200 response rather than as an HTTP error, returning a json.errors array. A RATELIMIT entry means an action, such as submitting or commenting, was attempted too soon after the last one.Read the json.errors array on every write response, and wait the period the RATELIMIT message states before retrying.
401UnauthorizedThe access token is missing, invalid, or expired.Refresh or re-obtain the OAuth token, then resend with a valid Authorization header.
403ForbiddenThe token is valid but its scopes do not cover the call, or the account lacks the right, such as moderating a subreddit it does not moderate.Request the missing scope, or confirm the account holds the needed moderator powers.
429Too Many RequestsThe per-client request quota was exceeded. The X-Ratelimit-Remaining header is at or near zero and X-Ratelimit-Reset gives the seconds until the window resets.Watch the X-Ratelimit headers and slow down, then retry after the reset.
404Not FoundThe subreddit, post, comment, or user does not exist, or is private or banned and not visible to the account.Confirm the identifier and that the account can see the resource.
Versioning & freshness

Version history.

Reddit's API is not versioned by a dated string. There is a single, continuously updated API, with the developer platform and its data terms changed through dated policy announcements rather than version numbers.

Version history

What changed, and when

Latest versionCurrent
CurrentCurrent version
Single, continuously updated API

Reddit's API has no dated version string. The methods evolve in place, and material change reaches developers through dated developer-platform and data-terms announcements rather than a version header. The entries below mark the notable policy and access changes.

What changed
  • No version header or dated API version; the API is continuously updated
  • Change is communicated through Reddit's developer platform and Data API Terms announcements
2023-07-01Requires migration
Paid Data API and per-client rate limits take effect

Reddit's new Data API pricing and access rules took effect on Saturday 1 July 2023. Free access became non-commercial only, capped at 100 queries per minute per OAuth client, with commercial use charged at a published per-call rate under a separate agreement. The change followed the 19 June 2023 update to the Data API Terms.

What changed
  • Free tier limited to non-commercial use at 100 queries per minute per client
  • Commercial access moved to a paid enterprise agreement
  • Per-client, not per-user, rate limiting confirmed
2023-06-19Feature update
Updated Data API Terms

Reddit published updated Data API Terms on Monday 19 June 2023, restricting use of Reddit data, including a prohibition on using it to train machine learning or AI models without express written approval, and setting the framework for the paid tiers that followed.

What changed
  • Restricted commercialization and resale of Reddit data without approval
  • Required approval to use Reddit data for machine learning or AI model training

An integration tracks change through Reddit's developer platform announcements, not a version header.

Reddit developer platform updates ↗
Questions

Reddit API, answered.

What are the rate limits?+
Authenticated through OAuth, the limit is up to 60 requests per minute, measured as a rolling average over a 10-minute window, so short bursts are allowed as long as the average holds. The limit is per registered client, not per user, so every user running under the same app shares one ceiling. The free Data API tier caps usage at 100 queries per minute per client identifier. Every response carries X-Ratelimit-Used, X-Ratelimit-Remaining, and X-Ratelimit-Reset headers, and an app should watch them and slow down rather than wait for an error.
Does Reddit support webhooks or event push?+
No. Reddit's API has no webhook or event-push mechanism. An app or AI agent that needs to react to new posts, comments, or messages polls the new listing and inbox methods on an interval and tracks which items it has already seen. The poll rate has to stay within the request limit, so a busy integration spaces its checks out.
Which scope does an endpoint need?+
Each method requires a specific OAuth scope, requested up front when the app is authorized. Reading posts and comments uses read, submitting a post or comment uses submit, editing or deleting the account's own content uses edit, voting uses vote, and reading or sending private messages uses privatemessages. Reddit publishes the scope for every method in its API reference, and the application can list all scopes through the api/v1/scopes method.
Can the API be used for a commercial product?+
Not on the free tier. Reddit's Data API Terms reserve free access for non-commercial use, capped at 100 queries per minute per client. Any commercial use, including reselling data or using Reddit content to train machine learning or AI models, requires Reddit's express written approval and runs under a separate paid enterprise agreement. A product heading to commercial scale should contact Reddit before building on the free tier.
Why did my submit or comment succeed with a 200 but nothing was posted?+
Many Reddit write methods report failure inside a 200 response rather than as an HTTP error. The body holds a json.errors array, and an entry such as RATELIMIT means the action was attempted too soon, while others flag a missing field or a banned subreddit. Every write response should be parsed for json.errors rather than trusting the 200 status alone.
What is a fullname, and where is it used?+
A fullname is how Reddit identifies a thing across the API: a type prefix joined to a base-36 id, such as t1_ for a comment, t3_ for a post, t4_ for a message, and t5_ for a subreddit. Methods like api/info, api/vote, api/del, and the pagination cursors all take fullnames, so an integration usually keeps the fullname of each item it works with.
Related

More social API guides for agents

What is Bollard AI?

Control what every AI agent can do in Reddit.

Bollard AI sits between a team's AI agents and Reddit. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Reddit token.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Reddit
Community Agent
Read subreddit listings ResourceOffReadFull use
Submit posts and comments ActionOffReadFull use
Send private messages ActionOffReadFull use
Moderator actions ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Reddit