# List Image Models

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

The image models currently served, in OpenRouter's image model list shape, for `images.listModels()` in OpenRouter's SDKs. Each entry names the parameters the model accepts (`supported_parameters`: `enum`, `range` and `boolean` descriptors) and links its endpoint record in `endpoints`. Everything comes from the model's capability spec, so the limits listed are the limits enforced.

`size` is a constraint, not a list: a `WxH` string whose sides are multiples of `multiple_of`, whose area is between `min_area` and `max_area` pixels, and whose longer side is at most `max_ratio` times the shorter; where `max_total_area` is there, the `n` images of one request together may cover at most that many pixels (a model that renders them in one pass runs out of memory on more). A range parameter that also takes values outside its range lists them as `also` (qwen-image-2.1's `steps`: 20 to 50, or 6). `aspect_ratio` and `resolution` are enums, and `resolution.sizes` is the table of the size each aspect ratio and resolution gives. Prices are on `GET /v1/models` (per megapixel).

## Responses

- `200`: OK (image-models-response)
- `401`: The API key is missing, unknown or not active. Send it as Authorization: Bearer <key>. (error-payload)
- `502`: The model catalog cannot be read right now. Retry shortly; an empty list is never sent in its place. (error-payload)

## Example

```bash
curl https://api.vultrinference.com/v1/images/models \
  -H "Authorization: Bearer $VULTR_INFERENCE_API_KEY"
```

```python
import os
import requests

response = requests.get(
    "https://api.vultrinference.com/v1/images/models",
    headers={"Authorization": f"Bearer {os.environ['VULTR_INFERENCE_API_KEY']}"},
)
print(response.json())
```

```javascript
const response = await fetch("https://api.vultrinference.com/v1/images/models", {
  headers: {
    Authorization: `Bearer ${process.env.VULTR_INFERENCE_API_KEY}`,
  },
});
console.log(await response.json());
```
