Models
The model catalog and how AI Setu names and versions models.
Every request names a model in the model field. AI Setu resolves that name
to an upstream provider using its model catalog — a list of canonical
model ids, each mapped to an ordered list of provider candidates.
curl https://gateway.aisetu.ai/v1/chat/completions \
-H "Authorization: Bearer $AI_SETU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"messages": [{"role": "user", "content": "Hello!"}]
}'The response's X-AI-Setu-Provider header tells you which provider actually
served the request — useful when a bare model id could resolve to more than
one candidate. See Routing for the full resolution order.
Three ways to name a model
| Form | Example | Meaning |
|---|---|---|
| Bare model id | claude-sonnet-4-5 | Catalog lookup — AI Setu picks a provider (see Routing) |
<provider>/<model> | anthropic/claude-sonnet-4-5 | Hard override — that exact provider serves, or the request fails |
@<slug>/<model> | @my-openai/gpt-4o-mini | Routes through one specific BYOK Connection you configured (see BYOK) |
Canonical ids are decoupled from vendor ids
The model id you send is not always the exact id the upstream vendor expects.
AI Setu maps a stable canonical id to whatever the provider currently
calls it — for example, canonical claude-sonnet-4-5 resolves to Anthropic's
claude-sonnet-4-5-20250929 on the Anthropic adapter, to
anthropic.claude-sonnet-4-5-20250929-v1:0 on Bedrock, and to
claude-sonnet-4-5@20250929 on Vertex. When a vendor renames or re-dates a
model, only that mapping changes — your code, which references the canonical
id, doesn't need to change.
This also means one canonical model can have more than one provider candidate — a prerequisite for cross-provider failover.
Some example models
These are illustrative, not an exhaustive list — see Finding available models below for the current, authoritative set.
| Provider | Prefix | Example model |
|---|---|---|
| OpenAI | openai/ | openai/gpt-4o-mini |
| Anthropic | anthropic/ | anthropic/claude-haiku-4-5 |
| Google Gemini | gemini/ | gemini/gemini-2.5-flash |
| AWS Bedrock | bedrock/ | bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0 |
| Google Vertex AI | vertex/ | vertex/gemini-2.5-pro |
Vertex is one provider that serves two model families off a single
credential, distinguished by the model's publisher: Gemini-on-Vertex
(vertex/gemini-2.5-pro) and Claude-on-Vertex
(vertex/claude-sonnet-4-5@20250929).
Finding available models
There is no GET /v1/models endpoint on the gateway. The authoritative,
per-workspace view of which models are available and which provider would
serve each one lives in the console, under Settings → Providers & routing
— it shows every catalog model, its ordered provider candidates, and which
one currently wins for your workspace (accounting for your enabled BYOK
connections and any precedence you've set).
If you need to confirm programmatically which provider served a specific
call, read the X-AI-Setu-Provider response header rather than trying to
predict it ahead of time.
Embeddings
POST /v1/embeddings runs the same routing pipeline as chat completions, but
only the OpenAI and Gemini adapters implement an embeddings method today —
routing an embeddings model to Anthropic, Bedrock, or Vertex is not
supported and surfaces as a dispatch error.
curl https://gateway.aisetu.ai/v1/embeddings \
-H "Authorization: Bearer $AI_SETU_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "openai/text-embedding-3-small", "input": "hello world"}'