Models
Saxeo exposes a curated catalog under stable identifiers so model upgrades
don't break your agents. List them at runtime with GET /v1/models. A model
id outside the catalog is refused with 400: the gateway never forwards an
unknown id to an upstream.
Each entry carries pricing (prompt_usd_per_mtok and
completion_usd_per_mtok, in USD per 1M tokens) and an open_weight flag.
These are the prices you are charged: the deployment's margin is already
included, so the figure you compute from them is the figure in your signed
receipt. See Cost & metering.
The tables below are generated from the gateway's own catalog at the default
20% margin. A deployment can set a different margin, so GET /v1/models on
the gateway you actually call is the authoritative sheet — it applies that
deployment's margin to the same figures.
The catalog is organized in three lanes plus the confidential tier. Where a model runs (and what its host can see) differs by lane; the privacy ladder is the full picture.
The flagship lane: saxeo, sable-fast, sable-max
Three ids, each kept pointed at a strong frontier engine.
| Saxeo id | Engine (current) | Context | Prompt $/Mtok | Completion $/Mtok | Open weights |
|---|---|---|---|---|---|
saxeo | Engine (current)Anthropic Claude Opus 5 | Context1,000,000 | Prompt $/Mtok$6.00 | Completion $/Mtok$30.00 | Open weights❌ |
sable-fast | Engine (current)Anthropic Claude Sonnet 5 | Context1,000,000 | Prompt $/Mtok$2.40 | Completion $/Mtok$12.00 | Open weights❌ |
sable-max | Engine (current)Anthropic Claude Fable 5 | Context1,000,000 | Prompt $/Mtok$12.00 | Completion $/Mtok$60.00 | Open weights❌ |
saxeo is the id to use when you want "the best model Saxeo serves" without
tracking model churn yourself; sable-fast is the cheaper, lower-latency
variant, and sable-max is the deepest engine on the catalog. All three carry
the same contract: a stable name, a disclosed engine, and the freedom for
Saxeo to repoint the id to a better engine over time without breaking
callers: that indirection is the point of having them. The engine is
disclosed, not hidden: this page names what each id resolves to, and the
signed receipt on every response records the engine that
actually served that request.
How the flagship routes
Each flagship id carries an ordered engine chain, not a single engine. If the primary engine's upstream fails (a 5xx or a network error) the request retries on the next engine in the chain. A 4xx never fails over: no engine fixes a malformed request, so a client error comes straight back.
| Saxeo id | Engine chain (current) |
|---|---|
saxeo | Engine chain (current)Claude Opus 5 → Claude Sonnet 5 → Gemini 2.5 Pro |
sable-fast | Engine chain (current)Claude Sonnet 5 → Claude Haiku 4.5 → Gemini 2.5 Flash |
sable-max | Engine chain (current)Claude Fable 5 → Claude Opus 5 → Gemini 2.5 Pro |
Routing is never a black box, because two things hold on every flagship response:
- The receipt names the engine. Flagship receipts always carry an
enginefield: the upstream engine that actually served the request. If a failover happened, the receipt says so by naming the engine that ran, not the one you'd have expected. - Billing prices the engine that ran. A request served by a fallback engine is metered at that engine's rate, not the primary's.
The privacy dial. A flagship id called with
sable_privacy_tier: "confidential" is not refused: it routes to the
TEE-attested confidential models (currently
saxeo-confidential-qwen3.6-35b) instead of the closed engine chain: one id,
one privacy slider. The receipt keeps the requested id and carries the
engine plus the full attestation block. On a deployment with no attested
backend configured, the tier stays Phase-1 advisory and the request serves on
the standard path.
Frontier slate: anonymized access
Closed vendor models, reached through Saxeo's own upstream account. The vendor sees Saxeo's identity, never yours: not your identity, not your API key, not your payment details. The vendor's infrastructure does see the prompt: this is anonymized access, not the confidential tier.
| Saxeo id | Engine / owner | Context | Prompt $/Mtok | Completion $/Mtok | Open weights |
|---|---|---|---|---|---|
saxeo-claude-opus-5 | Engine / ownerAnthropic Claude Opus 5 | Context1,000,000 | Prompt $/Mtok$6.00 | Completion $/Mtok$30.00 | Open weights❌ |
saxeo-claude-sonnet-5 | Engine / ownerAnthropic Claude Sonnet 5 | Context1,000,000 | Prompt $/Mtok$2.40 | Completion $/Mtok$12.00 | Open weights❌ |
saxeo-claude-fable-5.1 | Engine / ownerAnthropic Claude Fable 5.1 | Context1,000,000 | Prompt $/Mtok$12.00 | Completion $/Mtok$60.00 | Open weights❌ |
saxeo-claude-sonnet-4.5 | Engine / ownerAnthropic | Context1,000,000 | Prompt $/Mtok$3.60 | Completion $/Mtok$18.00 | Open weights❌ |
saxeo-claude-haiku-4.5 | Engine / ownerAnthropic | Context200,000 | Prompt $/Mtok$1.20 | Completion $/Mtok$6.00 | Open weights❌ |
saxeo-gpt-6-astra | Engine / ownerOpenAI | Context1,050,000 | Prompt $/Mtok$12.00 | Completion $/Mtok$60.00 | Open weights❌ |
saxeo-gemini-3.8-flash | Engine / ownerGoogle | Context1,048,576 | Prompt $/Mtok$0.90 | Completion $/Mtok$4.50 | Open weights❌ |
saxeo-gemini-2.5-pro | Engine / ownerGoogle | Context1,048,576 | Prompt $/Mtok$1.50 | Completion $/Mtok$12.00 | Open weights❌ |
saxeo-gemini-2.5-flash | Engine / ownerGoogle | Context1,048,576 | Prompt $/Mtok$0.36 | Completion $/Mtok$3.00 | Open weights❌ |
saxeo-grok-4.6 | Engine / ownerxAI | Context500,000 | Prompt $/Mtok$2.40 | Completion $/Mtok$7.20 | Open weights❌ |
saxeo-gpt-4o-mini | Engine / ownerOpenAI | Context128,000 | Prompt $/Mtok$0.18 | Completion $/Mtok$0.72 | Open weights❌ |
Anonymized is not confidential. Anonymized access hides who is asking from the vendor; confidential (TEE) hides what is asked from the host. On this lane the vendor cannot tie a request to you, but its servers still process the plaintext prompt. Only the
saxeo-confidential-*models below carry the hardware guarantee that the host provably cannot read the request, and they are the only models allowed to carry the word "confidential". The privacy ladder spells out the difference rung by rung.
Open-weight workhorses
Public-weight models served on the standard path. The serving host sees the
prompt (see the privacy contract), but because the weights
are public, these are the models that can follow the confidential pair into
an attested enclave over time.
| Saxeo id | Engine / owner | Context | Prompt $/Mtok | Completion $/Mtok | Open weights |
|---|---|---|---|---|---|
saxeo-kimi-k3 | Engine / ownerMoonshot | Context1,048,576 | Prompt $/Mtok$3.177766 | Completion $/Mtok$15.939269 | Open weights✅ |
saxeo-qwen3.8-a95b | Engine / ownerAlibaba | Context1,048,576 | Prompt $/Mtok$2.40 | Completion $/Mtok$7.20 | Open weights✅ |
saxeo-glm-5.3 | Engine / ownerZ.ai | Context1,310,720 | Prompt $/Mtok$1.68 | Completion $/Mtok$5.28 | Open weights✅ |
saxeo-deepseek-v4.1-flash | Engine / ownerDeepSeek | Context1,048,576 | Prompt $/Mtok$0.18 | Completion $/Mtok$0.72 | Open weights✅ |
saxeo-deepseek-r1 | Engine / ownerDeepSeek | Context64,000 | Prompt $/Mtok$0.84 | Completion $/Mtok$3.00 | Open weights✅ |
saxeo-deepseek-v3 | Engine / ownerDeepSeek | Context65,536 | Prompt $/Mtok$0.30888 | Completion $/Mtok$1.23444 | Open weights✅ |
saxeo-qwen3-coder | Engine / ownerAlibaba | Context262,144 | Prompt $/Mtok$0.36 | Completion $/Mtok$1.20 | Open weights✅ |
saxeo-mistral-large | Engine / ownerMistral | Context128,000 | Prompt $/Mtok$2.40 | Completion $/Mtok$7.20 | Open weights✅ |
saxeo-llama-3.3-70b | Engine / ownerMeta | Context131,072 | Prompt $/Mtok$0.12 | Completion $/Mtok$0.384 | Open weights✅ |
saxeo-qwen-2.5-72b | Engine / ownerAlibaba | Context32,768 | Prompt $/Mtok$0.432 | Completion $/Mtok$0.48 | Open weights✅ |
saxeo-llama-3.1-8b | Engine / ownerMeta | Context131,072 | Prompt $/Mtok$0.06 | Completion $/Mtok$0.096 | Open weights✅ |
Confidential: TEE-attested
The two models served inside an attested Intel TDX enclave, with the
attestation stamped into the signed receipt
(verification: "tee-attested"; response_bound is the stricter per-response
claim and reads false today — see the confidential
tier). These are the only
models the confidential tier accepts: requesting any other
model on that tier fails closed with 400, never a silent downgrade.
| Saxeo id | Engine / owner | Context | Prompt $/Mtok | Completion $/Mtok | Open weights |
|---|---|---|---|---|---|
saxeo-confidential-qwen3.6-35b | Engine / ownerQwen (attested TDX) | Context131,072 | Prompt $/Mtok$0.36 | Completion $/Mtok$0.72 | Open weights✅ |
saxeo-confidential-gemma4-26b | Engine / ownerGemma (attested TDX) | Context65,536 | Prompt $/Mtok$0.18 | Completion $/Mtok$0.36 | Open weights✅ |
Private lane: double-blind routing
The private lane is rung 2 of the privacy ladder: these models are pinned to a second intermediary (Venice), so the request travels caller → Saxeo → Venice → vendor. The vendor is two hops from your identity; Venice sees only Saxeo's identity, never yours; Saxeo never persists content. No single party outside Saxeo holds who and what together, and Saxeo itself keeps only metadata.
| Saxeo id | Engine / owner | Context | Prompt $/Mtok | Completion $/Mtok | Open weights |
|---|---|---|---|---|---|
sable-private | Engine / ownerAnthropic Claude Opus 5 | Context1,000,000 | Prompt $/Mtok$7.20 | Completion $/Mtok$36.00 | Open weights❌ |
sable-private-fast | Engine / ownerAnthropic Claude Sonnet 5 | Context1,000,000 | Prompt $/Mtok$3.60 | Completion $/Mtok$18.00 | Open weights❌ |
saxeo-venice-uncensored | Engine / ownerVenice Uncensored 1.2 | Context128,000 | Prompt $/Mtok$0.24 | Completion $/Mtok$1.08 | Open weights✅ |
Two properties are enforced, not promised:
- The route is the product, so it never falls back. A pinned model hard-fails when its route is down rather than silently serving through a path with a different privacy posture.
- No hidden vendor prompt. The intermediary's default system prompt is
disabled at Saxeo's egress shim, so you are not billed for tokens you never
sent and no unseen instructions shape the reply. (Pass your own
venice_parametersobject to override.)
Whether the lane is active on a deployment is visible in GET /v1/models:
a model pinned to a route the deployment has not configured is omitted from
the listing entirely: an advertised model that cannot serve would be a lie.
This lane hides who from every party past Saxeo and narrows what to parties two hops from your identity. It is not the confidential tier: the vendor's infrastructure still processes the plaintext to run the model.
Embeddings
| Saxeo id | Engine / owner | Max input | Prompt $/Mtok | Completion $/Mtok | Open weights |
|---|---|---|---|---|---|
saxeo-embed-3-small | Engine / ownerOpenAI | Max input8,192 tokens | Prompt $/Mtok$0.024 | Completion $/Mtok— | Open weights❌ |
saxeo-embed-3-large | Engine / ownerOpenAI | Max input8,192 tokens | Prompt $/Mtok$0.156 | Completion $/Mtok— | Open weights❌ |
saxeo-embed-nomic | Engine / ownerNomic | Max input8,192 tokens | Prompt $/Mtok$0.012 | Completion $/Mtok— | Open weights✅ |
Embeddings bill on input tokens only.
Open-weight vs. vendor-hosted
/v1/models marks every model open_weight: true or false. It matters for
the privacy roadmap:
open_weight: truemeans the weights are public (Llama, DeepSeek, Mistral, Qwen, Gemma, Nomic), so the model can run inside a Saxeo-verified enclave. Two do today:saxeo-confidential-qwen3.6-35bandsaxeo-confidential-gemma4-26b. The rest are served on thestandardpath for now.open_weight: falsemeans the model only runs on its vendor's servers (the flagship lane's current engines, the frontier slate, and thetext-embedding-3models). The vendor's infrastructure sees the input, and it will never be confidential beyond encrypt-in-transit plus anonymized access. We'd rather tell you that than ship a closed model under a privacy banner, so these staystandardtier only. (The flagship ids are names, not weights: the privacy dial above moves them to attested open-weight engines, it never puts a closed engine in an enclave.)
Provider pinning
A catalog model can be pinned to a single named upstream provider, and a
pinned model never fails over to another provider: if its provider is
down, the request fails rather than being served somewhere else. The
private lane is pinned this way: a
double-blind route (see the privacy ladder) only
means something if the request provably cannot leak to a different upstream.
A deployment that lacks a pinned model's provider omits that model from
GET /v1/models rather than advertising a route it cannot serve.
Retired ids stay resolvable
A published Saxeo id is a contract, so we don't delete one when its upstream
goes away. saxeo-confidential-24b originally mapped to a model the backend
has since retired; it is now a compatibility alias for
saxeo-confidential-qwen3.6-35b. Existing callers keep working, and it is
deliberately omitted from GET /v1/models so nobody builds against it fresh.
Name a model from the tables above in new integrations.