#### Send the rates to signed-in clients
The whole hunk
from line 26, old and new numbered
/
lines
from line 26
2626
2727* [`admin`](#admin): Admin API auth and retention for spend limits
2828* [`enforcement`](#enforcement): spend-limit fail-open or fail-closed behavior
29* [`pricing`](#pricing): contracted rates and a discount multiplier for the spend meter
29* [`pricing`](#pricing): contracted rates and a discount multiplier for the spend meter and for the cost figures developers see
3030* [`models`](#models) and `auto_include_builtin_models`: admin-curated model list and per-upstream IDs
3131* [`managed`](#managed): managed settings policies by IdP group
3232* [`telemetry`](#telemetry): OTLP forwarding to your observability stack
from line 435
435435The `pricing` block tells the spend meter what to charge instead of USD list price, so caps and [`/effective`](/docs/en/claude-apps-gateway-spend-limits#%2Feffective) reflect your contracted rates. Amounts stay in USD and remain an estimate, not an invoice. Two prerequisites:
436436
437437* Claude Code v2.1.227 or later on the gateway server. Earlier versions reject the unknown key at boot.
438* An [`admin:`](#admin) block, because only the spend meter reads `pricing`. The gateway refuses to start with `pricing` set and no `admin`.
438* An [`admin:`](#admin) block or, in v2.1.268 or later, a [`managed:`](#managed) block with at least one policy. The gateway refuses to start with `pricing` set and neither block, because nothing would read it.
439439
440440```yaml theme={null}
441441pricing:
from line 452
452452| Field | Required | Description |
453453| ------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
454454| `multiplier` | No | Default `1`. The meter multiplies every metered amount by this, whether list-priced or overridden, so `0.85` bills 85% of the price. Must be greater than 0 and at most 1. |
455| `overrides` | No | Rows of `{upstream, model, input, output, cache_read, cache_write}` in USD per million tokens. All four rates are required and must be positive. |
455| `overrides` | No | Rows of `{upstream, model, input, output, cache_read, cache_write}` in USD per million tokens. All four rates are required. Each must be greater than 0 and at most 10000. |
456456
457457How the meter matches an override row:
458458
from line 464
464464
465465For per-region rates, give each region its own named upstream and one row per upstream.
466466
467#### Send the rates to signed-in clients
468
469With v2.1.268 or later on the gateway server, the gateway also puts the rates from `pricing` into the [`managed`](#managed) policies it serves, as the [`modelPricing`](/docs/en/settings-reference#modelpricing) managed setting. Developers matched by a policy then see the `pricing` rates for the first upstream that serves each model ID in `/usage`, the status line, and OpenTelemetry. A developer who matches no policy receives no managed settings, so their figures stay at list price. Clients apply the setting in Claude Code v2.1.242 or later.
470
471* What the gateway adds: unless a policy's `cli` block already sets `modelPricing`, the gateway adds the `multiplier` and, for every model ID a client can request, the override row of the first upstream that serves that ID. A rate that only a failover upstream charges stays on the gateway.
472* Opt one policy out: set `modelPricing` to `{}` in that policy's `cli` block, and its developers stay at list price.
473* Keep a policy's own rates: a policy whose `cli` block sets `modelPricing` with its own `multiplier` or `overrides` keeps that `modelPricing` whole, and the gateway adds no rates of its own to it.
474
467475### `models`
468476
469477The `models` block is an optional admin-curated model list, served at `/v1/models` and used to translate model IDs per upstream. It is required for non-US Amazon Bedrock regions, Amazon Bedrock provisioned-throughput ARNs, and Microsoft Foundry deployment names.
from line 891
883891# fail_closed_on_error: false
884892
885893# Meter at contracted rates instead of USD list price. Requires admin:.
894# With managed:, the same rates also go to signed-in clients.
886895# Rates below are placeholders, not real contract prices.
887896# pricing:
888897# multiplier: 0.85