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/tasksReturns your tasks, newest first. This includes tasks you started from the Playground on the website.
Query parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Tasks per page, 1–100. Default 20; larger values are treated as 100. |
cursor | string | The next_cursor from the previous page. Omit for the first page. |
model | string | Only tasks for this model ID. |
status | string | Only 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.