Models

List available models, or browse the catalog at /models.

List models

Terminal
curl https://api.llmstudio.dev/v1/models \
  -H "Authorization: Bearer $LLM_STUDIO_API_KEY"

Returns an OpenAI-shaped list. id is the stable public model id (e.g. studio/qwen3-0.6b, openai/gpt-5.1) -- always namespaced by provider for BYOK models, and this is the exact string to pass as model on every other endpoint. An additional llm_studio object per model carries registry metadata:

Response
{
  "object": "list",
  "data": [
    {
      "id": "studio/qwen3-0.6b",
      "object": "model",
      "created": 1735689600,
      "owned_by": "studio",
      "llm_studio": {
        "display_name": "Qwen 3 0.6B",
        "type": "hosted",
        "status": "available",
        "parameter_count": "0.6B",
        "context_window": 32768,
        "capabilities": ["chat", "reasoning"],
        "supports_text": true,
        "supports_tools": true,
        "supports_reasoning": true,
        "supports_vision": false,
        "supports_embeddings": false,
        "supports_streaming": true,
        "plan_requirement": null,
        "credit_multiplier": 1,
        "license": { "name": "Apache-2.0", "url": null },
        "retirement": null
      }
    }
  ]
}

Only models your organization is authorized to discover appear here -- a model your plan doesn't include, or one your organization's admin has explicitly blocked, is simply absent from this list, the same as it would be from GET /v1/models/:id.

Hosted vs. BYOK

type: "hosted" models run on LLM Studio's infrastructure and count against your plan's hosted credit quota. type: "byok" models require a connected provider credential and are billed by the provider directly -- they never consume hosted credits, whatever the model's credit_multiplier is configured to.

See the full catalog at /models.

Model status and retirement

A model's status is available or degraded for normal use. A model being phased out shows status: "retiring" -- it still generates normally, but the response carries an x-model-deprecated: true header (plus x-model-deprecation-announced-at / -effective-at when set) so well-behaved clients can start migrating before it's actually retired. Once retired, the model disappears from GET /v1/models discovery and every generation request against it fails with 410 model_retired -- the id itself is never reused or deleted, so historical usage and conversation history stay intact.