Guides

Billing

Understand model and service pricing, monthly allowances, overage, and spending-cap enforcement.

What gets billed

Model requests through Servada-managed upstreams are billed. Services such as Decisions and audio can also have their own usage rates. If your org brings its own provider keys, you pay the provider directly and those model requests do not appear on your Servada invoice. Check your service's Usage pricing for any separate service charges.

Billing is in EUR. Errored requests are not charged, except a Decisions answer Inferada rejects after the provider billed for it (see Service pricing). If a client disconnects after the upstream reports usage, the gateway can settle and bill that known usage; aborted requests without settled usage cost zero.

The portal's Billing page shows current-period spend, invoices, allowances, and the organisation's overage cap.

Pricing

Each model has three prices, quoted in EUR per million tokens:

inputEUR / Mtok
Regular prompt tokens.
cached_inputEUR / Mtok
Prompt tokens served from the provider cache. Typically much cheaper.
outputEUR / Mtok
Completion tokens (including reasoning / thinking tokens).

The price of a request is frozen at the time of the call, so later price changes don't alter your historical invoices.

Service pricing

Organisation admins can read each service's rate under Services → Settings → Usage pricing. Only a superadmin can change it. An unpriced service has no usage charge; a configured zero rate is free. Services using a billing-enabled upstream need a configured rate or explicit superadmin approval to run free. Once a service type is priced on an upstream, any other unpriced service of that type on the same endpoint, including a copy, needs superadmin tariff approval too; other service types on that endpoint are unaffected. Until approved, requests return HTTP 402 with type service_pricing_required, and fallback providers that would need approval are skipped.

Unpriced services using your own upstream credentials with billing disabled have no gateway usage charge, unless that service type is already priced on the same endpoint. Any charges from your provider still apply.

DecisionsEUR / million input tokens
Uses the input token count reported for the complete state and questions.
Speech to textEUR / audio minute
Uses the input audio duration reported by the speech service, including fractional minutes. 90 seconds is 1.5 minutes.
Text to speech, privacy, languageEUR / million characters
Uses input text length in UTF-16 code units. Most characters count as one; supplementary characters such as many emoji count as two.
Per-request alternativeEUR / thousand requests
Any of these services may use a per-request rate instead. Each charged call counts as 0.001 thousand requests. PII restore runs inside the gateway and is not charged.

Service charges share your EUR allowance and spending cap with other EUR-billed usage. Configured concurrency is preserved; requests already admitted can take the total past the cap, after which new requests are rejected. Token allowances are not converted into service units: a positive-priced service requires an EUR allowance or a plan without an allowance. Contact your administrator if you receive service_billing_requires_eur_plan.

Successful service requests are charged, and a fallback retry produces one charge. A speech request that the provider fails to complete is not charged; disconnecting after the provider has produced the audio is charged, as with streamed model responses. On an OpenAI, Anthropic or Google Decisions service, request content can steer the model into an answer Inferada rejects. That request returns 422 with type decision_answer_rejected; when the provider reported usage, it is charged for that usage, or as one request on a per-request rate. Other failed requests are not charged. Audio-minute pricing accepts only json and verbose_json responses; other formats are rejected with HTTP 422 before transcription. If the provider omits the duration, the request fails without a charge. Service usage counts toward your EUR spend, not your token totals. Internal privacy or language processing within a model request does not add a separate service charge.

The invoice and CSV preserve the service name, billing unit, quantity, and rate used at the time of each call. Later rate changes do not reprice earlier requests.

How pricing inherits

Prices belong to a base model, and a base is protocol-specific. The same upstream model routed through two protocol shapes is two bases, each with its own prices (see Model addressing). Profiles such as gpt-4o:chat and gpt-4o:code inherit the base's prices.

The price of a request resolves in three steps:

per-org overrideoptional
A price override on the service model itself. Used when a tenant has negotiated bespoke pricing.
baseusual
The base model’s standard prices. Every profile inherits them automatically.
zerofallback
A base with no prices set is a valid free tier. Requests to it are recorded as deliberate zero-cost calls.

Pricing is super-admin-only on Inferada. Org admins see the resolved prices on their invoices and usage views but cannot edit them. Prices are managed centrally so the catalogue stays consistent across tenants.

Your monthly plan

A plan combines a flat monthly fee with an allowance. Usage within the allowance is covered by the flat fee; additional usage is overage.

flat feeEUR / month
Base monthly charge.
allowancetokens or EUR
How much usage the flat fee includes.
text
total_eur = flat_fee + overage_cost_eur

Spending caps

You choose what happens when the allowance runs out:

Stop at allowancemode
The gateway rejects requests with HTTP 402 once the allowance is used up.
Allow overagemode
Requests continue up to the overage cap you set; the overage is billed separately.

Organisation administrators can select the mode and set the overage cap from Billing in the portal. Raising the cap allows subsequent requests to proceed.

One request may briefly cross the cap

The gateway checks recorded spend before each request. Because final output cost is not known in advance, one in-flight request can move spend above the cap. The gateway then rejects the next billable request.

HTTP 402: cap reached

When the cap is reached, billable requests return:

json
{
  "type": "billing_cap_exceeded",
  "code": 402,
  "error": "Monthly spending cap reached.",
  "request_id": "uuid",
  "current_eur": 10.0125,
  "cap_eur": 10.00,
  "allowance_eur": 10.00,
  "overage_cap_eur": 0
}

Raise the overage cap in the portal to allow subsequent billable requests.

Invoices

You get an invoice for each calendar month. It lists one row per model with token counts and cost, split into within-allowance and overage portions. You can view and download invoices from Billing in the portal.

The billing dashboard also shows live current-month spend, a progress bar against your cap, and alerts as you approach it. The daily-spend chart stacks within-allowance spend on the bottom and overage on top, with the overage hatched so the split doesn't rely on colour alone.

See also

  • Usage accounting — see how tokens are counted per request.
  • Errors — review gateway error responses and status codes.