---
title: "List Models"
method: GET
path: "/api/v1/models"
tags: ["Models"]
---

# List Models

`GET /api/v1/models`

Returns one row per provider/model offering from the catalog. Model IDs
are unique within a provider; `(provider, id)` is the resource identity.

## Query parameters

- `provider` string — LLM provider identifier.
- `query` string
- `page[limit]` integer
- `page[offset]` integer

## Response `200`

Paginated list of models

- PaginatedModelList — Paginated list of models.
  - `data` Model[], required
    - `id` string, required — Canonical human-facing model ID, unique within the provider.
    - `provider` string, required — LLM provider identifier.
    - `family` string, required — Model family grouping.
    - `display_name` string, required — Human-readable model name.
    - `limits` ModelLimits, required — Token limits for a model.
      - `context_window` integer, required — Maximum context window size in tokens.
      - `max_output` integer, nullable, required — Maximum output tokens, if known.
    - `training` string, nullable, required — Training data cutoff date (YYYY-MM-DD).
    - `knowledge_cutoff` string, nullable, required — Public knowledge cutoff label, if known.
    - `features` ModelFeatures, required — Capability flags for a model.
      - `tools` boolean, required — Whether the model supports tool use.
      - `vision` boolean, required — Whether the model supports vision/image inputs.
      - `reasoning` boolean, required — Whether the model supports extended reasoning.
      - `reasoning_effort` 'levels' | 'always_adaptive' | 'none', required — Whether the model endpoint supports a native reasoning-effort parameter. `levels` accepts discrete effort levels; `always_adaptive` accepts effort levels with natively always-on adaptive thinking; `none` has no native effort parameter.
      - `prompt_cache` boolean, required — Whether the model endpoint supports prompt caching.
      - `cache_control_breakpoints` boolean, required — Whether the endpoint only caches when the request marks the cacheable prefix with Anthropic-style cache_control breakpoints (e.g. Claude via OpenRouter).
      - `sampling_params` boolean, required — Whether the model accepts classic sampling parameters (temperature, top_p).
    - `controls` ModelControls, required — Request-control values accepted by a provider/model offering.
      - `reasoning_effort` ReasoningEffort[], required — Exact reasoning-effort values accepted by this offering. An empty array means the request control is unsupported.
    - `costs` ModelCosts, required — Pricing per million tokens in USD.
      - `input_cost_per_mtok` number, double, nullable, required — Cost per million input tokens in USD.
      - `output_cost_per_mtok` number, double, nullable, required — Cost per million output tokens in USD.
      - `cache_input_cost_per_mtok` number, double, nullable, required — Cost per million cached input tokens in USD.
    - `estimated_output_tps` number, double, nullable, required — Estimated output tokens per second.
    - `aliases` string[], required — Alternative names that resolve to this model.
    - `default` boolean, required — Whether this is the default model for its provider.
    - `small_default` boolean, required — Whether this is the provider's small/default utility model.
    - `configured` boolean, required — Whether credential material is present for this model's provider on the server (vault entry or environment variable). Does NOT imply the credential is valid or that requests will succeed; call `POST /models/{id}/test` to verify usability.
  - `meta` PaginationMeta, required — Pagination metadata included in every paginated response.
    - `has_more` boolean, required — Whether additional pages of results are available.
    - `total` integer — Total number of items matching the current filters. Optional — only populated by endpoints that compute the full count cheaply (e.g. in-memory filtering). When omitted, clients should rely on `has_more` and cursor through pages.

## Other responses

- `400` — Invalid filter value

---

[API](https://skmtc.net/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.net/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fabro-sh/fabro-run-api/versions/bee030053823/schema)
