Models
Every agent and smith runs on a model id —
its model field. The backend provider is inferred from the id: gpt-* and
o* route to OpenAI, claude-* to Anthropic, gemini-* to Google. The id is
not gated: any model string those providers serve works once a key for that
provider resolves. The catalog below is the curated set the console offers in
the per-agent picker — flagship first, one provider per group.
Catalog
Each provider's current top models plus the previous-generation flagship:
| Provider | Model id | |
|---|---|---|
| OpenAI | gpt-5.5 | GPT-5.5 — flagship |
| OpenAI | gpt-5.5-mini | GPT-5.5 mini — fast, low-cost |
| OpenAI | gpt-5.4 | GPT-5.4 — previous flagship |
| Anthropic | claude-opus-4-8 | Claude Opus 4.8 — flagship |
| Anthropic | claude-opus-4-7 | Claude Opus 4.7 — previous flagship |
| Anthropic | claude-sonnet-4-6 | Claude Sonnet 4.6 — balanced |
| Anthropic | claude-haiku-4-5 | Claude Haiku 4.5 — fastest |
gemini-3.1-pro | Gemini 3.1 Pro — flagship | |
gemini-3.5-flash | Gemini 3.5 Flash — balanced | |
gemini-3.1-flash-lite | Gemini 3.1 Flash-Lite — high-volume | |
gemini-2.5-pro | Gemini 2.5 Pro — previous flagship |
The catalog is a convenience, not a constraint — set any id your provider serves
via the API and it resolves by prefix (e.g. Anthropic's claude-fable-5). Use
the flagship a tier needs; don't pay for one it doesn't.
Keys: hosted or bring-your-own
A model runs on a key for its provider, resolved in order:
- BYOK — the tenant's own key for that provider (
PUT /v1/tenant/model_keys/{provider}), wins when present. - Ingram-hosted — the platform key, used when no BYOK key is set (unless hosted keys are disabled).
If neither resolves, a run on that model fails with 422 model_key_missing.
List what you can run
GET /v1/tenant/models returns the catalog plus, per model, whether a key
resolves (available) and whose (source: "byok", "hosted", or null):
# Authorization: tenant token with runs:read (server-side only)
curl https://api.cloud.ingram.tech/v1/tenant/models \
-H "Authorization: Bearer $IC_TOKEN" \
-H "IC-Api-Version: 2026-05-01"
# → { "data": [ { "id": "claude-opus-4-8", "provider": "anthropic",
# "label": "Claude Opus 4.8", "available": true,
# "source": "hosted" }, … ],
# "providers": [ { "id": "openai", "label": "OpenAI",
# "base_url": true, "hosted": true }, … ] }
A provider with base_url: true (OpenAI) accepts a custom endpoint on its BYOK
key, so any OpenAI-compatible backend can stand in.
Set or remove a BYOK key (tenant-admin token only; the key is never echoed):
# Authorization: tenant-admin token (server-side only)
curl -X PUT https://api.cloud.ingram.tech/v1/tenant/model_keys/openai \
-H "Authorization: Bearer $IC_ADMIN_TOKEN" \
-H "IC-Api-Version: 2026-05-01" \
-H "Content-Type: application/json" \
-d '{ "api_key": "sk-…" }'
# → { "provider": "openai", "configured": true, "base_url": null }
In the console
Settings → Models lists the providers and which hold a key, and is where you add or remove BYOK keys. The per-agent model picker (on an agent or smith) lists this catalog grouped by provider and flags any model whose provider has no key configured — still selectable, but runs on it fail until a key is set.