Документация · Референс
Создать видео-задачу
POST/v1/videos
Sora-совместимое создание видео: принимает и application/json, и multipart/form-data (как client.videos.create() в SDK). seconds маппится на длительность, size ("1280x720") — на соотношение сторон и разрешение, input_reference (файл или URL) — на первый кадр. Генерация асинхронная: в ответ приходит video object со статусом queued, дальше статус опрашивается через GET /v1/videos/{id}. На входе проверяется баланс, а списание (по тарифу модели за секунду) — только после успешного завершения генерации.
Авторизация — заголовок Authorization: Bearer <API-ключ>, base URL — https://api.trackly.one/v1.
Тело запроса
Content-Type: multipart/form-data или application/json
Неизвестные поля не отбрасываются, а уезжают passthrough-ем в provider-specific параметры генерации — за их валидность отвечает клиент. Файл input_reference в multipart — до 20 МБ.
| Поле | Тип | Описание |
|---|---|---|
modelобязательное | string | Id видео-модели, например google/veo-3.1-fast |
promptобязательное | string | Текстовое описание ролика. Длина 1–5000 символов |
seconds | string | integer | Длительность в секундахПо умолчанию: "4" |
size | string | null | Размер кадра "WxH", например "1280x720". Маппится на соотношение сторон и разрешение (меньшая сторона ≥1080 → 1080p, иначе 720p) |
input_reference | file | url | ImageInput | null | Первый кадр: файл в multipart, URL-строка или ImageInput-объект в JSON |
generate_audio | boolean | null | Генерировать ли звуковую дорожку (для моделей со звуком) |
seed | integer | null | Сид для воспроизводимости. Диапазон 0–∞ |
negative_prompt | string | null | Чего в кадре быть не должно |
Схема ImageInput
Картинка, которую юзер передал во входе запроса.
Два варианта type: - url — внешний URL, провайдер (или мы) скачаем по запросу. - base64 — уже сырые байты в base64 (без data:image/...; префикса).
mime_type обязателен для base64 (нужен Gemini для inline_data), для url — опционально (можно определить из ответа).
| Поле | Тип | Описание |
|---|---|---|
dataобязательное | string | Длина 1–∞ символов |
mime_type | string | null | image/png, image/jpeg, image/webp |
typeобязательное | "url" | "base64" | — |
Схема VideoObject
Video job object в формате Sora API.
| Поле | Тип | Описание |
|---|---|---|
completed_at | integer | null | — |
created_atобязательное | integer | — |
error | VideoErrorObject | null | — |
expires_at | integer | null | — |
idобязательное | string | — |
modelобязательное | string | — |
object | "video" | По умолчанию: "video" |
progressобязательное | integer | — |
promptобязательное | string | — |
secondsобязательное | string | — |
size | string | null | — |
statusобязательное | "queued" | "in_progress" | "completed" | "failed" | — |
Схема VideoErrorObject
| Поле | Тип | Описание |
|---|---|---|
codeобязательное | string | — |
messageобязательное | string | — |
Ответы
| Код | Описание | Схема |
|---|---|---|
200 | Успешный ответ | VideoObject |