Skip to main content
kRouter
All posts
Fix an error

Cursor "You've hit your usage limit": three ways around it

Cursor's usage limit is two dollar pools, not a request count. Which one you spent, what on-demand costs, and how to keep working without upgrading.

Kodelyth · The team behind kRouter
· Updated
6 min read

Cursor tells you that you have hit your usage limit, offers on-demand usage or an upgrade, and the completion you were waiting on never arrives. Before paying for either, it is worth knowing what you actually ran out of -- because Cursor's limit is no longer a count of requests, and that changes which fix makes sense.

Updated October 2026. This post first described request-based limits: fast requests, a slow pool and per-model caps. Cursor's current plans measure usage in dollars at API prices, so the sections below describe that system instead.

What the limit actually is

Each paid plan -- Pro at $20 a month, Pro+ at $60, Ultra at $200 -- includes a set amount of model usage, split into two separate pools:

Cursor models. Composer 2.5 and the Grok 4.5 to 4.7 models Cursor serves itself.

Other models. Claude, GPT, Gemini and the rest, charged at each provider's API price.

Usage is charged per token, so an expensive model drains its pool faster than a cheap one. Cursor lists Claude 4.7 Opus at $5 per million input tokens, Claude 4.6 Sonnet at $3 and Composer 2.5 at $0.50. Both pools reset with your billing cycle, and unused usage does not roll over.

Two details catch people out. Auto mode is not a free lane: it bills each request at the list price of the model it routes to, so an Auto request that lands on a third-party model draws from the Other models pool. Tab completion, on the other hand, is unlimited on paid plans.

Telling them apart

What you seeWhat ran outWhat helps right now
The limit on Claude, GPT or Gemini, but Composer still answersThe Other models poolSwitch to a Cursor model, or turn on on-demand usage
The limit on Composer or Grok, but third-party models still answerThe Cursor models poolThe reverse
Everything stopsBoth pools, or an on-demand spend limit you setRaise the limit, upgrade, or wait for the billing cycle

If a model from the other pool works, it is not your whole account -- it is one pool, and switching models is the immediate fix.

Option 1: use your own API key

Cursor accepts your own keys for OpenAI, Anthropic, Google, Azure OpenAI and AWS Bedrock, and can override the OpenAI base URL to reach any OpenAI-compatible endpoint. Those requests bill to your provider instead of Cursor's pools. Two limits apply: custom keys only work with chat models, so Tab keeps using Cursor's own, and Teams and Enterprise plans still add Cursor's $0.25 per million token rate on top.

The catch people hit: Cursor sends every request through its own servers for final prompt building, even with your own key. A localhost endpoint will not work, because Cursor's servers cannot reach your machine. You need a URL they can reach. If you run a local router, that means enabling a tunnel rather than pointing Cursor at 127.0.0.1 -- why Cursor ignores a localhost base URL walks through it.

Once that is in place, Cursor's included usage stops being the thing that limits your day.

Option 2: route through a gateway with several backends

A single API key moves the ceiling; it does not remove it. Pointing Cursor at a router that holds several providers does:

npm install -g @sifxprime/krouter
krouter -t

Connect whichever providers you have -- free tiers, a subscription you already pay for, a metered API. Then, on kRouter's Endpoint page, turn on the Cloudflare tunnel and create an API key; remote callers always need one, so the public URL is not an open door. The Cursor card under CLI Tools shows the base URL to paste into Cursor.

Cursor now reaches all of those providers through one endpoint. Put them in a combo and add the combo's name as a custom model in Cursor: when one backend is exhausted, the next takes over mid-session rather than presenting you with an upgrade dialog.

The same idea covers the one-model-is-out case: if the combo lists the same model from a second provider, or a comparable model as backup, the request goes there instead of failing.

Option 3: stop spending expensive models on cheap work

Most requests in an agent session are not hard. Renaming a variable, generating a commit message, summarising a diff -- none of that needs a frontier model, yet on a per-token pool each one costs whatever the selected model charges.

Inside Cursor, that means picking a cheaper model for routine turns: Composer 2.5's input price is a sixth of Claude 4.6 Sonnet's, and it draws from the other pool. Through a router, it means giving a cheap or free backend its own custom model name -- a combo of free tiers, say -- and selecting it for routine turns, while the premium model stays for work that genuinely needs it.

The spread is not subtle. DeepSeek's Flash model lists $0.30 per million input tokens at peak and half that off-peak, against $3 for Claude 4.6 Sonnet and $5 for Claude 4.7 Opus. On routine turns the output difference is frequently invisible, and every turn moved off the expensive model leaves more of the pool for the work that needs it.

What does not help

Waiting a few hours. Cursor's pools reset with your billing cycle, not on a rolling window. Nothing comes back by the evening.

Making a second Cursor account. A second paid account is a second subscription with its own pool and its own login to switch to mid-task. On-demand usage on the account you already have charges the same API rates without either.

Upgrading for a one-off spike. A bigger plan is a monthly commitment. If this month is unusual, on-demand usage at API rates covers the overrun without it.

The honest summary

If you use Cursor occasionally, the included usage is fine and none of this matters. If you use it as an agent all day, you will hit the ceiling every month -- Cursor itself recommends Pro+ for daily agent users -- and the durable fix is not a bigger allowance. It is not depending on a single provider's quota to get your work done.

Common questions

Does Cursor's usage reset monthly?

Yes, with your billing cycle rather than the calendar month, and unused usage does not roll over. There is no daily or hourly reset to wait for.

What happens when I hit the usage limit?

Cursor shows a notification and offers two options: turn on on-demand usage, which continues at the same API rates and is billed in arrears, or upgrade to a plan with more included usage. The old slow queue belonged to the request-based plans.

One model fails but others work -- is my account limited?

Not entirely. Cursor's included usage is split into two pools, one for its own models (Composer and Grok) and one for third-party models. If one pool is spent, models in the other still work, so switching models is the immediate fix.

Can I point Cursor at a local router?

Not at localhost. Cursor routes requests through its own servers, so it needs a URL it can reach -- a tunnel or a public endpoint. Editors that run entirely on your machine, like Cline or Kilo Code, have no such restriction.

Is making a second Cursor account a workaround?

Not a good one. It is a second subscription with its own pool, plus switching logins mid-task. On-demand usage on your existing account charges the same API rates, and routing through several backends removes the single ceiling without either.

Kodelyth · The team behind kRouter

Published by Kodelyth, the team that builds kRouter. Posts are drafted with AI assistance and reviewed by a person before they go out. kRouter is free and MIT licensed.

Install kRouter