# Read accessible specifications for one model

`getModel`

`GET /v1/models/{id}`

Read accessible specifications for one model

## Authentication

Send your project key in the request header, for example `Authorization: Bearer $VIZO_API_KEY`. Keep the key on your server.

## Path parameters

- `id` (string, Required) Resource ID. Save it as soon as you receive it.

## Responses

### 200 OK

- `entries` (object[], Required, can be null)
  - `capabilityVersion` (string, Required)
  - `inputSchema` (any, Required)
  - `modelId` (string, Required)
  - `operation` (string, Required)
  - `pricing` (object, Required)
    - `asOf` (date-time, Required)
    - `cny` (object, Required)
      - `amount` (string, Optional) Pattern ^(0\|[1-9][0-9]*)([.][0-9]+)?$
      - `basis` (string, Optional) Allowed values: `nominal_usd`, `current_standard_pack`
      - `pack_price_version` (string, Optional)
      - `quoted_at` (date-time, Optional)
      - `status` (string, Required) Allowed values: `available`, `unavailable`
      - `tax_included` (boolean, Required) Allowed values: `false`
    - `comparison` (object, Optional)
      - `official` (object, Required)
        - `amount` (string, Optional)
        - `asOf` (string, Required)
        - `components` (object[], Optional, can be null)
        - `currency` (string, Optional)
        - `officialListUrl` (string, Required)
        - `taxBasis` (string, Optional)
        - `unit` (string, Optional)
      - `officialRequestAmount` (string, Optional)
      - `ourAmount` (string, Optional)
      - `referencePack` (object, Optional)
        - `currency` (string, Required)
        - `id` (string, Required)
        - `principalMinor` (string, Required)
        - `purchasedUnits` (string, Required)
        - `taxBasis` (string, Required)
        - `version` (string, Required)
      - `savingsPercent` (string, Optional)
    - `credits` (string, Required)
    - `kind` (string, Required)
    - `priceVersion` (string, Required)
    - `usd` (object, Required)
      - `amount` (string, Optional) Pattern ^(0\|[1-9][0-9]*)([.][0-9]+)?$
      - `basis` (string, Optional) Allowed values: `nominal_usd`, `current_standard_pack`
      - `pack_price_version` (string, Optional)
      - `quoted_at` (date-time, Optional)
      - `status` (string, Required) Allowed values: `available`, `unavailable`
      - `tax_included` (boolean, Required) Allowed values: `false`
  - `referenceVideo` (boolean, Optional)
  - `routeId` (string, Required)
- `next_cursor` (string, Optional) Pass as cursor to read the next page. Empty on the last page.

```json
{
  "entries": [
    {
      "capabilityVersion": "string",
      "inputSchema": {},
      "modelId": "string",
      "operation": "string",
      "pricing": {
        "asOf": "2026-11-02T08:00:00Z",
        "cny": {
          "amount": null,
          "basis": null,
          "pack_price_version": null,
          "quoted_at": null,
          "status": null,
          "tax_included": null
        },
        "comparison": {
          "official": null,
          "officialRequestAmount": null,
          "ourAmount": null,
          "referencePack": null,
          "savingsPercent": null
        },
        "credits": "1400.000",
        "kind": "string",
        "priceVersion": "string",
        "usd": {
          "amount": null,
          "basis": null,
          "pack_price_version": null,
          "quoted_at": null,
          "status": null,
          "tax_included": null
        }
      },
      "referenceVideo": false,
      "routeId": "string"
    }
  ],
  "next_cursor": ""
}
```

### 401 Unauthorized

```json
{
  "error": {
    "code": "invalid_credentials",
    "message": "API key is missing, malformed, expired or revoked.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
```

### 403 Forbidden

```json
{
  "error": {
    "code": "scope_denied",
    "message": "The key does not allow this operation for this project.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
```

### 404 Not Found

```json
{
  "error": {
    "code": "resource_not_found",
    "message": "The resource is not available to this project.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
```

### 422 Unprocessable Entity

```json
{
  "error": {
    "code": "invalid_input",
    "message": "Input does not match the published schema.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
```

### 500 Internal Server Error

```json
{
  "error": {
    "code": "request_failed",
    "message": "The request failed. Check recent generations before submitting again.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
```

### 503 Service Unavailable

```json
{
  "error": {
    "code": "temporarily_unavailable",
    "message": "Service is temporarily unavailable.",
    "retryable": true,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
```

## Errors

Errors share one body. Include the request_id when you contact support.

### Error body

- `error` (object, Required) Details of the error.
  - `code` (string, Required) Stable error code to branch on.
  - `message` (string, Required) Readable explanation. Do not parse it.
  - `request_id` (string, Required) Include this when you contact support.
  - `retryable` (boolean, Required) True for 429 and 503 only. Even then, check recent tasks before you send a create request again.
  - `task_id` (string, Optional) The task this error belongs to, when one exists.

| Status | What it means and what to do |
| --- | --- |
| 401 | The key is missing, malformed, expired or revoked. Correct the key on your server, then continue. |
| 403 | The key scope, email verification, a budget or an account restriction blocks this. Check the key type, scopes and project budget. |
| 404 | The model or resource does not exist or is outside this project. Check the project, the ID and that the model is enabled. |
| 422 | A field or value is invalid. Compare the request with the field table and the model page. |
| 500 | The server failed and the task may already be accepted. Do not resend; list recent tasks first. |
| 503 | The service is temporarily unavailable. For a create request, list recent tasks and confirm none was accepted before you submit again. |

### cURL

```bash
curl "https://api.vizoapi.com/v1/models/$MODEL_ID" \
  -H "Authorization: Bearer $VIZO_API_KEY"
```

### Python

```python
import os, requests

model_id = "…"
res = requests.get(
    f"https://api.vizoapi.com/v1/models/{model_id}",
    headers={"Authorization": f"Bearer {os.environ['VIZO_API_KEY']}"},
    timeout=60,
)
print(res.status_code, res.json())
```

### Node.js

```javascript
const model_id = "…";
const res = await fetch(`https://api.vizoapi.com/v1/models/${model_id}`, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
  },
});
console.log(res.status, await res.json());
```
