Fair use
The monthly RPC ceiling every plan carries, who it is counted against, and how credits buy more past it.
Every plan covers a number of RPCs a month, and a call is counted twice: once against the plan of the person calling, once against the plan of the organization that owns the server. The calling side is always your personal organization's plan. Being a member of a Pro team doesn't raise the ceiling on what you call; the team's plan covers what its own servers answer.
| Plan | RPCs a month, each side |
|---|---|
| Free | 100,000 |
| Basic | 500,000 |
| Pro | 2,000,000 |
What counts
Every JSON-RPC message counts, the handshake and tool listings included, not only tool calls. The two sides:
- Calls you make. Every message you send to any server, counted against your personal organization. A message Odel refuses still counts here.
- Calls your servers answer. Every message an organization's gateways and hosted modules answer, whoever sends it, counted against that organization.
Three exceptions:
- A member calling their own organization's servers counts on the organization's side only.
- Servers Odel lists from the public MCP registry have no owner on Odel, so calls to them count on your side only.
- A call refused before it reaches the server, for fair use or for missing credits, doesn't count against the server's owner.
Past the ceiling: RPC blocks
Past the ceiling, the next tool call buys an RPC block with credits: 100,000 more RPCs for 1.5 credits, on that side, until the count starts over. A block never carries over to the next month. As many blocks are bought as the count needs, and the call goes through.
A block is paid like anything else in your balance, in the usual burn order, including credits a team grants you. A grant limited to named modules never pays for a block, since a block isn't for any module. So a team that grants its members credits also pays for their calls past the ceiling, and no member needs a plan of their own.
Calls your servers answer work the same way: an organization past its ceiling on that side pays for its block from its own credits, a shared organization included.
Example. Your personal organization is on Free and your team grants you 20 credits a month. On 20 March the count passes 100,000. Your next tool call buys a block from the grant for 1.5 credits and goes through, and you have 200,000 RPCs until 1 April. The block is a line on that month's usage statement.
When a call is refused
A call is refused when the blocks it needs can't be bought: there aren't enough credits that can
pay for all of them, buying them would pass the owner's monthly limit, or the owner has turned
buying off. Only work calls are refused: tools/call,
resources/read, prompts/get and completion/complete. Connecting and listing tools keep
working, so the refusal reaches you as the answer to a tool call rather than as a broken
connection. Your own side is checked first.
The answer is HTTP 429 with JSON-RPC error code -32001. When your side is over, the message
names your ceiling, what lifts it and the reset date:
@acme/forecast: your organization has used the 100K RPCs it has this month. Credits buy 100K more for 1.5 credits: top up at https://odel.app/account/credits. The count starts over on April 1 (UTC).
When the monthly limit stopped the purchase, it says so and where to raise it:
@acme/forecast: your organization has used the 300K RPCs it has this month, and buying more would pass the monthly limit set on buying RPCs with credits. Raise it at https://odel.app/account/subscription; the count starts over on April 1 (UTC).
When the server's owner is over, you hear only that, never the owner's plan or numbers:
@acme/forecast: this server has used the RPCs its owner's plan covers this month. It is available again on April 1 (UTC).
The count starts over at 00:00 UTC on the 1st of each month, and refusals stop at that moment.
A monthly limit, turning it off, or buying ahead
On Account → Organization → Subscription, under RPCs this month, the owner can:
- Set a Monthly limit in credits on what buying more automatically may spend, both sides together. A call whose blocks would pass it is refused instead, and the message says the limit was reached. The page shows what has been spent this month. Empty means no limit, the default.
- Turn off Buy more with credits: calls past the ceiling are then refused until the month turns.
- Buy any number of blocks by hand under Buy now, up to 10,000 at a time, ahead of the ceiling, past the limit or with buying turned off. Blocks bought by hand don't count against the limit.
Example. A team sets a monthly limit of 15 credits. Its servers pass their ceiling on 10 March, and calls buy blocks as the count grows. Ten blocks, 1,000,000 more RPCs, spend the 15 credits, and the next call past the ceiling is refused. The owner buys 20 blocks by hand for 30 credits, and calls go through again until the count passes those too.
An estimate, counted hourly
The count is estimated from sampled analytics and recounted once an hour, so every figure is approximate and an organization can run up to about an hour past its ceiling before a block is bought. If Odel can't look up an organization's count, or gets no answer when it tries to buy a block, nothing is refused.
Example. Your personal organization is on Free. By 14:40 UTC on 20 March your clients have
sent 100,200 messages. The next hourly count sees it, and your next tool call buys a block. With
no credits that can pay, that call and the ones after it are refused with the first message
above, while tools/list still answers. At 00:00 UTC on 1 April the count is back at zero.
Messages other people send to servers your personal organization owns are counted on its other
side and don't move this count.
Where to see it
The meter is under RPCs this month, with one bar per side, the blocks bought for it, the servers and methods behind each, and the pace the month is on:
- On Account → Organization → Subscription, for the organization's owner.
- On the Fair use tab of Analytics in the developer portal, for any member.
A shared organization never calls as itself, so its meter shows only Calls your servers answer. See plans for everything else a plan covers.