What a response tells you, and what it cost
Every call answers in the same envelope. This is what each field means, and how to read the cost of a call that spent from both credit balances.
Updated August 28, 2026
The envelope
Every call answers in the same shape, whether it succeeded or not.
{ "ok": true, "data": …, "meta": { … } }
data is the tool's own output. meta is everything about the call itself: which tool ran, what it cost, and where you stand afterwards.
A failure answers { "ok": false, "error": { "code", "message", "details" } } with the same content type and a matching HTTP status. There is no separate error format to parse.
What a call cost
"meta": {
"credits": 10,
"baseCredits": 8,
"aiCredits": 2,
"billedFrom": "plan"
}
credits— everything the call spent. This is the number to reconcile against your balance.baseCredits— the general-credit half: the tool's own price.aiCredits— the AI-credit half, present only when the tool called a model.
Most tools never touch a model, so most responses carry no aiCredits at all and credits equals baseCredits. When a tool does call one, the two halves come from two different balances — see the credits doc for why that distinction matters.
billedFrom says which pool paid: plan for the monthly allowance, wallet for purchased credits.
Where you stand
"meta": { "quota": {
"limit": 20000, "used": 1240, "remaining": 18760,
"resetsAt": "…", "scope": "account", "plan": "pro",
"creditBalance": 8500
}}
limit, used and remaining describe the monthly allowance. creditBalance is the separate purchased balance, which does not reset. Reading remaining as your whole balance will understate what you can spend.
Pricing
"meta": { "pricing": { "mode": "flat" } }
flat means the price is fixed and known before the call. metered means the price depends on what the call turns out to do — the response also carries meterUnit and creditsPerUnit, and the charge is settled once the work is done.
What is not billed
A call that fails is not charged. If a tool fails partway through after we have already paid a provider, the part we paid for is settled and the rest is refunded — the response says what was charged either way.
Related
Rate limits and what each refusal means
How many requests a minute you can make, which headers tell you where you stand, and how to tell a rate limit from an out-of-credits refusal.
Quickstart: your first task with ToolsXpo Code
Install the extension, sign in from your browser, and give the agent its first task — about five minutes end to end.
Scheduled automation
Run a tool, a model, or both on a schedule — and have the result emailed, POSTed to your server, or saved.
AI tools: what they are and how they differ
A handful of our tools call an AI model instead of running in your browser. That changes three things: where your data goes, what a call costs, and whether you need an account.