Guides
Spend limits
What stops an agent from overspending, and where to change it.
These apply to every call over MCP, the CLI, the API and the Run button. Orthogonal checks them before it calls the provider, so a refused call is not charged.
Balance and top-up
Calls are paid from prepaid credits and stop when the balance can’t cover the price: HTTP 402 with a link to add funds. Auto top-up is set in Payment methods, which also says if it is switched off on this site.
Monthly caps
Two caps reset each calendar month (UTC): your personal cap, which counts only calls your own credits pay for, and the cap an organization admin sets for each member on the shared pool.
Daily caps
A daily cap on your account or organization, and one on each API key. Both count what was spent since midnight UTC.
Allowed APIs
Limit which APIs can be called, for the whole account and for each key. A call to an API outside either list is refused with HTTP 403, free calls included. A key’s own list applies only when that key is used.
Check before paying
- The MCP
quotetool returns a call’s exact price without running it or spending credits. - On /v1/run,
"dryRun": true(orth run --dry-run) prices the call and checks your balance without calling the provider, andmaxSpendrefuses a call priced above it. POST /v1/credits/checksays whether your balance covers an amount.- Test keys (
orth_test_) return stored example responses and charge nothing. An endpoint without one answers 501.
Logs
Every call is listed with its cost, its status and what made it: the source and the key. Test calls are marked.
Refusal codes
A refused call answers with one of these. Most messages link to the page where you change the limit.
| Code | HTTP | Meaning | Change it |
|---|---|---|---|
INSUFFICIENT_CREDITS | 402 | The balance doesn’t cover the price. | Add funds |
MONTHLY_LIMIT_EXCEEDED | 402 | Your account’s monthly cap is reached. | Spend limits |
MEMBER_LIMIT_EXCEEDED | 402 | The monthly cap your organization set for you is reached. | Ask an organization admin |
DAILY_ACCOUNT_LIMIT_EXCEEDED | 402 | The account’s or organization’s daily cap is reached. | Daily cap |
DAILY_KEY_LIMIT_EXCEEDED | 402 | This key’s daily cap is reached. | API keys |
MAX_SPEND_EXCEEDED | 402 | The price is above the request’s maxSpend (/v1/run only). | Raise maxSpend |
| No code | 403 | The API is not on the account’s or the key’s allowed-APIs list. | Allowed APIs |
Over MCP, the use tool returns these as errors with the same codes, except the balance refusal: it has no code, says “Insufficient credits” and carries a topUpUrl.