Getting a Reddit API key starts with creating an application through Reddit’s developer portal and understanding how its authentication system works. The setup itself is fairly simple for basic projects, though Reddit’s API rate limits and commercial access rules can become restrictive as request volume grows. This guide explains how to get Reddit API access, how authentication works, and where developers usually run into problems.
Most of the confusion around the Reddit API stems from mixing up application credentials with OAuth tokens. They serve different purposes, and you need both before requests start working properly. The client ID and client secret identify your application, while OAuth tokens authenticate individual API requests.
Step-by-Step: Getting Your Reddit API Credentials
The process begins at Reddit’s application management page at reddit.com/prefs/apps. You’ll need a Reddit account in good standing before creating an application. Newly created accounts or accounts with limited activity may trigger additional verification checks.
Once you reach the apps page, scroll down and click “Create App” or “Create Another App” if you already have existing applications. Reddit will display a form asking for details about your project and the type of Reddit API access it requires.
Start by choosing an application name. This appears in OAuth authorization screens if users interact with your app, so use something descriptive. Reddit then asks you to select an application type:
- Web App for applications running on a backend server
- Script for personal scripts or bots running under your own account
- Installed App for mobile or desktop software where secrets cannot be stored securely
The redirect URI controls where Reddit sends users after OAuth authorization. For script-based applications, http://localhost usually works as a placeholder. Web applications should use their real callback endpoint. Reddit also asks for a short description explaining what the application does.
After submitting the form, Reddit generates two credentials:
- A client ID, shown under the application name
- A client secret, displayed after creation
Save both immediately. Losing the client secret usually means generating a new one.
Understanding Reddit Authentication Options
Not every application needs the same authentication flow. The right choice depends on whether your app reads public data, acts on behalf of users, or runs automated tasks.
| Auth Type | Use Case | Rate Limit |
| Script (password grant) | Personal scripts, bots acting as your account | 60 QPM |
| Application-only OAuth | Reading public data without user context | 100 QPM |
| Authorization code flow | Web apps where users authorize your app | 60 QPM per user |
| Commercial API | Production applications at scale | Higher, paid tiers |
If your application only reads public subreddit data, application-only OAuth is usually enough. Applications that post comments, manage accounts, or access private user data require full user authorization through Reddit’s OAuth flow.
Making Your First Authenticated Request
Application-only OAuth is the most common setup for developers working with public Reddit content. To obtain a token, send a POST request to: https://www.reddit.com/api/v1/access_token.
The request must include:
- A descriptive User-Agent header
- A
grant_typevalue ofclient_credentials - HTTP Basic authentication using your client credentials
Generic headers, such as python-requests frequently trigger immediate rate limiting or request rejection. A proper User-Agent looks like this: linux:com.example.myapp:v1.0 (by /u/yourusername)
Once authenticated, Reddit returns an access token valid for one hour. Include that token in future requests using the Authorization: Bearer header format. Unlike some OAuth systems, Reddit does not provide refresh tokens for application-only OAuth. When the token expires, your application must request a new one using the original client credentials.
Reddit API Rate Limits: What Free Access Actually Allows
Reddit’s free API tier allows roughly 100 requests per minute for application-only OAuth. At first, that sounds generous. In practice, many projects burn through that limit quickly.
A simple monitoring tool checking 100 subreddits every five minutes can consume tens of thousands of requests per day once comments, post metadata, and user activity are added.
Applications exceeding Reddit API rate limits receive HTTP 429 responses along with Retry-After headers explaining when requests can resume. Repeated violations can lead to temporary or permanent suspension of API credentials.
A few habits help avoid problems early:
- Spread requests evenly instead of sending bursts
- Use exponential backoff after receiving 429 responses
- Monitor
X-Ratelimit-Remainingheaders during requests - Cache responses when real-time freshness is unnecessary
For small bots, hobby projects, and lightweight automation, Reddit’s free API access remains workable. Larger applications collecting high volumes of Reddit data often hit practical limits much faster than expected.

