# List Models

`GET https://api.vultrinference.com/v1/models`

Retrieve the public inference model catalog. By default this returns OpenRouter ModelDocumentV2 entries (the provider document); OpenRouter's own SDKs, recognised by their User-Agent, and requests with `format=openrouter` get OpenRouter's public model list (`data`, `total_count`, `links`) instead, which they can parse. Send the Anthropic-Version header for an Anthropic-compatible model list with cursor pagination. Anthropic mode includes `vultr/claude-code/<model-id>` aliases because Claude Code only discovers IDs containing `claude` or `anthropic`; the original IDs remain available. X-Vultr-Model-Type applies only to the default catalog. TypeSafe's SDKs, which send X-TypeSafe-SDK, get TypeSafe's model list instead: the decision models for POST /v1/systemone as `{"models": [{name, description, release_date}]}`.

## Query parameters

- `format` (string): Set to `openrouter` to get OpenRouter's public model list from a client that does not send an OpenRouter SDK User-Agent, such as a browser (browsers cannot set it). Takes priority over the X-TypeSafe-SDK and Anthropic-Version headers. Other values are ignored. [openrouter]
- `output_modalities` (string): Comma-separated output modalities to list: `text`, `image`, `embeddings`, `audio`, `video`, `rerank`, `decisions`, `speech`, `transcription`, or `all`. `audio` is the music models, which generate through `/v1/music`. A model matches if any of its outputs is listed. Unset, the default catalog lists every model and OpenRouter's public list lists `text`, as OpenRouter's API does. Not applied in Anthropic or TypeSafe mode.
- `input_modalities` (string): Comma-separated input modalities: `text`, `image`, `file`, `audio`, `video`. A model matches if it accepts any of them.
- `supported_parameters` (string): Comma-separated parameter names, as in the public model list's `supported_parameters`. A model must support all of them.
- `offset` (integer): OpenRouter public list only. Models to skip. Offset and limit both omitted is the whole list. [at least 0]
- `after_id` (string): Anthropic mode only. Return the page after this model ID.
- `before_id` (string): Anthropic mode only. Return the page before this model ID.
- `limit` (integer): Anthropic mode: models per page, default 20. OpenRouter public list: models per page, default 500 once offset or limit is set. [default 20, range 1–1000]

## Header parameters

- `anthropic-version` (string): When present, return Anthropic model entries and pagination fields instead of the default catalog.
- `X-Vultr-Model-Type` (string): Filter the default catalog to chat-completion models. Ignored in Anthropic mode. [chat]
- `X-TypeSafe-SDK` (string): Sent by TypeSafe's SDKs (for example `typesafe-sdk/0.7.2`). When present, return TypeSafe's model list of decision models instead of the catalog.

## Responses

- `200`: OK
- `400`: Unsupported model type filter, unknown output or input modality, invalid offset or limit, or invalid Anthropic pagination cursor. With anthropic-version the body is Anthropic's.
- `502`: The model catalog is unavailable (OpenRouter public list only; the default catalog answers an empty list) (error-payload)

## Example

```bash
curl https://api.vultrinference.com/v1/models
```

```python
import requests

response = requests.get(
    "https://api.vultrinference.com/v1/models",
)
print(response.json())
```

```javascript
const response = await fetch("https://api.vultrinference.com/v1/models");
console.log(await response.json());
```
