List generations
Lists the project's generations newest first (by created_at, then id). Pass next_cursor as cursor for the next page. Filters combine; created_after is inclusive and created_before exclusive.
Authentication
Send your project key in the request header, for example Authorization: Bearer $VIZO_API_KEY. Keep the key on your server.
Query parameters
| Field | Description |
|---|---|
| limitintegerOptional | Page size. Minimum 1, Maximum 100, Default 50 |
| client_referencestringOptional | Your own reference for this request. At most 256 characters |
| cursorstringOptional | Cursor from the previous page. At most 64 characters |
| modelstringOptional | Only generations created with this public model id. At most 128 characters |
| sourcestringOptional | Only generations created through the API or the console. apiconsole |
| statusstringOptional | Only generations whose status currently equals this value. processing matches every unfinished task. processingsucceededfailedcanceledunresolvedPattern ^[a-z_]{1,32}$ |
| created_afterdate-timeOptional | RFC 3339 time. Only generations created at or after it. |
| created_beforedate-timeOptional | RFC 3339 time. Only generations created before it. |
Responses
200 OK
| Field | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| entriesobject[], can be nullRequired | Fields of entries
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
| Field | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| errorobjectRequired | Details of the error. Fields of error
|
| 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. |
| 402 | Available Credits cannot cover this request. Add Credits, wait for them to be credited, then check the balance. |
| 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. |
| 409 | The request conflicts with the current state. Read the resource again and decide whether to send the request again. |
| 422 | A field or value is invalid. Compare the request with the field table and the model page. |
| 429 | Too many requests. No task was created. Wait for the Retry-After time before sending again. |
| 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/generations?limit=20" \
-H "Authorization: Bearer $VIZO_API_KEY"Python
import os, requests
res = requests.get(
"https://api.vizoapi.com/v1/generations?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/generations?limit=20", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
},
});
console.log(res.status, await res.json());Response 200
{
"entries": [
{
"allowed_actions": [],
"billing_closed_at": "2026-11-02T08:00:00Z",
"billing_status": "held",
"closed_at": null,
"created_at": "2026-11-02T08:01:43Z",
"customer_resolution_deadline": "2026-11-03T08:00:12Z",
"delivery_status": "pending",
"error": null,
"execution_status": "processing",
"held_at": "2026-11-02T08:00:00Z",
"id": "gen_01JD8Z5QW3XR",
"input": {},
"key_id": "string",
"key_name": "string",
"late_result_available": false,
"metadata": {
"client_reference": "order-1042"
},
"model": "MODEL_ID",
"price": {
"charged": "0.000",
"estimated": "157.000",
"refunded": "0.000",
"reserved": "157.000",
"unit": "credit"
},
"queue_ms": 1,
"result": null,
"run_ms": 1,
"source": "api",
"started_at": "2026-11-02T08:00:00Z",
"status": "processing",
"version": 1
}
],
"next_cursor": ""
}Response 401
{
"error": {
"code": "invalid_credentials",
"message": "API key is missing, malformed, expired or revoked.",
"retryable": false,
"request_id": "9f2c41d07ab3e5c8"
}
}Response 402
{
"error": {
"code": "insufficient_balance",
"message": "Available credits cannot cover the hold.",
"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 409
{
"error": {
"code": "conflict",
"message": "The request conflicts with the current state of the resource.",
"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 429
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Check Retry-After.",
"retryable": true,
"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"
}
}