How to Get a Reddit API Key in 2026: A Complete Step-by-Step Guide

Written by:

Marta Krysan

10

min read

Date:

October 23, 2026

Date modified:

October 23, 2026

You have the project, and Reddit has the needed data. The API, OAuth, a Client ID, a Client Secret, and an access request sit somewhere between you and the info. So why do forums buzzle with topics like “how to get a Reddit API key in 2026?” Well, 2026 access is not as easy as it used to be.

What's good is that the technical side is still perfectly manageable once you know what each credential does and how Reddit authentication works. However, we must warn you that getting credentials and getting actual Reddit API access are no longer the same thing.

So, instead of walking you through an outdated “click here, copy your key, done” tutorial, let’s look at how Reddit API access actually works today — from requesting access to making your first successful API call.

Short Overview: How to Get Reddit API Key in 2026 

  • The official Reddit API requires registration and clarification of intended use to get access to its data. 
  • After the approval process, you'll receive Reddit API credentials such as a Client ID and Client Secret for authentication through OAuth.
  • This is how the basic flow looks: Reddit account → API access/registration → app credentials → OAuth access token → oauth.reddit.com → Reddit data.

Note: Client ID and Client Secret differ from the OAuth access token. Thus, having credentials does not automatically mean every API use case is approved. Reddit separates:

  • Developer Platform (Devvit) — for apps running on Reddit;
  • Data API (non‑commercial) — approved developers, limited rate;
  • Data API (commercial) — requires a separate agreement.

After getting valid access, you can exchange your credentials for an OAuth token and use that token to make authenticated requests to the official API. Traffic not using OAuth or Reddit API login credentials will be blocked.

What Are Reddit API Keys Now?

While devs search for a single key, the Reddit authentication system is quite more complicated and isn’t really built around one magical pass. Instead, it consists of several puzzle pieces.

Client ID: it acts as an identifier of your app, telling Reddit which application is making the request.

Client Secret: this one proves that your application is actually yours. This one should stay totally "secret" and secure, so don’t publish it in a GitHub repository, paste it into frontend JavaScript, or leave it sitting inside a public notebook.

User-Agent: Reddit expects API clients to identify themselves with a descriptive User-Agent. Here’s the required structure:

<platform>:<app ID>:<version string> (by /u/<reddit username>)

OAuth Access Token: this is what your application actually sends with authenticated API requests. Access tokens are temporary. Thus, your permanent app credentials and your temporary OAuth token are two different things.

So, when someone says “Reddit API key,” they may actually mean: Client ID + Client Secret + User-Agent → OAuth token.

This helpful clarification may save developers from chasing the unicorn while hunting for the API key instead of getting the right credentials. 

What Changed With Reddit API Access?

If you used Reddit’s API years ago, you may remember a much simpler setup. Create an app. Grab credentials. Start experimenting. Reddit’s developer rules have changed a lot since then.

Self-service access closed. Reddit moved to an approval-based model under the Responsible Builder Policy. Reddit’s own help pages do not specify an exact date for this change; what matters is the current rule, not when it was introduced. The key message is that approval is required. 

Different services for different use cases. Today, Reddit distinguishes between its Developer Platform, Data API, Ads API, research access, and embeds, each with separate sign-ups and documentation.

A push toward the Developer Platform. Reddit’s help center says developers should use the Developer Platform (“Devvit”) to build apps on Reddit, and moderation tools are subject to Devvit App Review. In practice, community utilities and mod tools are being steered toward that route.

All of this points one way: Reddit wants tighter control over how apps use its data. So, before starting development:

  • Check Reddit’s latest developer documentation.
  • Identify which Reddit developer service fits your use case.
  • Confirm whether your intended use requires approval (it almost certainly does).
  • Only then design your authentication and data pipeline.

Ten minutes spent here can save ten hours debugging perfectly correct code that simply doesn’t have permission to do what you’re asking it to do.

How to Get Reddit API Access in 2026?

