> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usehasp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Discover the models your org can use through the API, with per-org access state.

The model catalog lists every model invocable through the API, each annotated with your org's access state. Use it to discover what exists and what your org has enabled before configuring access via [Model access](/ai-api/control/model-access). Requires the `models.read` scope (included in `control:read`).

Premium models are opt-in per org (to prevent cost surprises), not gated by plan tier — any tier can enable any model by adding it to the allow-list. See [Model access](/ai-api/control/model-access).

***

## List models

```
GET https://api.usehasp.com/v1/models
Authorization: Bearer hasp_api_live_...
```

### Response

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": "claude-sonnet-4-6",
      "display_name": "Claude Sonnet 4.6",
      "provider": "anthropic",
      "provider_label": "Anthropic",
      "tier": "standard",
      "premium": false,
      "default_off": false,
      "relative_cost": 1.0,
      "context_window": 1000000,
      "capabilities": ["chat", "tool_use", "vision"],
      "enabled": true,
      "is_default": true,
      "available": true
    }
  ]
}
```

### Fields

| Field            | Description                                                                                                                 |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `id`             | Model identifier — the value you pass as `model` on inference requests and in [Model access](/ai-api/control/model-access). |
| `display_name`   | Human-readable model name.                                                                                                  |
| `provider`       | Provider slug (e.g. `anthropic`, `openai`).                                                                                 |
| `provider_label` | Human-readable provider name.                                                                                               |
| `tier`           | `standard` or `premium`.                                                                                                    |
| `premium`        | Whether this is a premium model.                                                                                            |
| `default_off`    | Whether the model is off by default and must be explicitly enabled (opt-in). Premium models are `default_off`.              |
| `relative_cost`  | Relative credit cost vs. a Sonnet-equivalent baseline of `1.0`.                                                             |
| `context_window` | Maximum context window in tokens.                                                                                           |
| `capabilities`   | Supported capabilities (e.g. `chat`, `tool_use`, `vision`).                                                                 |
| `enabled`        | Whether the model is currently in your org's allow-list (reachable for inference).                                          |
| `is_default`     | Whether this is your org's default model.                                                                                   |
| `available`      | Whether the model is currently available platform-wide. `false` during a provider or model incident.                        |

***

## Get a single model

```
GET https://api.usehasp.com/v1/models/{modelId}
Authorization: Bearer hasp_api_live_...
```

Returns a single model in the same shape as one catalog entry. Returns `404 MODEL_NOT_FOUND` for an unknown id or a model not exposed on the API.

***

## Error codes

| Code              | HTTP | Description                                    |
| ----------------- | ---- | ---------------------------------------------- |
| `INVALID_API_KEY` | 401  | Invalid or revoked token                       |
| `MISSING_SCOPE`   | 403  | Key lacks `models.read` (`control:read`) scope |
| `MODEL_NOT_FOUND` | 404  | No such API-accessible model                   |
