ЗадачиПо ID задачиSSE-стрим событий задачи

SSE-стрим событий задачи

Server-Sent Events (SSE) стрим для отслеживания статуса задачи в реальном времени. **Типы событий:** - `status` — изменение статуса задачи (payload: `TaskResponse`) - `completed` — задача завершена успешно - `failed` — задача завершена с ошибкой - `heartbeat` — keepalive (каждые 30 сек) - `timeout` — стрим закрыт по таймауту (5 мин) - `error` — ошибка стрима Стрим автоматически закрывается при: - Достижении terminal-статуса (`completed` / `failed`) - Таймауте 5 минут - Отключении клиента

GET
/tasks/{taskId}/events

Authorization

AuthorizationRequiredBearer <token>

API ключ для аутентификации. Передавайте в заголовке Authorization: Bearer sk-...

In: header

Path Parameters

taskIdRequiredstring

ID задачи

Format: "uuid"

Response Body

Server-Sent Events поток. Формат: event: <тип>\ndata: <JSON>\n\n

responseRequiredstring

Server-Sent Events поток. Формат: event: <тип>\ndata: <JSON>\n\n

Ошибка аутентификации.

КодПричинаЧто делать
MISSING_API_KEYЗаголовок Authorization отсутствуетДобавьте Authorization: Bearer sk-...
INVALID_AUTH_FORMATНеверный формат заголовкаИспользуйте формат Bearer sk-...
INVALID_API_KEYКлюч не найден в системеПроверьте ключ в личном кабинете
API_KEY_INACTIVEКлюч деактивированАктивируйте ключ в личном кабинете
API_KEY_EXPIREDСрок действия ключа истёкСоздайте новый ключ
successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

Задача не найдена. Убедитесь, что taskId корректный и принадлежит вашему аккаунту.

successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

Превышен лимит запросов для вашего тарифа. Повторите запрос через время, указанное в заголовке Retry-After.

Лимиты зависят от тарифа (см. раздел Тарифы в личном кабинете).

successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

curl -X GET "/api/v1/tasks/497f6eca-6276-4993-bfeb-53cbbbba6f08/events" \
  -H "Authorization: Bearer <token>"
fetch("/api/v1/tasks/497f6eca-6276-4993-bfeb-53cbbbba6f08/events", {
  headers: {
    "Authorization": "Bearer <token>"
  }
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {
  url := "/api/v1/tasks/497f6eca-6276-4993-bfeb-53cbbbba6f08/events"

  req, _ := http.NewRequest("GET", url, nil)
  req.Header.Add("Authorization", "Bearer <token>")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "/api/v1/tasks/497f6eca-6276-4993-bfeb-53cbbbba6f08/events"

response = requests.request("GET", url, headers = {
  "Authorization": "Bearer <token>"
})

print(response.text)
"event: status\ndata: {\"id\":\"uuid\",\"status\":\"processing\"}\n\nevent: completed\ndata: {\"id\":\"uuid\",\"status\":\"completed\",\"output\":{...}}\n\n"

{
  "success": false,
  "error": {
    "code": "MISSING_API_KEY",
    "message": "API key is required. Pass it in Authorization header: Bearer sk-..."
  }
}

{
  "success": false,
  "error": {
    "code": "TASK_NOT_FOUND",
    "message": "Task not found"
  }
}
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Try again in 12 seconds"
  }
}