Перейти к содержимому

Создание задачи

Создание задачи

POST https://gptunnel.ru/api/v2/media/tasks

Единая точка создания задачи для всех медиа-моделей. В ответ приходит объект задачи с идентификатором и статусом — тот же объект отдаёт GET /media/tasks/:id и уходит в webhook.

Request Body

ПараметрТипОписание
model*stringИдентификатор модели из GET /media/models
promptstringТекстовый промпт. Обязательность зависит от модели (поле prompt в схеме модели: required, optional, none)
paramsobjectПараметры генерации согласно схеме params выбранной модели (разрешение, длительность и т.п.)
inputsobjectВходные файлы по ролям: объект вида { role: [url, ...] }. Ссылки должны быть публично доступны; поддерживаются также data:-URL
webhook_urlstringURL, на который мы пришлём объект задачи после завершения. См. раздел Webhooks
idempotency_keystringКлюч идемпотентности: повторный запрос с тем же ключом вернёт уже созданную задачу, а не создаст новую
waitbooleanЕсли true — дождаться готовности и вернуть финальный объект в ответе (короткое ожидание, см. ниже). По умолчанию false

Параметр wait

По умолчанию (wait: false) создание задачи возвращает объект сразу, в статусе queued или running, результат вы получаете через GET /media/tasks/:id или webhook.

Если передать wait: true, запрос будет держать соединение и вернёт задачу, как только она завершится (done или failed). Ожидание ограничено примерно 30 секундами: если за это время задача не завершилась, вернётся объект в текущем статусе (queued / running), и результат нужно получить обычным способом — опросом GET /media/tasks/:id или через webhook.

Ключ идемпотентности

Передавайте idempotency_key, чтобы повторные запросы (ретраи при таймауте сети) не создавали дубли задач и не списывали средства повторно. При повторе с тем же ключом вернётся ранее созданная задача.

Если повторить запрос с тем же idempotency_key, но с другими телом/параметрами, вернётся ошибка 409 (code: 23).

Пример запроса

Окно терминала
curl --request POST \
--url 'https://gptunnel.ru/api/v2/media/tasks' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"prompt": "a red fox running through snow, cinematic",
"params": { "resolution": "1080p", "duration": 5, "aspect_ratio": "16:9" },
"webhook_url": "https://your-service.example/webhooks/gptunnel",
"idempotency_key": "fox-snow-2026-07-23-001"
}'

Передача входных файлов

Файлы (изображения, видео, аудио) передаются в inputs по ролям, описанным в схеме модели (inputs[].role). Значение каждой роли — массив ссылок:

{
"model": "kling-v3",
"prompt": "animate this photo",
"inputs": { "first_frame": ["https://example.com/photo.jpg"] }
}

Ссылки должны быть публично доступны нашему серверу. Поддерживаются также data:-URL.

Пример ответа

{
"code": 0,
"id": "6a61e021a6e77553a989c41d",
"model": "kling-v3",
"status": "running",
"prompt": "a red fox running through snow, cinematic",
"params": { "resolution": "1080p", "duration": 5, "aspect_ratio": "16:9" },
"price": 210,
"result": [],
"webhook": {
"url": "https://your-service.example/webhooks/gptunnel",
"status": "pending"
},
"created_at": 1784799265
}

Сохраните id — по нему вы получите результат через GET /media/tasks/:id.