Skip to main content
Preview. Nothing here is new pricing. A tool call costs whatever the operation behind it costs, on the same wallet as everything else your workspace does.

One rule

A tool call costs whatever the operation behind it costs.
An extraction started from Claude and an extraction started with POST /api/v2/extractions are the same extraction and are charged the same. There is no MCP surcharge, no separate allowance, and no separate wallet.

Where the spend appears

Usage is written to the same CreditUsageLog the rest of the platform writes to, tagged source='mcp'. So MCP spend is separable from WhatsApp, phone, website-widget and Runtime API spend in the usage screen, rather than disappearing into whichever bucket happened to be the default.
That tag is the whole reason the source enum grew. source defaults to whatsapp; a new channel that does not declare its own is invoiced and reported as WhatsApp spend, which is wrong on the bill and invisible in the one report that would have shown it. The Runtime API’s api source exists for exactly the same reason.

Running out

The billing gate runs before any tool that spends — not after, and not inside the work. When it refuses, you get a tool error, not a fault:
HTTP 200. A model reading that can tell you what happened and stop. The REST API returns 402 usage_blocked for the same condition, and that is the right answer there — but a 402 reaching a chat client is a transport failure the model cannot narrate, and a user gets a spinner and a shrug instead of a sentence.
Retrying a blocked call will never help. usage_blocked is not a rate limit and not a transient fault. Top up, or raise the cap. An agent loop that retries on it will burn its turns and report nothing useful.
Read tools keep working while the wallet is empty. You can still list agents, read conversations and poll jobs — being out of credit stops you starting new work, not looking at what you have.

Watching it

Ask the connected client:
What is my ImpelLabs credit balance?
That tool needs usage:read and costs nothing. The dashboard’s usage screen carries the same figure with the mcp source broken out.

Rate limits

The other reason a call gets refused, and the one where retrying does help.