Models endpoint
GET /v1/models lists every alias in the catalog with the metadata a client needs to build a model picker: label, whether your organization can call it right now, reasoning-effort levels, provider, and family. It is free to call and never paginated.
Endpoint
GET https://api.mindshub.ai/v1/models
- Python
- TypeScript
for model in client.models.list():
print(model.id)
for await (const model of client.models.list()) {
console.log(model.id);
}
The generated reference page is GET /v1/models. Both the OpenAI and Anthropic SDKs' models.list() parse the response: each row carries type, display_name, and created_at beside the OpenAI-shaped fields, and has_more is always false.
Response
{
"object": "list",
"data": [
{
"id": "sonnet",
"label": "Claude Sonnet 5",
"object": "model",
"created": 0,
"enabled": true,
"reasoning_efforts": ["low", "medium", "high", "max"],
"default_reasoning_effort": "high",
"embedding": false,
"provider": "anthropic",
"family": "sonnet",
"default_for": []
}
],
"has_more": false
}
| Field | Meaning |
|---|---|
id | The alias. This is what you put in the model field of a request. |
label | Human-readable display name. |
enabled | Whether your organization can call this model right now. false usually means it needs wallet credit. Disabled models still appear in the listing. |
reasoning_efforts | Effort levels the model accepts, or null if the level isn't adjustable. null does not mean the model doesn't reason; see Reasoning. |
default_reasoning_effort | The effort used when you don't specify one. |
embedding | true for embedding models (use them with /v1/embeddings, not chat). |
provider | The provider serving the model (anthropic, openai, gemini, fireworks, moonshot, meta, xai). This is who serves the model, not necessarily who trained it. |
family | The moving alias this fixed-version or compatibility pin belongs to. family == id means this alias tracks the newest version; any other value names the pin's moving head. |
supported_params | Reserved, not published yet. Generation parameters the model honors, in the platform's parameter names. No row carries it today, so treat its absence as "unknown"; the capability matrix answers the question in the meantime. |
default_for | The agent roles this alias is the default for, for a client that lets a user pick a model per role: any of planning, coding, router. Empty on every alias that is nobody's default. It grants nothing; enabled still decides whether you may call the model. |
created | Always 0. Not a real timestamp. |
provider, family, and default_for are omitted from a row rather than sent as null when the service hasn't classified it, so read them with a default. default_for is the one where absent and empty differ: [] means this alias is nobody's default; a missing key means the service cannot say.
There is no owned_by field. Code that reads owned_by won't find it.
Client-specific responses
The endpoint answers in three dialects, chosen from the request's headers:
- Default: the shape above.
- Claude Code (detected from its user agent): ids are minted as
anthropic-<alias>, rows carrydisplay_name, and the list is filtered to moving, non-embedding aliases so Claude Code's picker shows one entry per family. See Coding agents. - Codex: a
{"models": [...]}list withslug, the client's ownbase_instructions,visibilityoverrides for bundled slugs, and a content-derivedETag. See Codex.
Errors you can hit
401 invalid_credentials without a valid key. The listing itself never returns a 402 or 429: disabled models are listed with enabled: false instead. See Errors.