List tasks

GET /v1/tasks: page through your tasks newest first with cursor pagination, filtered by model or status.

HTTP
GET https://genkiln.com/v1/tasks

Returns your tasks, newest first. This includes tasks you started from the Playground on the website.

Query parameters

ParameterTypeDescription
limitintegerTasks per page, 1–100. Default 20; larger values are treated as 100.
cursorstringThe next_cursor from the previous page. Omit for the first page.
modelstringOnly tasks for this model ID.
statusstringOnly tasks in this status: queued, processing, succeeded, failed or canceled.

An unknown status or a malformed cursor returns 400 invalid_request.

Response

JSON
{
  "object": "list",
  "data": [
    {
      "id": "task_01JC8ZQ0E6H2P4N7K9T3W5Y8VA",
      "object": "task",
      "model": "veo-3.1-fast",
      "status": "succeeded",
      "...": "..."
    }
  ],
  "has_more": true,
  "next_cursor": "MTc5MzY2OTUxOTAwMDp0YXNrXzAxSkM4WlEwRTZIMlA0TjdLOVQzVzVZOFZB"
}

Each entry in data is a full task object. When has_more is false, next_cursor is null. Treat the cursor as an opaque string.

Fetch every page

curl "https://genkiln.com/v1/tasks?limit=50&status=succeeded" \
  -H "Authorization: Bearer $GENKILN_API_KEY"

# next page
curl "https://genkiln.com/v1/tasks?limit=50&status=succeeded&cursor=MTc5MzY2..." \
  -H "Authorization: Bearer $GENKILN_API_KEY"

New tasks created while you page do not shift the pages you have not read yet: the cursor marks a position in time, and later pages only contain older tasks.