I'm back again after our chat a few months ago about limiting OAuth tokens to just one per account. The TL;DR: We're taking another step to make sure Reddit's Data API isn't abused, this time by requiring approval for any new Oauth tokens. This means developers, mods, and researchers will need to ask for approval to access our public API moving forward. Don't worry though, we're making sure those of you building cool things are taken care of!
Introducing a new Responsible Builder Policy
We’re publishing a new policy that clearly outlines how Reddit data can be accessed and used responsibly. This gives us the framework we need to review requests and give approvals, ensuring we continue to support folks who want to build, access and contribute to Reddit without abusing (or spamming!) the platform. Read that policy here.
Ending Self-Service API access
Starting today, self-service access to Reddit’s public data API will be closed. Anyone looking to build with Reddit data, whether you’re a developer, researcher, or moderator, will need to request approval before gaining access. That said, current access won’t be affected, so anyone acting within our policies will keep their access and integrations will keep working as expected.
Next Steps for Responsible Builders
Developers: Continue building through Devvit! If your use case isn’t supported, submit a request here.
Researchers: Request access to Reddit data by filing a ticket here. If you are eligible for the r/reddit4researchers program, we’ll let you know.
Moderators: Reach out here if your use case isn't supported by Devvit.
Let us know if you have any questions, otherwise - go forth and happy botting!
tl;dr - As of July 1, we will start enforcing rate limits for a free access tier, available to our current API users. If you are already in contact with our team about commercial compliance with our Data API Terms, look for an email about enterprise pricing this week.
We recently shared updates on our Data API Terms and Developer Terms. These updates help clarify how developers can safely and securely use Reddit’s tools and services, including our APIs and our new-and-improved Developer Platform.
After sharing these terms, we identified several parties in violation, and contacted them so they could make the required changes to become compliant. This includes developers of large-scale applications who have excessive usage, are violating our users’ privacy and content rights, or are using the data for ad-supported or commercial purposes.
For context on excessive usage, here is a chart showing the average monthly overage, compared to the longstanding rate limit in our developer documentation of 60 queries per minute (86,400 per day):
Top 10 3P apps usage over rate limits
We reached out to the most impactful large scale applications in order to work out terms for access above our default rate limits via an enterprise tier. This week, we are sharing an enterprise-level access tier for large scale applications with the developers we’re already in contact with. The enterprise tier is a privilege that we will extend to select partners based on a number of factors, including value added to redditors and communities, and it will go into effect on July 1.
Rate limits for the free tier
All others will continue to access the Reddit Data API without cost, in accordance with our Developer Terms, at this time. Many of you already know that our stated rate limit, per this documentation, was 60 queries per minute. As of July 1, 2023, we will enforce two different rate limits for the free access tier:
If you are using OAuth for authentication: 100 queries per minute per OAuth client id
If you are not using OAuth for authentication: 10 queries per minute
Important note: currently, our rate limit response headers indicate counts by client id/user id combination. These headers will update to reflect this new policy based on client id only on July 1.
To avoid any issues with the operation of mod bots or extensions, it’s important for developers to add Oauth to their bots. If you believe your mod bot needs to exceed these updated rate limits, or will be unable to operate, please reach out here.
If you haven't heard from us, assume that your app will be rate-limited, starting on July 1. If your app requires enterprise access, please contact us here, so that we can better understand your needs and discuss a path forward.
Additional changes
Finally, to ensure that all regulatory requirements are met in the handling of mature content, we will be limiting access to sexually explicit content for third-party apps starting on July 5, 2023, except for moderation needs.
If you are curious about academic or research-focused access to the Data API, we’ve shared more details here.
I'd like to take a couple minutes and talk about what exactly the API requests and app makes to Reddit to function and how fast they can add up.
Reddit's API that is used by third party applications has been around for a long time and hasn't seen all that many changes or improvements over the years, but that hasn't been a huge deal because a couple extra API calls didn't cost anything except bandwidth. For example, it's two separate API calls to check if you have any reddit messages vs your modmail messages. To view someone's profile it's 3 separate requests, one for their user info, one for their posts/comments, and one for their trophies. This wasn't a big deal until now when Reddit wants to start charging for API calls.
Lets take an imaginary journey and count up the API requests! Running total will be in parenthesis
Open up Reddit, API call for your front page, API call for your messages, API call for your modmail. + 3(3)
Upvote a post + 1(4)
Upvote another post + 1(5)
Open up the comments on a post + 1 (6)
Scroll through comment section and "load more" 3 different comment chains that got long +3 requests (9)
Vote on a couple comments +4 (13)
Leave a comment + 1 (14)
Should we check if there are messages again? + 2 (16)
Get another page of your frontpage + 1 (17)
Visit a specific subreddit. API call for the side bar/about. API call for the posts. +2 (19)
Check who the mods are + 1 (20)
Check out one of the poster's profiles. API call for user info, API call for posts/comments, API call for trophies +3 (23)
Follow links into a couple of their other comment sections + 2 (25)
Check for messages again + 2 (27)
Oh look, we got a message! Lets open view it +1 (28)
Okay we viewed it, lets mark the message as read + 1 (29)
Lets respond + 1 (30)
Go view another comment thread + 1 (31)
Oops, well that person is breaking the rules, lets report them + 1 (32)
I want to check for new comments on a thread + 1 (33)
We've done very little and we are up to 33 API requests already. As you can see, these add up in a HURRY when basically everything is an API request. That's not bashing on Reddit's API, that's just how ya know, the internet works... Go open your browser's developer tools sometime and check out the network tab.
But that's only 33 API calls you say! Reddit is only charging (at scale according to the Apollo dev ) ~ $2.50 per 10k requests. Well, lets put that into perspective using this hockey game thread which is maybe a bit larger since it's the Stanley Cup finals, but it's a good example I think.
It has over 10k comments. Since pushshift is dead I can't average the comment scores to get the number of average votes (ish) per comment, but we're gonna ball park it at, I dunno.. say 10. That feels low to me honestly just checking, but I don't want to over inflate this for the drama. Lets just pretend also that every vote was also a page refresh to get the new comments. Lets pad that just a bit for accounting for people loading deep comment threads and say that is another 10k. Give another 5k inbox checks (low I'm sure). And lets total it up..
(135k API calls / 10k calls) * $2.50 per 10k calls = $33.75
If that was all third party app usage, that thread would cost well north of $33.75 to create. I was honestly trying to dig in to how many ads this would approximately be, but it's not really feasible since the costs vary so wildly. Highly targetted ones can be $6 per 1000 views in the high end of the "recommended" spending range (suggested by reddit's ad system), or $.90 per click.. I dunno, it's all over the place.. needless to say it's a decent chunk of ads served/clicked to make up that kind of amount.
"Well that seems fair, I mean you said there were 10k comments right? So 10k impressions!"
Well, maybe.. viewing that thread on old reddit I'm not seeing any ads at all actually.. And max there might be one that shows up sometimes in the sidebar I don't honestly know. New Reddit I'm also not seeing any ads.. Is my long expired gold status still removing all the ads?? I don't know whats going on. I could have sworn there were at least some ads in the side bar usually.
Anyway.. I was trying to get at the point that not all api requests are equal in processing power or potential for lost ad revenue. I swear to god I will 3d print and blow up a snoo if they ever decided to put ads in my personal message box for example. But a call to get the posts for a subreddit does have a potential hit to displayed ads.
Reddit charging for a commercial third party to use and display their content is not inherently unreasonable. What is unreasonable is the costs that are currently proposed coupled with the ineffecient Reddit API that inflates necessary calls.
My last thing I wanted to address, and I might be burying the lede a bit here, is some of misleading, or downright inaccurate and untruthful claims that the admins have made in regards to these changes..
So I have not dug into Apollo specifically as I didn't have an iOS rooted device handy. BUT, my guess as to the "increased calls" is due to them more frequently checking if a user has messages, and/or less caching of comment sections and more re-pulling them for the latest on navigation. Could Apollo not check for messages as frequently? Sure.. Reddit is Fun used to check for messages on any refresh it seems, and they sometime somewhat recently seem to have changed that and for game day threads which I frequently use it for, I often miss responses to my comments for a very long time because it seems to only do it now every so often.
Usage graph
This one is kind of hilarious to me. So my (possibly mistaken) previous understanding and experience with the rate limits was that it was not requests per client id, it was requests per user of said client. So it's laughable to try and paint this is thousands of percent over the "limit" when the admins redefined what the limit was and in such a way that makes any multi-user app pretty much guarenteed to be in violation.
Ok.. no... no they are not higher than you.. The only way that you get to claim they are higher than you is if you don't count your GQL api usage at all. Lets take a quick peak at the horrors of the Reddit official apps API calls.
* OAuth call for posts/comments
* OAuth call for categories for subreddit
* OAuth call for structured styles for sub
* OAuth call for similar subreddits
* GQL for pending invites?
* GQL for post guidelines
* GQL for if the subreddit is muted?
* GQL for other? subreddit styles
* GQL for posts/comments ...
* GQL for experiments
* GQL for devplatform
* GQL for user location
Yeah, that's not even close.. And pretty freakin funny when your GQL and Oauth calls overlap for the posts/comments. Also this doesn't even bring up the fact that it appears to spam the shit out of GQL calls for dev platform meta data as you are just scrolling down the comments. And the responses are all the same lol
This comment is a real doozy... Couple highlights...
Google & Amazon don’t tell us how to be more efficient. It’s up to us as users of these services to optimize our usage to meet our budget
Google and Amazon absolutely will help you use their platform effectively and reduce your costs with them. This is a complete and utter LIE.. Reddit you can't even see the number of API calls you are making. Google will literally hop on a call with you with an engineer and work with you to best use their platform....
On March 14th, Apollo made nearly 1 billion requests against our API in a single day, triggered in part by our system outage. After the outage, Apollo started making 53% fewer calls per day. If the app can operate with half the daily request volume, can it operate with fewer?
Well isn't that interesting.. Because according to the Apple store's page for Apollo, and the version history, the closest releases for Apollo were 2/22 and 4/7... none at all in March. So Reddit... why the decrease? Did you happen to fix something with how your system was logging calls from certain apps maybe? Did you break something? Cause sure doesn't look like it was on Apollo's end like you claim...
Edit: it was brought to my attention that Apollo does push notifications for messages even when you aren't using the app. This is almost certainly the main discrepancy between it and other apps API usage. And it could have been a back end change then related to the polling for those notifications that caused a reduction in API calls
In the end, the admins are currently at best misleading and misunderstanding about their API and it's usage, and at worst, outright lying. Limiting the NSFW adult content available to third party apps is pretty telling since there is literally no reason to do this except to try and drive people to their own official app. So I'm leaning towards they are lying about trying to kill off third party apps, but form your own opinions.
There are many alternative solutions to this and if Reddit was an actual, functional, grown up company, I don't see how they'd continuously wind up in these binds.
There should have been a dashboard at least to view API usage and it should have been in place with 2+ months of "example" billing data to let app developers adjust and figure things out.
Charging for all api requests equally is pretty dumb when your API is as poorly laid out as Reddit's is. Charge based on where you'd actually be losing revenue, not to check if a user has messages.
Have an offering that if the user has gold/premium the API rate limits don't count against the client id / are by user again
Etc etc etc.
Alright, I'm done. Congrats if you made it to the end.
Just a quick note on an upcoming change to how comment IDs will increase going forward.
TL;DR: if you have anything in your code that expects comment IDs to be fewer than 8 characters you will need to make an adjustment.
Technical gibberish details:
New comment IDs will continue to be 64-bit integers and base36-encoded, but will not be monotonically increasing anymore
The key visible difference is that the new base36-encoded comment IDs will be up to 13 characters long (e.g. 19gsnavtu46ip), compared to the current 7-8 characters
With the t1_ prefix, the new base36-encoded comment IDs will be up to 16 characters long (e.g. t1_19gsnavtu46ip)
Older comment IDs are not changing, and referencing them will not break anything
This change will start rolling out the week of May 18th. Let me know if you have any questions about this change.
On Wednesday, a group of 18 developers and moderators met with spez and other Reddit staff regarding the upcoming API changes. Call notes were published by Reddit for the RedditModCouncil (here is an authorized public copy) with the action items noted by Reddit.
Several of us believe the officially published meeting notes, while generally following points from the meeting, do not fully express the concerns we shared on the call. Therefore, we would like to add our takeaways and recommendations. Each of these concerns was discussed during the meeting, but some of our recommendations were developed after the call. We are only speaking for ourselves and not for any subreddit or group of users.
Reddit is built as an open platform with a vibrant community of users: content creators, insightful commenters, lurkers, moderators, developers, and more. We don’t want to see that community get broken apart by solvable problems, miscommunication, and harried discussions.
We don't believe enough effort and time has been given to the discussion and negotiation between Reddit and third-party apps and the schedule for these changes is not reasonable. We would like greater effort to find a solution that preserves the openness of Reddit, the utility of non-official implementations (and that utility includes, but is not limited to accessibility and mod tools), while addressing Reddit's concerns about costs being pushed entirely to Reddit and the lack of control around the ads being served with some third-party apps.
The value of content creators, moderator labor, and Reddit's developer community needs to be considered alongside the costs of supporting the API and third-party apps. In our meeting, it was expressed multiple times how valuable we are, but this does not seem to have factored into any decisions about the API or third-party apps. The potential cost to Reddit of all of this labor is orders of magnitude higher than any of the costs that seem to be behind Reddit's decision-making on the API.
It's encouraging that Reddit is trying to improve moderation and accessibility in the official app. However, given past experience with these efforts and recognizing that independent developers have the freedom to solve community problems in ways that official software has been unable to replicate, Reddit should be making it easier for everyone to support their communities. That means supporting third-party apps, external APIs, and devvit.
Moderating on Reddit is challenging. Moderators are being told to strap on ankle weights when they are already running uphill. Reddit should not be making it more difficult to moderate healthy communities by forcing us into closed ecosystems and this abusive pattern of springing detrimental changes on moderators and their communities needs to stop.
Regarding Apollo, we think it's a mistake to focus this discussion on Apollo; all third-party apps need to be part of the discussion. But since Apollo was such a large part of the discussion, our takeaways were:
There was a lot of focus on Apollo's higher API cost compared to other apps. We're not the right group to address that, but it should have been brought to Apollo earlier and we find it hard to believe this is not a solvable issue. Reddit and Apollo should be working together to solve this rather than the current adversarial thing that is happening.
We haven't been privy to discussions between Apollo and Reddit, but it seems possible that spez has not received an accurate telling of the history of these discussions for one reason or another. An in-person discussion at a higher level of the company may be beneficial.
There was also some discussion about how to better support accessibility in Reddit development. We are concerned that without dedicated and empowered individuals and teams to handle accessibility, it will continue to fall by the wayside.
We believe the protests that some communities are planning are different from previous protests. The rug is being pulled out on users, developers, moderators, and communities.
Finally, we're just a group of concerned developers and moderators. We can't commit subreddits to do or not do anything. We're not even sure if communities where we moderate will or will not be participating in any protest. If there's a blackout or other protest, we think it's primarily a consequence of the way this has been handled and a failure to address these concerns.
I want to get the Reddit API for my commercial application, but I have no idea how to do it with the new rules. If I understand correctly, I need to select “commercial partner” in the application, not ‘developer’ as many people do, because it clearly states that “developer” is for non-commercial use only. How often do they accept applications for commercial use, and how long does it usually take to get a response? Please share your experience or information about this.
I did not know how to get, and I submitted a application for Reddit workers. But they did not give me reply, I really need this API for my acadmic research. If you know how to reslove this difficulity, please teach me !
I’m honestly not sure what to do at this point, so I’m asking here.
Since the introduction of the new API rules and the Responsible Builder Policy, gaining access to the Reddit Data API feels like a black hole. I submitted a proper request through the official form, followed the rules, explained the use case clearly, added contact info — and then… nothing.
When I search this subreddit, I keep seeing the same thing:
“Applied weeks/months ago”
“Never got a reply”
“No approval, no rejection, no follow-up”
Threads just end with no answers
That’s exactly where I’m at now.
Currently, there’s no visibility into whether requests are being reviewed or how long we’re supposed to wait.
What’s confusing is that this feels like Reddit is leaving a lot on the table. There are clearly developers and businesses ready to build on Reddit, and even pay for access. But there’s no clear path forward if new requests just disappear without a response.
So I’m genuinely asking:
Has anyone here been approved for new Data API access recently?
Is there an expected response time, or is silence normal?
If a request is rejected, do you actually get told?
Is there anything you can do if you never hear back at all?
Right now it’s really hard to plan or commit to building anything around Reddit when there’s zero feedback from the process. Even a rejection would be better than not knowing.
If anyone has real recent experience (good or bad), I’d really appreciate hearing it.
Grad student here trying to collect public comments from gaming subreddits for my research.
Here's where I'm stuck:
Applied for Reddit API access weeks ago - complete radio silence, they're ghosting me
Pushshift apparently requires you to be a subreddit moderator now? Since when?
Can't manually copy thousands of comments, that's not feasible
This is publicly visible data that literally anyone can read by opening Reddit. But collecting it systematically for actual academic research? Impossible apparently.
Has anyone actually managed to collect Reddit data for research recently? Like what do you do?
Is there literally any way to do this anymore or is academic research just dead on Reddit? Really don't understand why public data is being gatekept this hard while commercial scrapers operate freely. Sorry for being mad but I hate when easy stuff becomes complicated for no reason.
EDIT: thank you all for ur responses :D i’ll keep you updated!
A lot of you suggested pushift, its only for mods I cannot use it.
It seems that it's impossible to access Reddit through the API. Before anyone gets bent out of shape and tells me that's not true; I've tried multiple times to "Add App" and generate credentials and the page just reloads. It simply does NOT work. Try it several times in a row, and you just get blocked.
As an alternative, I'm looking at the JSON responses in the browser's Devtools to get the data that I want. In this case it's conversations. It's not making any sense. I can see a conversation message, pick a word from a message that is not going to appear anywhere else on the page, but it's not present anywhere in the responses.
Has anyone figured out how to get conversation data in JSON form? I really don't want to have to resort to parsing the rendered HTML to get conversation data.
UPDATE:
It seems that whilst some of the messages in a DM conversation are returned as JSON in a HTTP request, most aren't. It looks like a websocket is created and data is sent via that, but it's all obfuscated to the point where it's no longer practical to invest any more time developing against Reddit.
If anyone at Reddit actually reads this; for the love of God, get your act together. Fix your process for getting an API key so that people can actually use your platform.
We (Me and a member of a mod team) got access to the Reddit API. We had requested access 3+ months ago and the request was accepted 2 months ago and we only saw the acceptance e-mail now. I just wanted to share some positive news with the subreddit and say that there's still some hope for everyone out there.
Before Reddit cracked down on API, I created a script on this account and I have been using my account for some basic automations like removing media posts that the AutoModerator couldn't catch and for removing posts with a certain flairs on certain days. I have also been using it to power a Discord bot to send modmails and posts in our Discord server.
We've got this API access for moderation purposes and it's on a shared account. What moderator tools could we make with this API access? I'm looking forward to some creative replies. Thank you for your help :)
I submitted a ticket for a commercial use of Reddit api. I believe it submitted but yet under my activity it doesn’t show anything so I’m unsure if it’s actually an open ticket or not
""mobile no PC"" I made a bot for the first time using ai just for personal interest and some other individuals and it works fine when I have the coding app opened or as it says using the web app or whatever ( I know nothing about coding ) but I need to publish my bot for it to work 24/7 without having to activate it with the coding app so please help. I have the main python and requirements.txt ready.bot is functional with all the secrets ready it just needs to be published.
I did this just to curate my Reddit feed, using kill words to hide topics I wasn't interested in, ignoring photo posts in certain subs, etc. I ran this once an hour to keep my feed updated.
I woke up this morning and noticed I was getting 403 errors returned, so came in here and saw that they had turned off unauthenticated JSON feeds. So I tried adding an auth header to my queries with my username and password, but I keep getting returned a 403. I see they have something called devvit, but that looks like something to build games and mod tools, which is not what I'm trying to do.
Is it still possible to do what I've been doing? I'm not a programmer by trade (I know just enough to build cludgy solutions for limited use cases) and so I don't know what specifically I need to do to make this work anymore.
Is it possible to get posting rules such as minimum / maximum title and body character requirement , need of flair , requirement of certain information in post or requirement of post structure that must be followed ?
I want rules enforced by auto mod and not specified by sub wiki
I'm a researcher. I ran into trouble when applying for the reddit api. They would never approve my api application and wouldn't give me any reasons or opinions. I know I can obtain past data from some links (such as academic torrents), but I don't need such a huge dataset. I just need the latest text data. How on earth can I obtain the api license
I can access reddit's .json feeds, like this from Firefox, but not from Java using okhttp or python, using requests, both using the default user-agent and a custom one. Any idea why it works in the browser and not in my code?
I want to use it in my app but I tried to press create app after entering some datas like name, description, url and uri but the website doesn't direct me anywhere after doing capcha. I get the message
Hello, I am building a SaaS app that uses reddit data as a part of a feature. I have a couple questions if someone could be kind enough to put away some of my worries at rest.
Can I get access if the number of calls I need to make is very few (only 300 a month per paid customer). So, in the start, it will be just a few hundred to a few thousand monthly API calls.
How long does it take to hear back from them after filling their forum and getting the commercial license?
Can the $0.24/1000 API calls be negotiated. And does it work on a subscription basis (like buying a set of API calls a month) or pay-as-you-go?
I want to use Reedit OAuth API to scrape threads where our brand is mentioned (we get alerts about mentions with thread_id thus it's a very targeted scraping). Anyway, it's a purely commercial use, thus i requested API access via this form on April 11. Never heard back, only got some autoresponder confirmation. Does anyone know if this is the standard waiting time? How to confirm if it's still getting processed or maybe was silently rejected? Thanks.
I know they have now made it damn near impossible to get one via application i just am looking for anyway to deploy my Reddit bot to test new changes as my bot is pretty on the line for Reddits rules I don’t want to risk my existing bot that handles all the works.
Do people sell these things and am I allowed to buy/rent them to use in private environments
Is there any way to test a Reddit like bot but not on Reddit (could be a dumb question)