Amux

Billing overview

Last updated September 15, 2026

How Amux bills — itemized pricing, how prices are composed, what is and is not charged, and how to verify the cost of a single call.

Amux bills as prepaid credit drawn down by actual usage: add credit first, and calls deduct from the account balance.

Inference settles at the price of the provider that served it, with no platform markup. Discounts we negotiate upstream go straight into the unit price you see; our revenue comes from the difference between wholesale discounts and what we pass on, not from marking up calls.

Subscription billing has not shipped.

Who is billed

Charges always follow one path:

API key → its workspace → that workspace's account → deducted from that account's balance

Balance belongs to the account layer: one for the personal account, one for each organization, all independent.

Itemized pricing

The cost of a call is the sum of each billing component's quantity times its unit price. Which components apply depends on the model type, and each provider may configure only some of them.

Text

ComponentUnitNotes
InputPer million tokensPrompt tokens
OutputPer million tokensText tokens the model generates
ReasoningPer million tokensTokens of the thinking phase. Folded into output at the output rate when not configured separately
Cache writePer million tokensTokens written to the prompt cache; some providers split this into 5-minute and 1-hour tiers by TTL
Cache readPer million tokensTokens served from cache, usually far below the input rate

⚠️ A component shown as "—" means that provider does not offer it. It does not mean free.

Image

ComponentUnit
Image input / image outputPer million tokens, or per image
Image cache readPer million tokens
In-conversation image generationPer call

Per-image components can be tiered by size.

Video

ComponentUnitNotes
Video outputPer secondTiered by resolution. Quantity is the actual output duration, not the duration in the request
Video inputPer secondDuration of the reference material, tiered by output resolution
Video outputPer tokenSome providers bill by token instead; mutually exclusive with per-second billing

General

ComponentUnit
Per requestA flat charge per call, independent of usage
Web search, X search, file search, document searchPer their own units
Code interpreter, computer use, MCP toolsPer their own units

The actual components and rates for each model are on its detail page in the model catalog; this page does not restate specific prices.

How a price is composed

The final unit price is determined in this order:

1. Standard price (may vary by time of day)
        ↓
2. Public promotion (multiplied by the promotional factor)
        ↓
3. Account-specific discount (the better of the two applies; they do not compound)

Time-of-day pricing

Some providers price the same model differently at different times of day (lower overnight, for instance). Time-of-day pricing is part of the standard price, not a discount: no promotional entry appears on the invoice, and no struck-through original price appears in the catalog.

The call log states which window a call fell into and the corresponding unit price.

Public promotions

A promotion is a factor applied to the standard price in force at the time. It is shown as a discount badge in the catalog and on pricing pages, with its active window stated.

Account-specific discounts

Account-specific discounts can be configured at four granularities: per provider, per vendor, per model, or per model-at-a-provider.

  • When several rules match, the most specific wins; they do not compound
  • Against a public promotion, whichever is better applies, rather than the account discount overriding unconditionally
  • Only reductions are supported

Account-specific discounts are reflected directly in the prices you see in the catalog, on model detail pages, and in pricing tables.

The price strategy uses discounted prices

The price routing strategy orders by discounted price, so account discounts and promotions genuinely affect which provider is chosen. See routing and failover.

What is charged

SituationCharged
Call succeedsCharged
Client disconnects midwayCharged for usage already produced — that content was generated upstream
Stream truncated upstreamCharged for usage already produced
Upstream returns an errorNot charged
Attempts that fail during routing failoverNot charged; absorbed by the platform
Parameter errors, authentication failures, other client errorsNot charged
Image and video tasks that fail to generateNot charged

When the balance is insufficient, a task already running may drive it negative. Further calls are then rejected, and the next top-up settles the shortfall first.

Verifying the cost of one call

Every response carries an x-amux-generation-id header, which locates that call precisely on the console's logs page.

The amux object in the response body carries the provider that served it and the full attempt chain:

{
  "amux": {
    "provider": "anthropic",
    "attempt": 1,
    "attempts": [{ "provider": "anthropic", "status": "ok" }],
    "droppedParams": []
  }
}

For image generation endpoints, the amux object also carries cost_nano, the cost of that call in nano-USD (1 USD = 10⁹ nano-USD).

⚠️ Text calls do not return a cost in the response body. The object is unavailable for streaming responses, where dropped parameters are reported through the x-amux-dropped-params response header instead.

The log detail page lists every billing component for a call with its quantity, unit price, and amount, along with the pricing window and any discount applied.

Precision

The platform keeps accounts in integer nano-USD, where 1 USD = 10⁹ nano-USD, with no floating point. Rounding happens once, when the final amount is computed; itemized details keep their original precision.