Skip to main content
Credits are the single meter for everything that runs on our servers. There is no separate call quota — your monthly credit balance is your call quota. One balance covers both places credits are spent:
  • On the website, the handful of tools that do server-side work — the AI tools, and the file converters that run on our workers. The rest of the catalog runs in your browser and is free and unmetered, signed in or not.
  • Over the API and MCP, every tool call — including tools that are free on the website.

Allowances

Builder buys volume and headroom, not access — every endpoint is available on every plan. See pricing.

What a call costs

Two numbers decide it, and you pay the larger:
  • The tool’s own weight — what the work costs us. Zero for most of the catalog, higher for the tools with a third-party invoice behind them.
  • Your plan’s minimum per call — 3 credits on a free account, 1 on Builder.
So a JSON formatter costs a free member 3 credits and a Builder 1, while an AI image costs both of them 640. The minimum is a floor, not a multiplier: it never changes the price of a tool that already costs more than it. Browser use of the free tools is unaffected by any of this. The floor applies only to programmatic calls. Read the exact cost from the API, not from this table. GET /v1/tools/list and GET /v1/tools/search return credit_cost per tool, already resolved for your plan — so it can be compared directly against your balance. The x-iotools-credit-cost extension in the OpenAPI document carries the same number, but that document is public and has no key behind it, so it is quoted at the free-tier minimum for everyone.

Only tool runs are billed

Every GET on the API is free, and none of them touch the allowance they report: Over MCP the same split holds: tools/call on a real tool is charged — including through run_tool, at the inner tool’s own price — while search_tools, describe_tool, get_credits and get_usage are not. Free of credits is not free of cost, so all of them still consume your per-minute rate limit. Read them when you need them rather than on a polling loop.

Failed calls are free

Credits are reserved when a request arrives and refunded on any 4xx or 5xx. A validation error, a rate limit, a tool failure — none of them cost you anything. Tools that bill per unit refund the difference when they under-deliver. Ask a name generator for 20 names, get 18, pay for 18 — never below your plan’s minimum per call.

Reading your balance

Every successful response carries it, so most integrations never have to ask:
When you do need it up front — deciding whether to start an expensive batch, or an agent sizing its own work — ask directly:
min_cost_per_call is your plan’s floor — the one figure the public OpenAPI document can’t tell you, since it quotes the free-tier number to everybody. Over MCP the same thing is the get_credits tool.

Reading your usage history

What the balance doesn’t tell you is what it went on. Your account shows the same balance figures as GET /v1/me/credits above, plus the same 30-day history GET /v1/me/usage (MCP: get_usage, which returns the balance alongside it) returns below, one row per tool per day per surface — so a key spending down faster than expected can be traced to the calls that did it:
surface is web, api or mcp — the same account’s browser use shows up here too, since the balance is shared. Rows only exist for days with spend, and credits is net of any refund. Free, like the balance itself.

Resets

Credits reset on the 1st of each month, UTC. Unused credits do not roll over. Upgrading mid-month gives you a full allowance immediately.

Running out

You get a 402:
There is no overage billing and no throttling — the call does not happen. Wait for the reset, or upgrade.