REST API
Список задач
GET /api/tasks возвращает ваши задачи, свежие сверху: статусы, тайминги и — для прерванных — ожидающие вызовы инструментов.
GET
/api/tasks
Список нужен там, где uuid задачи уже потерян: разобраться, что держит лимит после
429, подобрать хвосты после падения процесса, показать пользователю его очередь.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
status | string | array | Фильтр по статусу. Один (?status=interrupted), несколько через запятую (?status=pending,processing) или массивом (?status[]=…). Неизвестный статус — 422, а не молчаливая выдача всего подряд. |
page | integer | Страница, с 1. Дефолт 1. |
per_page | integer | Размер страницы, 1–100. Дефолт 25. |
Ответ
{
"data": [
{
"uuid": "550e8400-…",
"status": "interrupted",
"error": null,
"created_at": "2026-08-06T05:41:00.000000Z",
"completed_at": null,
"pending_tool_calls": [
{ "id": "call_abc", "name": "get_user_location", "arguments": { … } }
]
}
],
"meta": { "current_page": 1, "per_page": 25, "last_page": 3, "total": 64 }
}
pending_tool_calls приходит только у задач в статусе interrupted — по
одному запросу видно, на что каждая из них ждёт ответа.
turn в списке не отдаётся
В строке списка нет поля turn: это ход целиком, вместе с сообщениями модели, и на
странице из 25 задач ответ весил бы мегабайты. За результатом — GET /api/tasks/{uuid}.
Разобрать заваленный лимит
Штатный сценарий после 429: посмотреть, что висит, и либо ответить, либо отменить.
GET /api/tasks?status=interrupted # что держит лимит POST /api/tasks/{uuid}/tool-results # ответить на вызов… POST /api/tasks/{uuid}/cancel # …либо отказаться POST /api/tasks/cancel-interrupted # либо снести все прерванные разом
Подробности про прерванные задачи и отмену — Клиентские инструменты, про сам лимит — Ошибки и лимиты.
Доступ только к своим
Выдаются только задачи того же пользователя (sub в JWT). Завершённые, упавшие и
отменённые задачи хранятся 30 дней, затем удаляются — в списке их после этого не будет.