Back to Blog
Tech Deep Dive

How to Get Reddit API Credentials in 2025 (After the Big Changes)

2025-12-21
How to Get Reddit API Credentials in 2025 (After the Big Changes)

So you want to access Reddit data programmatically.

Maybe you are building a research project. Maybe you need to scrape subreddit data for marketing. Maybe you just want to automate something that takes too long manually.

Here is the problem: Reddit API access got way more complicated in 2024.

I spent two days trying to figure out the new process. Outdated tutorials everywhere. Confusing documentation. It was honestly kind of a mess.

This guide is what I wish I had when I started. The current state of Reddit API access, how to actually get credentials, and when you might want to skip the API entirely.

What Changed With Reddit API Access

Let me give you the quick version of what happened.

In July 2023, Reddit introduced pricing for API access. Before that? Free. After? $0.24 per 1,000 API calls for high-volume usage. This killed a lot of popular third-party apps like Apollo and Reddit is Fun - they simply could not afford to keep running.

But it got worse.

As of late 2024, you cannot just sign up and get API access anymore. Reddit removed self-service access entirely. Now you have to submit a request and wait for approval.

Yeah. Apply for permission to use the API. And hope they say yes.

The good news? For personal projects with low volume, free access is still possible. But the hoops you have to jump through are real.

Step-by-Step: Getting Reddit API Credentials

Alright, here is the actual process. This assumes you want legitimate API access for a personal or research project.

Step 1: Create a Reddit Account (If You Do Not Have One)

Self-explanatory. You need a Reddit account to request API access. If you are doing anything serious, use an account that looks legitimate - some post history, not brand new.

Step 2: Go to Reddit's App Preferences

Navigate to: https://www.reddit.com/prefs/apps (or https://old.reddit.com/prefs/apps for the old interface)

This is where you create your API application. Look for the "are you a developer? create an app..." link.

Reddit Apps Page The Reddit preferences page where you manage API applications

Step 3: Create an Application

Click "create another app" at the bottom of the page. You will need to fill in:

  • Name: Something descriptive for your project
  • App type: Usually "script" for personal use, or "web app" for something public-facing
  • Description: Brief explanation of what you are building
  • Redirect URI: For script-type apps, use http://localhost:8080

Reddit Create App Form The application creation form - note the three app types available

For personal scripts, select "script" - this gives you access only to your own account data.

Script Type Selected Select "script" for personal automation projects

Once created, you will get:

  • Client ID: The string under your app name
  • Client Secret: Click "edit" to reveal this

Step 4: Request API Access (The New Requirement)

Here is where it gets annoying - and this is the big change from before.

Important: Reddit now requires you to read and agree to their Responsible Builder Policy before using the API.

Responsible Builder Policy Notice The new policy requirement - you cannot skip this step

Go to: https://support.reddithelp.com/hc/en-us/articles/42728983564564-Responsible-Builder-Policy

You need to submit a request explaining:

  • What you are building
  • How you will use the data
  • Expected API call volume

For personal/research projects, approval usually takes a few days. For commercial use? Could take weeks, and they might say no.

Step 5: Authenticate with OAuth2

Once approved, you need to authenticate. Reddit uses OAuth2, which means:

  1. Make a request to https://www.reddit.com/api/v1/access_token
  2. Include your client ID and secret as Basic Auth
  3. Get back an access token
  4. Use that token in your API requests

Here is a basic Python example:

import requests
import base64

client_id = 'your_client_id'
client_secret = 'your_client_secret'
username = 'your_username'
password = 'your_password'

auth = base64.b64encode(f'{client_id}:{client_secret}'.encode()).decode()

headers = {
    'Authorization': f'Basic {auth}',
    'User-Agent': 'YourApp/1.0'
}

data = {
    'grant_type': 'password',
    'username': username,
    'password': password
}

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

access_token = response.json()['access_token']

Not exactly beginner-friendly.

The Rate Limits You Need to Know

Even with valid credentials, Reddit limits how much you can do:

  • 60 requests per minute for OAuth-authenticated requests
  • 10 requests per minute for unauthenticated requests
  • Burst limits can get you temporarily blocked

For bulk data collection, these limits get frustrating fast. Scraping 1000 posts across multiple subreddits? You are looking at significant wait times.

Reddit API Pricing (Current State)

Here is where it stands:

| Usage Level | Cost | |-------------|------| | Free tier | ~100 queries/minute, personal use | | Paid tier | $0.24 per 1,000 API calls | | Enterprise | Contact Reddit for pricing |

The free tier works for small projects. But if you are doing anything at scale - research, marketing automation, data analysis - you will hit limits quickly.

The Honest Problem With Going the API Route

Look, I will be straight with you.

For most people wanting to work with Reddit data, the API route is overkill. Here is why:

  1. Approval takes time - Days to weeks depending on your use case
  2. Setup is technical - OAuth2, rate limiting, error handling
  3. Maintenance is ongoing - APIs change, tokens expire, things break
  4. Limits are restrictive - 60 requests/minute sounds like a lot until you need more

If you are a developer building something production-grade, sure, go the API route. Makes sense.

But if you just want to:

  • Find trending posts in certain subreddits
  • Export user data for research
  • Monitor discussions for marketing opportunities
  • Analyze subreddit activity

There are simpler ways.

The Alternative: Desktop Tools That Skip the API Hassle

After fighting with the API for a while, I ended up building a desktop tool that handles all this without needing API credentials.

It runs locally on your computer, uses your normal browser connection, and lets you:

  • Scrape posts from multiple subreddits at once
  • Filter by comment count, date, score
  • Export to CSV for analysis
  • Generate AI-powered replies

No API application. No approval process. No rate limit headaches.

The tool is called Reddit Toolbox - free tier available if you want to try it. Fair warning: the UI could use polish, but the core features work.

For most non-developer use cases, this is honestly the faster path.

When You SHOULD Use the API

That said, here are cases where the official API makes sense:

  • Building a public app that other people will use
  • Real-time monitoring that needs consistent, reliable access
  • Academic research where you need to cite official data sources
  • Commercial products that require proper licensing

If any of those apply, go through the proper channels. The API is well-documented once you get access.

Quick Reference: Reddit API Endpoints

For those going the API route, here are the endpoints you will use most:

| Endpoint | Purpose | |----------|---------| | /r/{subreddit}/hot | Get hot posts | | /r/{subreddit}/new | Get new posts | | /r/{subreddit}/top | Get top posts | | /r/{subreddit}/about | Subreddit info | | /user/{username}/about | User info | | /api/submit | Submit new post | | /api/comment | Post a comment |

Full documentation: https://www.reddit.com/dev/api/

Wrapping Up

Reddit API access in 2025 is more locked down than it used to be. The approval process exists, the rate limits are real, and the technical setup is not trivial.

For developers building real applications: worth the effort.

For everyone else: consider whether a simpler tool might save you time. Check out the download page if the no-API approach sounds better for your use case.

Either way, hope this saved you some of the confusion I went through.


Related posts: