LLM API ReferenceUpdated August 2026

Grok API Rate Limits

Why xAI does not publish a fixed free-tier number, what actually trips a 429 on api.x.ai, and how to design around it.

TL;DR

  • Two limits run in parallel: RPM and TPM. Most surprise 429s are TPM.
  • Limits scale with account tier and usage history — check console.x.ai, not a blog table.
  • Queue burst traffic client-side. Concurrent retries make a 429 worse, not better.
  • 429 is account-scoped. 500/503 across every key is the outage signature.

RPM vs TPM: Which One Is Actually Biting You

Teams instrument request counts because request counts are easy to count. Then a 429 arrives at a request rate that looks nowhere near any plausible ceiling, and the debugging goes sideways. The reason is that token throughput and request throughput scale completely differently with prompt design.

RPM binds when…

You fan out many small calls — classification, routing, embeddings-style batch work, per-row enrichment. Prompts are short, concurrency is high.

TPM binds when…

You send long context — RAG payloads, whole documents, long chat histories, or generous max_tokens. Ten requests a minute can exhaust TPM outright.

Instrument both. Emit a counter for requests and a counter for prompt plus completion tokens, tagged by model, and alert on each at roughly 80% of your observed ceiling. That single change turns 429s from a mystery into a capacity graph.

📡
Recommended

Monitor your services before your users notice

Try Better Stack Free →

Why There Is No Published Free-Tier Table

xAI's limits move with the account rather than sitting in a static tier grid. A newly created key starts on conservative defaults; as the account accrues funded usage, limits rise without a support ticket. That design is friendly in the long run and confusing on day one, because two engineers on the same team can compare notes and report different ceilings for the same model.

The practical consequence: never hard-code a rate limit constant copied from documentation or a comparison article. Read the current values from the Console, and treat the 429 response itself as the authoritative runtime signal.

Backoff, Queue, Then Fail Over

  1. 1Add jitter to your backoff. Synchronised retries from every worker recreate the exact burst that caused the 429 — a randomised delay spreads the recovery out.
  2. 2Queue before you send. A bounded client-side queue with a token-aware release rate keeps you under TPM instead of discovering the ceiling by hitting it.
  3. 3Shed load deliberately. For non-interactive work, park requests and drain them later; for interactive work, return a fast degraded response rather than a 30-second hang.
  4. 4Fail over on sustained pressure. If backoff has not cleared within your latency budget, route to a secondary provider — see the failover guide for the routing logic.

Full status-code classification is in the Grok API error code reference.

Alert Pro

14-day free trial

Stop checking — get alerted instantly

Next time Grok goes down, you'll know in under 60 seconds — not when your users start complaining.

  • Email alerts for Grok + 9 more APIs
  • $0 charged today — card required to start
  • Cancel anytime — $9/mo after trial

Related Guides

Frequently Asked Questions

What are the xAI Grok API rate limits?

xAI enforces two limits in parallel: requests per minute (RPM) and tokens per minute (TPM). Unlike providers that publish a fixed per-tier table, xAI scales limits with account tier and accumulated usage history, so a new key starts conservative and rises automatically as the account builds a spend record. The authoritative number for your key is in the xAI Console at console.x.ai — not in any third-party table.

Why am I getting 429 errors when my request volume is low?

Almost always because you are hitting the token limit rather than the request limit. Long prompts, large context windows and high max_tokens values mean a handful of requests per minute can exhaust TPM while RPM is barely touched. Check which limit tripped by reading the rate limit response headers instead of assuming it was request count.

Do streaming requests count differently against Grok rate limits?

Streaming changes when you see the tokens, not how many you are billed or limited on. A streamed completion consumes the same input plus output tokens against TPM as a non-streamed one. What streaming does change is your timeout profile: because bytes arrive early, you are far less likely to trip gateway timeouts on long generations.

How do I increase my Grok API rate limit?

Build usage history on a funded account — xAI raises limits as spend accrues rather than requiring a ticket for every bump. If you have a known burst coming (a launch, a batch job, a migration), contact xAI ahead of time rather than discovering the ceiling in production. In the meantime, batching and client-side queuing usually buy more headroom than a limit increase would.

Is a wave of 429s a sign that Grok is down?

Not by itself — 429 is an account-scoped signal, so it usually means your traffic changed, not that xAI did. The outage signature is different: a simultaneous jump in 500 and 503 responses across models and keys. Watch both separately. Independent monitoring at apistatuscheck.com/api/grok distinguishes an xAI-side incident from your own quota exhaustion.

Staff Pick

📡 Monitor your APIs — know when they go down before your users do

Better Stack checks uptime every 30 seconds with instant Slack, email & SMS alerts. Free tier available.

Start Free →

Affiliate link — we may earn a commission at no extra cost to you