An app that calls an AI model for every user action is a business with a cost that scales with usage, not a flat server bill. Without a ceiling somewhere, one confused user hammering refresh, or one bug stuck in a retry loop, can run up charges a normal day of traffic would never come close to producing, and the bill lands at the end of the month, well after whatever caused it has already stopped.

A per-user limit is not about being stingy

A free tier or a single paid plan needs a cap on how many AI calls one account can make in an hour, not because you distrust your customers, but because a loop, a script, or a scraped API key does not know when to stop on its own. The limit protects the many well-behaved users from the one account, human or not, that is not, and it should fail politely with a clear message rather than a confusing error. Think of it the same way you would think of a fair-use policy: invisible to almost everyone, and only ever felt by whoever was about to cause a problem.

Tell your AI: "Add a per-user rate limit on every AI call in the app, with a sensible default, and tell me where in the code it lives so I can adjust it later."

Set the hard ceiling at the provider too

Your own rate limit protects against a single runaway account, but a wider bug, a loop with genuinely no limit at all, needs a second backstop that does not depend on your own code working correctly in the first place. Both OpenAI and Anthropic let you set a hard monthly spend cap directly in your account's billing settings, completely separate from anything your app itself enforces, so a mistake in your own code still has a ceiling above it.

Tell your AI: "Show me where to set a hard monthly spend cap in our AI provider's billing dashboard, separate from the rate limit inside the app."

This pairs with the limits you already sell

If your plans already cap usage the way we described in limits are your pricing model, rate limiting is simply the technical half of that same idea: the plan says what a customer is allowed to use, and the rate limit is what actually enforces it the moment someone tries to use more than they paid for. Without the enforcement, the plan is only a promise, and an expensive one to keep by accident.

Tell your AI: "Check that our plan limits from the pricing page are the same numbers enforced in the code, not just numbers written on a page."