How rate limits are measured
OpenAI measures limits in requests per minute and per day, tokens per minute and per day, and for some models images or audio minutes per minute; whichever limit is reached first applies, so twenty tiny requests can exhaust a 20-RPM allowance with almost no tokens used. Limits are set at the organization and project level, vary by model, and some model families share one pool.
Anthropic measures requests per minute, input tokens per minute (ITPM) and output tokens per minute (OTPM) for each model class, and enforces them with a token-bucket algorithm: capacity refills continuously rather than resetting on the minute, and a limit of 60 RPM may be enforced as one request per second, so short bursts can trip it. Google applies requests per minute, tokens per minute and requests per day per project, not per API key, with daily quotas resetting at midnight Pacific time.
How tiers raise limits
Limits grow with your account. OpenAI's paid usage tiers — Build, Launch and Grow — upgrade automatically as total credit purchases cross each threshold, and each comes with a monthly usage limit. Anthropic places organizations on Start, Build and Scale tiers based on usage history and account standing, each with a monthly spend cap; new organizations may begin in an Evaluation tier below the standard limits. Google's Tier 1 requires a linked billing account.
Spend caps behave like limits too. Anthropic pauses API usage until the first of the next month once a tier's spend cap is reached, returning a 429 with no retry-after header — retrying will not help until access resumes or the tier rises.
Caching and batch stretch the same limit
Two features raise effective throughput without a higher tier. At Anthropic, cache reads do not count toward ITPM on most Claude models — only uncached input and cache writes do — so Anthropic's own example has an 80% cache hit rate turning a two-million ITPM limit into ten million input tokens per minute processed. And batch traffic runs on a separate pool: OpenAI's Batch API does not consume standard per-model rate limits at all.
Faster tiers do not add headroom. OpenAI states that Fast mode and standard processing share the same rate limit for a model.
Handling a 429 without wasting money
The refused request costs nothing, but what happens next can. Retry with exponential backoff and honour the retry-after header rather than retrying immediately; a client that hammers a limit only extends the outage. Cap the number of retries, and make long jobs resumable, so a burst of 429s does not restart work that already succeeded — every resend of a long prompt is billed again.