Получить результат
Запрос результата
Заголовок раздела «Запрос результата»Запрос результата может использовать response_url из ответа создания задачи или собирать путь из BASE_URL, endpoint и request_id.
curl -sS "${RESPONSE_URL}" \ "${COMMON_HEADERS[@]}"curl -sS "${BASE_URL}/v1/queue/${ENDPOINT}/requests/${REQUEST_ID}/response" \ "${COMMON_HEADERS[@]}"Незавершенная задача
Заголовок раздела «Незавершенная задача»Если задача еще не достигла терминального состояния, endpoint результата возвращает HTTP 202 с телом, совпадающим с запросом статуса:
{ "status": "IN_PROGRESS", "request_id": "mmsu_01hxyz...", "response_url": "https://odirouter.ai/model/v1/queue/nano_banana_2/requests/mmsu_01hxyz.../response"}Завершенная задача
Заголовок раздела «Завершенная задача»После успешного завершения endpoint результата возвращает стабильную структуру: request_id, outputs и metadata. Каждый скачиваемый или отображаемый результат помещается в массив outputs. Несколько URL результатов возвращаются как несколько записей по порядку.
Пример результата изображения
Заголовок раздела «Пример результата изображения»{ "request_id": "mmsu_01hxyz...", "outputs": [ { "type": "image", "url": "https://example.com/image.png", "content_type": "image/png", "file_name": "image.png", "width": 1024, "height": 1024 } ], "metadata": { "prompt": "a cinematic photo of a cat astronaut" }}{ "request_id": "mmsu_01hxyz...", "outputs": [ { "type": "image", "url": "https://example.com/image-1.png", "content_type": "image/png", "width": 1024, "height": 1024 }, { "type": "image", "url": "https://example.com/image-2.png", "content_type": "image/png", "width": 1024, "height": 1024 } ], "metadata": { "prompt": "generate two product variations" }}Пример результата аудио
Заголовок раздела «Пример результата аудио»{ "request_id": "mmsu_01hxyz...", "outputs": [ { "type": "audio", "url": "https://example.com/audio.mp3", "content_type": "audio/mpeg", "file_name": "audio.mp3", "duration": 10.5 } ], "metadata": { "text": "Здравствуйте, добро пожаловать в OdiRouter." }}Результат видео
Заголовок раздела «Результат видео»{ "request_id": "mmsu_01hxyz...", "outputs": [ { "type": "video", "url": "https://example.com/video.mp4", "content_type": "video/mp4", "file_name": "video.mp4", "file_size": 123456, "duration": 5 } ], "metadata": { "prompt": "camera slowly pushes in" }}Другие типы результата
Заголовок раздела «Другие типы результата»{ "request_id": "mmsu_01hxyz...", "outputs": [ { "type": "model3d", "url": "https://example.com/model.glb", "content_type": "model/gltf-binary", "file_name": "model.glb", "file_size": 123456 } ], "metadata": { "prompt": "a small stylized robot, game-ready asset" }}{ "request_id": "mmsu_01hxyz...", "outputs": [ { "type": "text", "text": "[Verse]\n晚风吹过海岸线\n我们把故事唱一遍" } ], "metadata": { "prompt": "写一首关于夏夜海边和朋友重逢的中文流行歌词" }}{ "status": "COMPLETED", "request_id": "mmsu_01hxyz...", "response_url": "https://odirouter.ai/model/v1/queue/nano_banana_2/requests/mmsu_01hxyz.../response", "error": "Provider rejected request", "error_type": "REQUEST_INVALID"}Поле outputs
Заголовок раздела «Поле outputs»| Поле | Тип | Описание |
|---|---|---|
type | string | Тип результата. Типовые значения: image, video, audio, model3d, text, file |
url | string | URL для скачивания или доступа к результату. Текстовые результаты могут не иметь этого поля |
text | string | Текстовый результат, например сгенерированный текст песни |
content_type | string | MIME-тип ресурса, например image/png или video/mp4 |
file_name | string | Имя файла, возвращается, когда платформа может его определить |
file_size | number | Размер файла в байтах, возвращается, когда платформа может его получить |
width / height | number | Ширина и высота изображения, возвращаются, когда платформа может их получить |
duration | number | Длительность аудио или видео в секундах, возвращается, когда платформа может ее получить |
metadata | object | Дополнительная информация по одному output; отсутствует, если дополнительной информации нет |
Правила отрисовки во frontend
Заголовок раздела «Правила отрисовки во frontend»Отрисовывайте изображения из returned URLs или base64-полей, используйте content_type для выбора плеера и не полагайтесь на расширение файла.