Получить результат
Запрос результата может напрямую использовать 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://api.odirouter.ai/model/v1/queue/nano_banana_2/requests/mmsu_01hxyz.../response"}Завершенный ответ
Заголовок раздела «Завершенный ответ»После успешного завершения задачи endpoint результата возвращает envelope очередной задачи, включая request_id, status, model, output, usage и metadata уровня задачи. Все скачиваемые, отображаемые или разбираемые результаты находятся в массиве output[].content[]. Несколько URL результатов или фрагментов контента возвращаются несколькими записями по порядку.
{ "created_at": 1784032815291, "id": "mmsu_01hxyz...", "metadata": { "completed_at": 8.14733, "in_queue_at": 0, "upload_at": 0 }, "model": "image-model", "output": [ { "content": [ { "type": "image", "url": "https://example.com/image.jpg" } ] } ], "status": "completed", "usage": { "quantity": 1 }, "request_id": "mmsu_01hxyz..."}{ "created_at": 1784032815291, "id": "mmsu_01hxyz...", "metadata": { "completed_at": 8.14733, "in_queue_at": 0, "upload_at": 0 }, "model": "image-model", "output": [ { "content": [ { "type": "image", "url": "https://example.com/image-1.png" }, { "type": "image", "url": "https://example.com/image-2.png" } ] } ], "status": "completed", "usage": { "quantity": 2 }, "request_id": "mmsu_01hxyz..."}{ "created_at": 1784032815291, "id": "mmsu_01hxyz...", "metadata": { "completed_at": 20.5, "in_queue_at": 0, "upload_at": 0 }, "model": "video-model", "output": [ { "content": [ { "type": "video", "url": "https://example.com/video.mp4" } ] } ], "status": "completed", "usage": { "quantity": 1 }, "request_id": "mmsu_01hxyz..."}{ "created_at": 1784032815291, "id": "mmsu_01hxyz...", "metadata": { "completed_at": 6.2, "in_queue_at": 0, "upload_at": 0 }, "model": "audio-model", "output": [ { "content": [ { "type": "audio", "url": "https://example.com/audio.mp3" } ] } ], "status": "completed", "usage": { "quantity": 1 }, "request_id": "mmsu_01hxyz..."}{ "created_at": 1784032815291, "id": "mmsu_01hxyz...", "metadata": { "completed_at": 30.4, "in_queue_at": 0, "upload_at": 0 }, "model": "file-model", "output": [ { "content": [ { "type": "file", "url": "https://example.com/result.glb" } ] } ], "status": "completed", "usage": { "quantity": 1 }, "request_id": "mmsu_01hxyz..."}{ "created_at": 1784032815291, "id": "mmsu_01hxyz...", "metadata": { "completed_at": 2.5, "in_queue_at": 0, "upload_at": 0 }, "model": "text-model", "output": [ { "content": [ { "type": "text", "text": "Generated text, or a JSON string returned by a tool API." } ] } ], "status": "completed", "usage": { "quantity": 0 }, "request_id": "mmsu_01hxyz..."}{ "status": "COMPLETED", "request_id": "mmsu_01hxyz...", "response_url": "https://api.odirouter.ai/model/v1/queue/nano_banana_2/requests/mmsu_01hxyz.../response", "error": "Provider rejected request", "error_type": "REQUEST_INVALID"}Поле output
Заголовок раздела «Поле output»| Поле | Тип | Описание |
|---|---|---|
output | array | Массив вывода модели. Обычно следует читать output[0].content |
output[].content | array | Массив конкретных результатов. Несколько изображений, файлов или фрагментов контента возвращаются отдельными записями |
content[].type | string | Тип результата. Частые значения: image, video, audio, text, file; некоторые модели могут возвращать более конкретный тип формата файла |
content[].url | string | URL для скачивания или доступа к результату; у текстовых результатов поле может быть пустой строкой или отсутствовать |
content[].text | string | Текстовый результат; tool API также могут помещать в это поле разбираемую JSON-строку |
metadata | object | Дополнительная информация уровня задачи, например completed_at, in_queue_at, upload_at |
usage | object | Информация об использовании. Поля зависят от типа модели и режима биллинга |
error | string | Причина ошибки; возвращается при неуспешной задаче |
error_type | string | Тип ошибки; возвращается при неуспешной задаче |