# Credits and billing

A quote states the run's maximum EvalRouter charge before any model call. A spending cap is optional: with `--max-cost USD` (`runs create` or `run`) the run starts only when the quote's maximum charge fits under that cap; without one, the run is bounded by your workspace credit. At a terminal the CLI shows the quote and asks before anything is charged; scripts pass `--yes`, and without it nothing is quoted or charged.

EvalRouter holds credit against the cap while work is in flight, charges recorded usage and releases the unused hold. A run that reaches its cap stops new work and keeps its completed results. Cancelling stops new work but cannot retract a call already sent. When EvalRouter's own infrastructure ends an attempt (a lost hosted or remote owner, a lost sandbox, an upstream provider failure, or EvalRouter stopping the run while the attempt was in progress), that attempt's model calls are not charged and its retry pays only for its own calls; calls to your own provider endpoint are billed by your provider and carry no EvalRouter fee.

## Actual spend and external costs

Results show actual EvalRouter spend. A hold reduces available credit while work is in flight; it is not a completed charge. Billing may finish after a score appears.

The billing page's **Settled charges** is everything settled against the wallet for evaluations. It has two parts. **Usage** is the metered model inference and compute your runs used. **Platform fees** are EvalRouter's per-evaluation fee, shown on the quote and charged as separate ledger entries, net of any platform fee credits. Credit purchase fees are paid at checkout and are not included. The `GET /v1/billing/wallet` response reports `settled_usage_microusd`, `settled_platform_fees_microusd` and their sum, `settled_charges_microusd`.

A model endpoint or agent you connect may incur charges from its provider outside EvalRouter. EvalRouter's cap does not limit that external bill. Check the external-cost notice before launch.

Cost forecasts appear only where that feature is published and qualified. An absent forecast is not a zero-cost estimate.

## API key ceilings

An API key can carry its own spend ceiling across everything it starts: `evalrouter api-keys create --spend-ceiling USD`, or `evalrouter api-keys update KEY_ID --spend-ceiling USD|none`. A per-run cap still applies to each run.

The API represents money as strings of integer micro-USD: `"1000000"` means $1. Usage and billing records remain the source for actual charges.
