Models
Discover the public tier catalog at runtime with GET /api/v1/models.
GET /api/v1/models returns the public tier catalog (the tiers you can
pass as model, with their capabilities), so you read it at runtime
instead of hardcoding tier strings.
curl https://api.cruxy.ai/api/v1/models \
-H "Authorization: Bearer $CRUXY_API_KEY"const res = await fetch('https://api.cruxy.ai/api/v1/models', {
headers: { Authorization: `Bearer ${process.env.CRUXY_API_KEY}` },
})
const { data } = await res.json()
for (const model of data) {
console.log(model.id, model.context_window, model.supports_tools)
}Tiers, never provider models
The catalog lists Cruxy's public tiers (kavi, vaani, and
mira) in the OpenAI discovery shape. Each entry's id is the tier
string you pass as model to Chat. The response
never exposes the upstream provider model behind a tier, so a tier is a
stable id you can depend on even when the backing model changes.
Choosing a tier compares the tiers and
when to use each.
| Kavi | Vaani | Mira | |
|---|---|---|---|
| Model id | kavi | vaani | mira |
| What it is | The most capable tier. | The balanced tier. | The fastest tier. |
| Best for | The hardest tasks: deep reasoning and the largest output budget. | Everyday calls: strong quality at lower latency and cost. | Short, high-volume calls where latency and cost matter most. |
Response shape
The envelope is a list of model objects:
{
"object": "list",
"data": [
{ "object": "model", "id": "kavi", "label": "..." }
]
}Each entry describes one tier:
| Field | Meaning |
|---|---|
id | The tier string to pass as model, e.g. kavi. |
label | Human-readable name for the tier. |
object | Always "model". |
context_window | Maximum input size, in tokens. |
max_output | Maximum tokens the tier will generate. |
latency_target_ms | The tier's latency target, in milliseconds. |
supports_tools | Whether the tier supports tool calling; see Define tools. |
pricing | currency, input_unit, and output_unit, the per-unit prices. |
Read the concrete values from the live response rather than assuming them; they can change as tiers evolve.
Errors
GET /api/v1/models returns 401 if the key is missing or invalid. See
Errors.
Next steps
- Chat: use a tier id as
model. - Choosing a tier: pick the tier for each call.
- Define tools: for tiers where
supports_toolsis true. - Changelog: when the catalog's metadata changed.