I feel Reddit could have easily come up with a model where the API usage gets tied to premium account and that decouples apps from API charges.
Reddit has now created a new problem for itself which is that a huge user base that previously didn't bother to look at third-party apps has suddenly become aware of third-party apps. So now, they will start bypassing Reddit's official apps that generate revenue for Reddit in favor of third-party apps that seemingly have a better UX and are ad-free.
The conversation is really only about free vs not free. Everything else is a smokescreen.
Apollo also does polling of the message box for each user for push notifications ( https://github.com/christianselig/apollo-backend/blob/main/i... ) which currently has a rate of 1/minute/user. This is another 1.4k calls per day and changes the price that would be paid.
Current rate: https://github.com/christianselig/apollo-backend/blob/b992d2...
March 16th rate update (6 r/m to 1r/m): https://github.com/christianselig/apollo-backend/commit/74a8...
Nov 22nd rate update (12 r/m to 6 r/m): https://github.com/christianselig/apollo-backend/commit/7582...
But I think there’s a huge difference between that charge being 20 cents and $2 (or 50 cents and $5).
If Reddit is saying "it's $2 for the 300 calls per day" that is claimed for the mobile app usage they're correct looking at what they charge for API calls based on the developer saying that the average user does 345 calls/day from the mobile app.
From the app develop perspective who also has a polling back end and an apple subscription cut and maintaining the same profit as before on top of it all, they're likely looking at closer to $20/month for that same user (noting that previously they were charing $4.99 and it was almost all profit for that user).
Those rates are BEST CASE. I linked the code directly to you that actually does it in your previous comment.
They queue 100[0] users every 5[1] seconds to pull their status, they then update the next check timestamp in the db to be at now + the constant you quote[2] which they use for rate limiting, so at most once per minute.
So unless they have under 1,000 users, then it won't ever be "every single minute."
[0]: https://github.com/christianselig/apollo-backend/blob/b992d2...
[1]: https://github.com/christianselig/apollo-backend/blob/b992d2...
[2]: https://github.com/christianselig/apollo-backend/blob/b992d2...