Reddit API access is what is needed before any Python libraries are downloaded. And this is where many older Reddit API tutorials appear to be outdated.

The official Reddit documentation now describes the Data API as available to approved developers. However, the success also depends on what you’re building and how Reddit data will be used. So, hoping that creating a Reddit account will automatically grant you unlimited Reddit data is to cherish a false hope. 

That's why we’ve outlined the main stages of getting Reddit API access, so you won’t get lost in this maze. 

Step 1: Explore the current Reddit Data API access process

Learn the official Data API Terms and documentation before applying. However, Reddit itself notes that some legacy API docs and support resources may be outdated, and relying on third-party resources may also be a risky game. 

Step 2: Define what you’re building and get approval 

Be ready to share your use case clearly. And no, the explanation should not sound like "We need lots of Reddit data for our project.” Consider something like:

"We’re building an internal social listening tool that analyzes public discussions about selected consumer brands and tracks changes in discussion volume over time.”

Your answer should clearly cover such aspects as:

  • specifics of your app;
  • type of data it needs; 
  • your audience/users;
  • if your project is commercial/non commercial;
  • frequency of the required Reddit access;
  • how you will process and store the data.

Outlining these points is halfway to success, as it gives Reddit a clear picture of how its data will be used and obtained, reducing the possibility of any user privacy harm.

Step 3: Register your app and get Client ID + Client Secret

You can proceed to the app registration stage in your account settings and obtain Reddit API credentials after exploring the docs. Still, these credentials identify your app but do not by themselves grant Data API access; they must be used together with an approved Data API registration and OAuth tokens.

Here's how the process will go step-by-step:

  • Go to your Reddit Preferences → Apps (or the “developed applications” section) and create a new app.
  • Choose the appropriate app type. The official Reddit API typically distinguishes 3 main app types: script, web app, and installed app.
  • After saving, you’ll receive a Client ID (shown as “personal use script” or similar) and a Client Secret.reddit+1

Note: a backend script collecting permitted data has very different security requirements from a web application where thousands of users connect their Reddit accounts, so choose accordingly. Here’s a short breakdown of each type.

App type Typical use
Script Personal/server-side scripts and automation
Web app Server-based applications with user authorization
Installed app Applications distributed to users/devices

Step 4: Request Data API access (non‑commercial or commercial)

Having credentials is not the same as having data access. Reddit requires explicit approval for Data API usage.

  • For non‑commercial projects (research, internal tools, non‑monetized products), use the Data API access request path described on the Developer Platform & Accessing Reddit Data page.
  • For commercial use cases (paid products, SaaS, monetized analytics, selling insights), you must contact Reddit and sign a separate commercial agreement before accessing data.

In your request, clearly describe:

  • what you are building;
  • which subreddits or content types you need;
  • how you will store, secure, and delete data (including removed posts/comments and deleted accounts);
  • whether any part of the project involves AI/ML training (which is prohibited without explicit Reddit consent).

Approval is required before you access Reddit data via the API.

Step 5: Implement OAuth 2.0 and obtain an access token

The official tool requires OAuth for authenticated requests; traffic not using OAuth or Reddit API login credentials will be blocked.

Basic server‑side flow (simplified):

  1. Use your Client ID and Client Secret to request a token from Reddit’s OAuth endpoint.
  2. Include a compliant User‑Agent in every request:
    <platform>:<app ID>:<version string> (by /u/<reddit username>).
  3. Your Reddit API access token should be stored securely and be used every time the authorization is requested: Bearer <token> header for API calls.
  4. Feel free to refresh or re‑request tokens as needed, as they are not permanent.
  5. Remember that Client ID/Secret should remain totally secret, so make sure they are not exposed in open code or repos. 

Step 6: Follow rate limits and responsible use practices

