# FAQ

Common questions — does it change your responses, where does data live, which providers work, and how is cost computed?

Source: https://tokentriage.com/docs/reference/faq

---
Hit a specific symptom — 401 storms, `UNPRICED` rows, a route that won't fire? See the
symptom-first [Troubleshooting](/docs/reference/troubleshooting) page.

### Will TokenTriage change my responses?

Not in `ledger` mode — it observes and costs every request and mutates nothing; the proxied
bytes are `bytes.Equal` to going direct, streaming included. Any internal error fails open to
a verbatim passthrough. Routing only rewrites requests once you deliberately climb to
`route` mode. See [Core concepts](/docs/concepts/core-concepts).

### Do I have to turn on routing?

No. Routing (and caching, and governance) is opt-in and **off by default**. Many teams run
in `ledger` mode indefinitely, just to see where the bill goes. See the
[trust ladder](/docs/concepts/core-concepts#the-trust-ladder).

### Are my prompts stored?

Not by default. Each request writes one JSONL row with a `prompt_sha256` and counted
features — the prompt text itself is not stored unless you set `ledger.redact.prompt: none`
or enable content capture (`dashboard.capture.*`, off by default).

### Does it phone home?

No. The default posture dials nothing external — the pricing table and dashboard are
compiled into the binary. Every phone-out (an external embedder, Redis/Postgres, OTLP
export) is refused unless its config carries `external: "allow"`. See
[Security](/docs/operate/security).

### What providers are supported?

TokenTriage ships 95 built-in provider descriptors, and 15 wire-dialect drivers carry all of
them: `openai`, `anthropic`, `bedrock`, `gemini`, `anthropic_vertex`, `elevenlabs`, `deepgram`,
`assemblyai`, `replicate`, `soniox` and `stability`. The generated provider matrix names the test
behind each gated cell and prints the ungated ones rather than hiding them; ten of the 95 carry
no gated cell at all, and the tests that do exist run against mocks, not against the providers'
live endpoints. Adding an OpenAI-compatible upstream to TokenTriage is a
config-only change. See the [Providers](/docs/build/providers) support matrix.

### Do async providers and `/v1/batches` work?

Yes. The providers that answer a submission with a job id rather than a result (`replicate`,
`fal_ai`, `black_forest_labs`, `runwayml`, `stability`, `assemblyai`, `soniox`) are polled to a
terminal state by a built-in poller, and the money lands on a second ledger row when the
provider reports it. No descriptor declares the `batch` endpoint kind, and the `openai` wire
driver still submits, polls and settles `POST /v1/batches`: declaring an endpoint is metadata
for validation, virtual-key scoping and governance matching, not what decides whether a path is
served. See [Async jobs](/docs/build/providers-async-jobs) and
[Reading a settled cost](/docs/build/providers-settlement).

### How is cost computed, and what if a model isn't priced?

From an embedded pricing snapshot stamped `source@date#sha7`, hand-checkable against the
token counts. A model with no price is **UNPRICED** — a `null` cost counted and excluded,
never `$0.00`. See [The honesty model](/docs/concepts/honesty-model#provenance--unpriced).

### Can it actually prove routing saves money?

It tries, and refuses when it can't. `eval` compares the router's realized quality to a
zero-router baseline at the router's own cost. With only served-model labels it can say
routing sits *on* the frontier; only judged shadow duplication can show a *beat*; with too
few labels it refuses rather than fabricate. See
[the honesty verdict](/docs/build/routing#the-honesty-verdict).

### Do I need the SDK?

No — a base-URL swap is enough for costing and routing. The optional
[SDKs](/docs/sdks/overview) add trace/agent tagging, typed receipts, and a ledger pull when
you control the HTTP client.

### How do I run it in Kubernetes, or air-gapped?

The canonical path is the Helm chart (one StatefulSet, per-pod PVC, zero Secret objects). A
fully self-contained air-gap Compose profile ships too. See
[Deployment](/docs/operate/deployment).

### What's the performance overhead?

On a loopback micro-benchmark, proxy overhead is ≈0.065 ms median (a house number on one
box); the CI budget is < 2 ms p99. Real provider latency dominates in production. See
[Benchmarks](/docs/reference/benchmarks).

### What's the license?

**A commercial licence.** TokenTriage is a commercial managed SaaS: there is no free tier, no
community edition and no open-source release. Evaluation is a time-limited trial, and after that the
product is bought — see [Pricing](/pricing/) for the three planes and what separates them.

A self-hosted option is under development. Contact hello@tokentriage.com for early access. Plan
entitlement is checked at the API layer at runtime, so there is one build and nothing to swap when
your plan changes.

The licence does not grant trademarks: whatever you deploy, do not ship it to others as
TokenTriage.

The single static binary is CGO-free and cross-compiles to Linux, Windows, and macOS without
a C toolchain.
