# API de modelos

> GET /v1/models e GET /v1/models/{id} listam os modelos públicos com limites, preços e capacidades.


## Listar modelos

```endpoint
GET https://api.notholy.com/v1/models
```

A lista é pública: não precisa de chave. Ela traz todos os modelos ativos ou descontinuados, na ordem do catálogo, no formato de lista da OpenAI com campos extras.

```json
{
  "object": "list",
  "data": [
    {
      "id": "notholy-specter",
      "object": "model",
      "created": 1794014537,
      "owned_by": "notholy",
      "base_model": "GLM 5.3 Abliterated",
      "capabilities": {
        "reasoning": true,
        "reasoning_efforts": [
          "low",
          "high",
          "max"
        ],
        "tools": true
      },
      "context_length": 1048576,
      "input_modalities": [
        "text"
      ],
      "max_output_tokens": 131072,
      "name": "NotHoly Specter",
      "pricing": {
        "currency": "USD",
        "unit": "1M tokens",
        "cached_input": "0.273000",
        "input": "1.820000",
        "output": "3.640000"
      },
      "status": "active"
    }
  ]
}
```

### Campos

| Campo | Tipo | Observações |
|---|---|---|
| `id` | string | Envie como `model` |
| `name` | string | Nome de exibição |
| `status` | string | `active` ou `deprecated` |
| `context_length` | integer | Tokens de entrada mais saída |
| `max_output_tokens` | integer | O máximo que uma requisição pode gerar |
| `input_modalities` | string[] | `text`, e `image` nos modelos que aceitam imagem |
| `capabilities` | object | `tools`, `reasoning` e os `reasoning_efforts` aceitos |
| `pricing` | object | USD por milhão de tokens, como strings decimais: `input`, `output`, `cached_input` |
| `base_model` | string | O modelo open-weight em que ele se baseia, quando publicado |

Com um cabeçalho `anthropic-version`, a lista usa o formato da Anthropic: `{data, has_more, first_id, last_id}` com itens `{type: "model", id, display_name, created_at}`.

## Consultar um modelo

```endpoint
GET https://api.notholy.com/v1/models/notholy-specter
```

Retorna o mesmo objeto para um modelo só. Um ID desconhecido ou aposentado retorna `404 model_not_found`.

```bash test
curl https://api.notholy.com/v1/models/notholy-specter -H "Authorization: Bearer $NOTHOLY_API_KEY"
```

```python test
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.notholy.com/v1", api_key=os.environ["NOTHOLY_API_KEY"])

for m in client.models.list():
    print(m.id)
```