Even with approved access, Reddit enforces rate limits and strict usage rules.

  • Free, approved Data API access is limited (e.g., around 100 queries per minute per OAuth client ID); higher limits require separate arrangements.
  • Do not attempt to re-identify anonymous users or combine Reddit data with other datasets to identify individuals.
  • Remove deleted posts/comments and stop using data from deleted accounts; Reddit recommends deleting stored data within 48 hours of removal.

For smooth and hassle-free operation, make sure your system is designed to handle 429 (rate limit) responses gracefully and routinely purge data in line with the terms.

Test Your Reddit API Credentials

When the theory is understood, it’s time to master it. Of course, we can not do it without Python. For this example, we’ll use the requests library, so you’d better install it if you haven’t already:

pip install requests

Now let’s request an OAuth token:

import requests

CLIENT_ID = "YOUR_CLIENT_ID"
CLIENT_SECRET = "YOUR_CLIENT_SECRET"
USER_AGENT = "reddit-data-demo/1.0 by u/YOUR_USERNAME"

auth = requests.auth.HTTPBasicAuth(
    CLIENT_ID,
    CLIENT_SECRET
)

headers = {
    "User-Agent": USER_AGENT
}

data = {
    "grant_type": "client_credentials"
}

response = requests.post(
    "https://www.reddit.com/api/v1/access_token",
    auth=auth,
    headers=headers,
    data=data
)

response.raise_for_status()

token = response.json()["access_token"]

print("Access token received.")

If the Reddit access token is returned, congratulations: your credentials have successfully completed the authentication step.

A note on token types: the client_credentials grant returns an app-only token. That is typically enough for reading public subreddit listings like the one below, but it doesn’t cover every endpoint. If you get a 403 on a specific endpoint, you may need a user-context token (for example, via the authorization code flow) with the right scopes. Reddit’s documentation requires OAuth but doesn’t publish a full endpoint-by-endpoint scope table, so test each endpoint you depend on.

But authentication isn’t the finish line, so now it’s the best time to test the code and actually request some data.

Complete Example: Get the 10 Newest Posts From a Subreddit

To start, we will use the token to pass Reddit's OAuth API. Our task is to pull the ten newest posts, for example, from the r/python subreddit.

import requests
from requests.auth import HTTPBasicAuth

CLIENT_ID = "YOUR_CLIENT_ID"
CLIENT_SECRET = "YOUR_CLIENT_SECRET"
USER_AGENT = "reddit-data-demo/1.0 by u/YOUR_USERNAME"

# Step 1: Authenticate the application
auth = HTTPBasicAuth(CLIENT_ID, CLIENT_SECRET)
headers = {"User-Agent": USER_AGENT}
token_response = requests.post(
    "https://www.reddit.com/api/v1/access_token",
    auth=auth,
    headers=headers,
    data={"grant_type": "client_credentials"},
)
token_response.raise_for_status()
access_token = token_response.json()["access_token"]

# Step 2: Add the OAuth token to the request
headers["Authorization"] = f"Bearer {access_token}"

# Step 3: Request the newest subreddit posts
subreddit = "python"
response = requests.get(
    f"https://oauth.reddit.com/r/{subreddit}/new",
    headers=headers,
    params={"limit": 10},
)
response.raise_for_status()
payload = response.json()

# Step 4: Parse the results
for post in payload["data"]["children"]:
    item = post["data"]
    print({
        "title": item.get("title"),
        "author": item.get("author"),
        "score": item.get("score"),
        "created_utc": item.get("created_utc"),
        "permalink": item.get("permalink"),
    })

So typically the flow is: credentials → OAuth token → oauth.reddit.com → JSON → 10 Reddit posts. But only if everything goes smoothly and just right. If not, here’s a note with the most common Reddit API errors every dev has dealt with at least once. 

Common Errors: What If Reddit Rejects Your Request?

A rejected request doesn’t necessarily mean your OAuth implementation is wrong. It can mean Reddit hasn’t approved the proposed use of its Data API.

