Skip to content

Tasks

Every model except text chat runs as a task. You create it, it runs, and it ends as completed or failed.

Create a task

POST /v1/tasks
FieldTypeDescription
modelstringRequired. A model ID, such as image/demo-1
inputobjectRequired. The model's input fields, see its input_schema
customerstringOptional. Your own ID for the end customer
webhook_urlstringOptional. We POST the task here when it finishes
curl https://api.tovano.ai/v1/tasks \
  -H "Authorization: Bearer $TOVANO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1182-hero" \
  -d '{
    "model": "video/demo-1",
    "input": { "prompt": "Slow push-in on a cup of coffee", "duration": 5 },
    "customer": "client-0482",
    "webhook_url": "https://example.com/hooks/tovano"
  }'

The task object

{
  "id": "tsk_9f2c41ab7d0e",
  "model": "video/demo-1",
  "status": "completed",
  "customer": "client-0482",
  "input": { "prompt": "Slow push-in on a cup of coffee", "duration": 5 },
  "output": { "video": { "url": "https://files.tovano.ai/..." } },
  "unit": "second",
  "units": 5,
  "charged_micro": 500000,
  "error": null,
  "created_at": "2026-11-13T09:30:00Z",
  "completed_at": "2026-11-13T09:30:41Z"
}

Status

StatusMeaning
queuedAccepted, waiting to start. The estimate is reserved.
runningA provider is working on it
completedDone. output is set and charged_micro is final
failedIt did not finish. error says why. Not charged.

List tasks

curl "https://api.tovano.ai/v1/tasks?status=failed&customer=client-0482" \
  -H "Authorization: Bearer $TOVANO_API_KEY"

Filter by status, model and customer.

Output files

Output URLs are signed and work for 24 hours. Files are deleted after 30 days. Download what you want to keep.

Agent jobs

An agent job such as agent/ad-kit-1 runs several models in a row. The task lists each step in steps, with its own model, units and charge. The task's charged_micro is the sum of its steps.

Questions? support@tovano.ai Machine-readable: openapi.json · llms.txt