Six capabilities. One request path.
Each of these could be a separate vendor. Here they share one request: the same row that records what a call cost also records which provider served it, whether the cache answered it and which guardrail stopped it.
Routing
Name a model, name the ones to try if it cannot be served, and set which providers you prefer. Multigrid retries transient failures on each provider and moves down the list when it runs out of attempts.
- 0
- lines of retry code
- 3
- attempts before failover
Bring your own keys
Add your own provider keys and Multigrid routes through them — your rates, your billing relationship. We charge nothing on that traffic and it does not touch your credit balance.
- 0%
- fee on BYOK traffic
- 5
- providers you can key
Observability
Every request writes a row: model, provider, tokens, cost, latency, attempts, cache outcome and your own tags. No prompt text, no completion text — the schema has nowhere to put them.
- 0
- prompt bodies stored
- OTLP
- export to your own tracing stack
Guardrails
Six rule types, evaluated inside the request path. A client that forgets to call them still gets them, and a rule can run in warn mode against real traffic before it is allowed to refuse anything.
- 6
- rule types
- 5
- PII categories detected
Caching
An exact-match response cache, off unless a request asks for it. Identical calls come back from our database instead of the provider, and a hit is charged nothing.
- Opt-in
- nothing is cached unless you ask
- $0
- charged for a cache hit
Batch jobs
Upload a JSONL file of up to 50,000 requests and let them run in the background against your routing rules, your spend limits and your guardrails. The right home for backfills and nightly enrichment.
- 50K
- requests per batch
- 16 MB
- maximum file size
Not sure where to start?
Point an OpenAI-compatible client at Multigrid and you have routing and per-request cost logging without changing anything else.
Create an account