Skip to main content
Question

Rate Limit too low

  • November 8, 2025
  • 2 replies
  • 50 views

Forum|alt.badge.img

Hey,

sorry but I can not wrap my head around how people manage to not exceed their rate-limit of the API v2 if they have a lot of users on their app?

Imagine this:
I have 10.000 Users, a VERY low user-base in terms of possibilities in Google Play Store AND Apple App Store. 
I also use the Currency Function of RC, so I not only need to update the Currency via API v2 but I also need to check sometimes if the user still has enough credits on his RC-Account to either stop him from accessing token-based functions or allowing him to do so.

So 1 User does 2-3 API v2 Calls to RC for accessing a Tool in my App.

You see the problem? 10.000 Users but only 30 of them can use the app per Minute, since the rate-limits exceeds otherwise. 

How should I manage a Delay-Function in my Backend, if 1000 Users try to API-Call and Update their currency on RC? It would take 30min, till the 1000. User has done his API call.
For 2000 Requests it will take 60min

What if I have a User-Base of 100.000 or even more?
 

is there any workaround for this?


EDIT: I see that the Currency API-Calls have a rate-limit of 480 per Minute, but it is still not managable with hundred-thousands of users

This post has been closed for comments

2 replies

hussain
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • November 12, 2025

Hi ​@enes-455812,

Thanks for reaching out, I’m happy to help.

Most apps don’t call the API per user action. They lean on caching + the SDK + webhooks to reduce read/write pressure. A few practical patterns that work well are as follows:

Instead of checking credits on every tap, fetch once per session (or every N seconds) and cache in your backend (e.g., Redis) with a short TTL eg 120s. Use that cached balance to allow/deny token-based actions. Reconcile in the background on a cadence or when you receive relevant events from RevenueCat. Docs on Virtual Currency webhook events can be found here: https://www.revenuecat.com/docs/offerings/virtual-currency/events#webhook-events

When multiple actions would update the same user’s balance, queue them and coalesce within a tiny window (e.g., 2000 ms). Apply a single “net” update instead of many small ones.

For access-gating that can be modeled as entitlements/subscriptions, let the client SDK (iOS/Android etc.) read & cache status locally, and only use the API when you truly need a server-authoritative balance.

That said, if you still require a higher rate limit you can open a support ticket with us, and include the rate you’re targeting, we can review it and increase the rate limit for your project, id everything checks out.

Hope this helps, let me know if you have any other questions.

Best,

Hussain


Forum|alt.badge.img
  • Author
  • New Member
  • November 12, 2025

Hey Hussain,

thank you very much for your help. Those are very good advises you gave me.
I’ll try to implement them, but I think I stick to the logic to build the Credit system in my backend, since this is the more scalable solution right now.