Skip to content
Docs version r15
OpenAPIJSONYAML
API reference / Models

List accessible model specifications

listModels
GET/v1/models

List accessible model specifications

Markdown fileTry in PlaygroundDocs version r15

Authentication

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

Query parameters

Query parameters
FieldDescription
limitintegerOptional

Page size.

Minimum 1, Maximum 100, Default 50
cursorstringOptional

Cursor from the previous page.

At most 64 characters

Responses

200 OK

200 OK
FieldDescription
entriesobject[], can be nullRequired
Fields of entries
Fields of entries
capabilityVersionstringRequired
inputSchemaanyRequired
modelIdstringRequired
operationstringRequired
pricingobjectRequired
Fields of pricing
Fields of pricing
asOfdate-timeRequired
cnyobjectRequired
Fields of cny
Fields of cny
amountstringOptional
Pattern^(0|[1-9][0-9]*)([.][0-9]+)?$
basisstringOptional
nominal_usdcurrent_standard_pack
pack_price_versionstringOptional
quoted_atdate-timeOptional
statusstringRequired
availableunavailable
tax_includedbooleanRequired
false
comparisonobjectOptional
Fields of comparison
Fields of comparison
officialobjectRequired
Fields of official
Fields of official
amountstringOptional
asOfstringRequired
componentsobject[], can be nullOptional
currencystringOptional
officialListUrlstringRequired
taxBasisstringOptional
unitstringOptional
officialRequestAmountstringOptional
ourAmountstringOptional
referencePackobjectOptional
Fields of referencePack
Fields of referencePack
currencystringRequired
idstringRequired
principalMinorstringRequired
purchasedUnitsstringRequired
taxBasisstringRequired
versionstringRequired
savingsPercentstringOptional
creditsstringRequired
kindstringRequired
priceVersionstringRequired
usdobjectRequired
Fields of usd
Fields of usd
amountstringOptional
Pattern^(0|[1-9][0-9]*)([.][0-9]+)?$
basisstringOptional
nominal_usdcurrent_standard_pack
pack_price_versionstringOptional
quoted_atdate-timeOptional
statusstringRequired
availableunavailable
tax_includedbooleanRequired
false
referenceVideobooleanOptional
routeIdstringRequired
next_cursorstringOptional

Pass as cursor to read the next page. Empty on the last page.

Errors

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

Error body

Error body
FieldDescription
errorobjectRequired

Details of the error.

Fields of error
Fields of error
codestringRequired

Stable error code to branch on.

messagestringRequired

Readable explanation. Do not parse it.

request_idstringRequired

Include this when you contact support.

retryablebooleanRequired

True for 429 and 503 only. Even then, check recent tasks before you send a create request again.

task_idstringOptional

The task this error belongs to, when one exists.

Errors
StatusWhat 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.

Request example

cURL
curl "https://api.vizoapi.com/v1/models?limit=20" \
  -H "Authorization: Bearer $VIZO_API_KEY"
Python
import os, requests

res = requests.get(
    "https://api.vizoapi.com/v1/models?limit=20",
    headers={"Authorization": f"Bearer {os.environ['VIZO_API_KEY']}"},
    timeout=60,
)
print(res.status_code, res.json())
Node.js
const res = await fetch("https://api.vizoapi.com/v1/models?limit=20", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
  },
});
console.log(res.status, await res.json());
Response 200
{
  "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": ""
}
Response 401
{
  "error": {
    "code": "invalid_credentials",
    "message": "API key is missing, malformed, expired or revoked.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
Response 403
{
  "error": {
    "code": "scope_denied",
    "message": "The key does not allow this operation for this project.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
Response 404
{
  "error": {
    "code": "resource_not_found",
    "message": "The resource is not available to this project.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
Response 422
{
  "error": {
    "code": "invalid_input",
    "message": "Input does not match the published schema.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
Response 500
{
  "error": {
    "code": "request_failed",
    "message": "The request failed. Check recent generations before submitting again.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
Response 503
{
  "error": {
    "code": "temporarily_unavailable",
    "message": "Service is temporarily unavailable.",
    "retryable": true,
    "request_id": "9f2c41d07ab3e5c8"
  }
}