There are at least 5 reasons why your request does not work out. Here’s a description of each with common fixes:

  1. The authentication problem (401) appears when Reddit can’t identify who you are: your credentials, token, headers, or request are missing, outdated, or wrong. 
    Fix:
    check if your credentials are correct and up to date; make sure the Authorization header is formatted correctly.
  2. The access or permission problem (403) happens when the requested API use or resource isn’t available to your application, even though the credentials may be valid.
    Fix:
    reread Reddit’s current eligibility and developer requirements; use an official support path if there is one for your specific case.
  3. The rate limit problem (429) occurs when you’ve made too many requests or hit the endpoint-specific limit, or used a generic User-Agent. 
    Fix:
    monitor the X-Ratelimit-Remaining and X-Ratelimit-Reset headers and retry.
  4. The request or resource problem (400, 404) shows up when the request is incorrect, or the content you want to target has been removed.
    Fix:
    check the URL, parameters, and spelling of the subreddit or username.
  5. The server-side problem (500, 502, 503) means Reddit failed to process the request on its end.

Fix: try once again with exponential backoff. 

Most importantly, don't keep regenerating credentials or sending the same request again and again in the hope that the error will go away. Find the cause first, change what's wrong, and only then try again.

Before the Production Starts: A Few Helpful Tips

Your code works and the data is flowing, so only two things are left to check before going live: how you store your credentials, and how much you trust the sources you've been following.

Reddit API Security: Never Put Your Secret on GitHub

If only you knew how many times developers have burned their fingers by uploading their credentials to GitHub along with their code. Yes, it happens — and it happens frequently. So we recommend that you treat your Client Secret like a password and not hardcode it in your source code. Instead, use the environment variables (as in the example) and keep .env files out of version control:

import os
CLIENT_ID = os.getenv("REDDIT_CLIENT_ID")
CLIENT_SECRET = os.getenv("REDDIT_CLIENT_SECRET")

A few other basics include:

  • never expose secrets in frontend code;
  • rotate credentials if they’re leaked;
  • request only the permissions you need;
  • don’t log access tokens unnecessarily;
  • follow Reddit’s storage and data-use requirements;
  • review Reddit’s Developer Terms and Data API Terms before production deployment.

Sounds boring, isn’t it? Well, in any case, it is still better than explaining a leaked production secret to your security team.

About Reddit API Sources: When Dates Matter

Here’s a surprisingly important tip when working with Reddit’s API: check when the docs/guide/repos were updated.

Reddit’s developer rules have changed repeatedly, while search engines still surface API tutorials, Stack Overflow answers, GitHub snippets, Reddit threads, and videos created under older rules.

That creates a dangerous situation where technically correct code can be wrapped in outdated access assumptions. So, before relying on info about API availability, rate limits, pricing, approval, etc., check both:

  1. When was the article published?
  2. Is this exact claim supported by Reddit?
  3. How long ago was that Reddit doc updated? 

Treat anything Reddit hasn't confirmed as a hint, not a fact, and the date on the page will tell you how much weight it deserves.

Official Reddit API vs. Data365 API: Which Route Makes Sense?

At this point, you may be thinking: “I just wanted Reddit data. How did I end up learning OAuth?” Fair question. The official Reddit API can be a logical choice when your project fits Reddit’s supported use cases, and you want to work directly with Reddit.

But not every data project has the same requirements. For teams building social listening, market intelligence, competitor analysis, or multi-platform datasets, the engineering question becomes slightly different: Do you want to integrate with Reddit — or do you primarily need Reddit data?

Those aren’t always the same problem. Here’s the practical difference.

Feature Reddit API Data365 API
Reddit developer access for the customer Required (approval-based) Handled on the provider side, according to Data365
OAuth setup Yes No Reddit OAuth setup for the customer
Authentication Reddit OAuth Data365 access token
Reddit data Yes Public Reddit data supported by Data365
Multiple social networks Reddit only Reddit + other supported social platforms
Best fit Reddit-native integrations Data collection, analytics and multi-platform projects

