SSE-стрим событий задачи
Server-Sent Events (SSE) стрим для отслеживания статуса задачи в реальном времени. **Типы событий:** - `status` — изменение статуса задачи (payload: `TaskResponse`) - `completed` — задача завершена успешно - `failed` — задача завершена с ошибкой - `heartbeat` — keepalive (каждые 30 сек) - `timeout` — стрим закрыт по таймауту (5 мин) - `error` — ошибка стрима Стрим автоматически закрывается при: - Достижении terminal-статуса (`completed` / `failed`) - Таймауте 5 минут - Отключении клиента
Authorization
AuthorizationRequiredBearer <token>API ключ для аутентификации. Передавайте в заголовке Authorization: Bearer sk-...
In: header
Path Parameters
taskIdRequiredstringID задачи
"uuid"Response Body
Server-Sent Events поток. Формат: event: <тип>\ndata: <JSON>\n\n
responseRequiredstringServer-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 | Срок действия ключа истёк | Создайте новый ключ |
successRequiredbooleanerrorRequiredobjecterrorsarray<object>Детализация ошибок валидации (при code=VALIDATION_ERROR)
Задача не найдена. Убедитесь, что taskId корректный и принадлежит вашему аккаунту.
successRequiredbooleanerrorRequiredobjecterrorsarray<object>Детализация ошибок валидации (при code=VALIDATION_ERROR)
Превышен лимит запросов для вашего тарифа. Повторите запрос через время, указанное в заголовке Retry-After.
Лимиты зависят от тарифа (см. раздел Тарифы в личном кабинете).
successRequiredbooleanerrorRequiredobjecterrorsarray<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"
}
}