How do you authenticate the Reddit API?
On Redditapis you authenticate the Reddit API with a bearer token. Sign up, copy your token, and send it in the Authorization header as Bearer followed by the token. The token is live immediately, so there is no OAuth flow, no PRAW setup, and no app-review queue. Calls go to api.redditapis.com and return clean JSON, and you start with $0.50 in free credits at signup.
The bearer-token request
Put your token in the Authorization header and call any endpoint. There is no token exchange step and no refresh loop to manage.
curl "https://api.redditapis.com/api/reddit/posts?subreddit=programming&sort=new&limit=25" \
-H "Authorization: Bearer YOUR_TOKEN"Why there is no OAuth dance
The official Reddit API requires an OAuth app, an approval review, and a token-refresh cycle. Redditapis issues a bearer token at signup that works immediately, so you skip the app registration and the refresh handling. You can see what calls cost on how much the Reddit API costs and generate a token on the Reddit API key page.
What the API returns when auth fails
Three status codes cover almost every authentication problem, and they mean different things. Reading them correctly saves you from rotating a key that was never the problem. All three arrive as JSON with a single error field, so a client can branch on the status code and log the message without parsing anything further.
| Status | Response | What it means |
|---|---|---|
| 401 | Missing Bearer token | No Authorization header reached the API. Usually a header the client dropped, or an environment variable that resolved empty. |
| 403 | Invalid token | The header arrived but the key is not one we recognise. Check for a truncated paste or a key from a different account. |
| 402 | Insufficient credits | The key is valid and the balance is spent. Nothing is wrong with your auth; add credit and the same request succeeds. |
The one worth separating out is 402. It is not an authentication failure at all, so retrying with a fresh key will not fix it and a retry loop will simply repeat. Treat 402 as a billing signal in your error handling, and 401 or 403 as a configuration one.
The second layer: acting as a Reddit account
The bearer token authenticates you to Redditapis, and that is all most projects need. Every public read works with nothing else: posts, comments, search, users, communities. Authentication here is two layers rather than one, and which layer you need depends on whether you are reading Reddit or acting on it as somebody.
Anything that acts as a specific Reddit user needs a second credential, because Reddit itself has to see a signed-in account. Call POST /api/reddit/login with a Reddit username and password, plus a TOTP secret if that account has two-factor enabled, and you get back the session cookies the write, vote, profile, and DM endpoints expect. Those cookies also unlock the four private listings, a user's upvoted, saved, hidden, and gilded items, which Reddit serves only to the account that owns them. Ask for someone else's and the call returns 403 no matter how valid your bearer token is.
So the rule is simple. Reading public Reddit data is one header. Doing something as an account is one header plus a login call.
Frequently asked
How do I authenticate the Reddit API?
Send your token in the Authorization header as a bearer token: Authorization: Bearer YOUR_TOKEN. On Redditapis the token is live the moment you sign up, so there is no OAuth handshake and no app review to wait through.
Do I need OAuth or PRAW?
No. Redditapis uses a simple bearer token instead of the official OAuth flow, and you do not need PRAW. You copy the token from your dashboard and put it in the Authorization header of a plain REST call.
Where do I get the token?
You get it at signup. Create an account, copy the bearer token from the dashboard, and it works immediately with $0.50 in free credits. There is no waitlist and no application review.
What does a call look like?
A GET request to api.redditapis.com with your bearer token in the Authorization header. The response is clean JSON, so you can read posts, comments, and users without parsing HTML or managing an OAuth refresh.
Get a bearer token in minutes
No OAuth app, no approval, no PRAW. Sign up, copy your token, and start with $0.50 in free credits.
Get your Reddit API key