That becomes particularly useful when Reddit isn’t the only source in your pipeline, because, as we know, the social listening system rarely ends with Reddit → database, but is more like Reddit, Instagram, TikTok, Facebook, X → unified dataset → analysis. And that’s exactly where a multi-platform social media API starts making considerably more sense.

ABOUT DATA365
Social media data, without the complexity
Data365 is an independent data retrieval company that has worked exclusively with social media since 2018. Started with a few networks first, now we provide access to public data across the 7 major social media platforms, including Reddit, X (Twitter), Threads, and others.
Our main advantage is a dedicated technical team, which supports continuous monitoring and fixes to the ever-changing infrastructure of the networks, ensuring reliable data collection with 99% uptime. We also offer a 14-day free trial and flexible subscription plans, so clients can choose the scalability and network coverage that work best for them.

Final Thoughts on Reddit Data Collection

Getting a Reddit API key in 2026 means working through a chain, not finding a single key. The whole chain looks like this:

Getting a Reddit API key in 2026 means working through a chain, not finding a single key. The whole chain looks like this:
01
Use case
02
Reddit approval
03
Client credentials
04
OAuth
05
Reddit API token
06
API request
07
Data

Once you understand that, the technical implementation becomes surprisingly straightforward.

The harder question is often whether Reddit’s official developer route fits what you’re actually trying to build. If it does, use the official API, follow Reddit’s current documentation, keep your credentials secure, and respect the platform’s access requirements.

If what you really need is scalable public social media data (especially across Reddit and multiple other platforms) a third-party API such as Data365 may remove a considerable amount of authentication and data-collection infrastructure from the equation.

Extract data from top social media networks with Data365 API

Request a free 14-day trial and get 20+ data types

Contact us
Table of Content

Need an API to extract data from this social media?

Contact us and get a free trial of Data365 API

Request a free trial

Need to extract data from social media?

Request a free trial of Data365 API for extracting data

Major social networks in 1 place
Fair pricing
Email support
Detailed API documentation
Comprehensive data of any volume
No downtimes, uptime of at least 99%

How to Get Reddit API Keys FAQ

Why was my Reddit API application rejected?

Reddit doesn’t guarantee Data API access simply because an application has been submitted. Review your intended use against Reddit’s current developer policies and make sure your application clearly explains what data you need, how it will be used, and whether the project is commercial or non-commercial. Commercial use in particular requires separate permission from Reddit.

Can I get data without a Reddit API login?

No, you can’t. Using the official Reddit API for data gathering requires you to log in and register your application. Only after that will you be able to get the required credentials after an approval period to proceed with the API and get the needed public information from the platform.   

Can I get Reddit API keys without approval?

No, not for the Data API. Having application credentials and having approved Data API access are separate concepts, and Reddit’s Responsible Builder Policy requires explicit approval before you access Reddit data through the API.

Why am I getting a 403 with valid Reddit credentials?

A 403 Forbidden response can indicate an access or permission issue rather than incorrect credentials. Check whether your application is approved for the requested resource, whether the endpoint needs a user token with specific scopes, and whether Reddit’s current access requirements apply to your project.

What’s the difference between a Reddit API token, Client ID, and Client Secret?

The Client ID identifies your application. The Client Secret is a confidential application credential. The access token is a temporary OAuth credential used to authorize API requests.

Think: ID → who are you? Secret → prove it. Token → okay, here’s what you can access.

What if the official Reddit API doesn’t fit my project?

If your goal is data collection rather than building a Reddit-native application, you can evaluate third-party data providers such as Data365. This can be particularly useful when you need public social media data across several platforms and don’t want to build and maintain a separate authentication and collection pipeline for each one. Plus, Data365 grants 14 days of free access to test the Social Media API without paying.

Need an API to extract real-time data from Social Media?

Submit a form to get a free trial of the Data365 Social Media API.
0/255

By submitting this form, you acknowledge that you have read, understood, and agree to our Terms and Conditions, which outline how your data will be collected, used, and protected. You can review our full Privacy Policy here.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Trusted by