Skip to content

Медіа API — зображення, відео, музика ​

Генеруйте зображення, відео та музику тим самим ключем sk-nr-… і з того самого балансу, що й текстові моделі. Єдиний рахунок, оплата за фактом, без підписок і пакетів.

  • База: https://nordrouter.com (або https://global-api.nordrouter.com для закордонних мереж).
  • Автентифікація: заголовок Authorization: Bearer sk-nr-… (або X-API-Key: sk-nr-…).
  • Формат: JSON, генерація асинхронна (створити завдання → опитувати → отримати файл).

Ендпоінти ​

МетодПризначення
POST /media/generateСтворити завдання генерації
GET /media/job/:idСтатус і результат завдання
POST /media/estimateДізнатися ціну конфігурації заздалегідь
GET /media/modelsМашиночитаний список моделей і параметрів
POST /media/uploadЗавантажити вхідний медіафайл
GET /media/file/:idГотовий файл (посилання з result_url)

Життєвий цикл запиту ​

1. Створити завдання

bash
curl https://nordrouter.com/media/generate \
  -H "Authorization: Bearer sk-nr-ВАШ-КЛЮЧ" -H "Content-Type: application/json" \
  -d '{ "model": "video/kling-2.6-i2v",
        "input": { "prompt": "плавний наїзд камери", "image": "https://…/photo.png", "duration": "5", "audio": true } }'
json
{ "id": "b1f2…", "model": "video/kling-2.6-i2v", "status": "processing", "poll": "https://nordrouter.com/media/job/b1f2…" }

2. Опитувати статус (раз на 3–5 сек)

bash
curl https://nordrouter.com/media/job/b1f2…
json
{ "id": "b1f2…", "status": "done", "result_url": "https://nordrouter.com/media/file/b1f2…", "cost_usd": 0.55, "error": null }

3. Отримати файл — за result_url. Посилання на nordrouter.com (ваш бренд); файли зберігаються 14 днів, потім видаляються — завантажуйте або переносіть до себе заздалегідь.

Завантаження вхідних медіафайлів

Поля image, image2, audio_url і video_url приймають пряме публічне посилання. Моделі з полем attachments приймають масив об’єктів, які повернув POST /media/upload: надішліть { "data": "data:audio/mpeg;base64,…", "name": "track.mp3" }, потім передайте всю відповідь завантажувача в input.attachments. Для Suno можна натомість передати публічний URL в input.source_url, а для mashup — два URL в input.source_urls.

Білінг ​

Кошти списуються з вашого доларового балансу (того самого, що й у текстових моделей) — за фактом виконаної генерації, рівно на суму з таблиць нижче.

  • Резерв → факт. Під час створення завдання резервується оцінена вартість; після завершення сума перераховується за фактичним результатом, надлишок повертається на баланс.
  • Відео — посекундно. Ціна зростає з тривалістю та роздільною здатністю; з увімкненим звуком — дорожче. У таблицях указано ціну «від» для типових налаштувань, позначка /сек — тариф за секунду.
  • Помилка не тарифікується. Якщо завдання завершилося зі статусом failed, резерв повертається повністю — платите лише за успішні генерації.
  • Точна ціна заздалегідь — POST /media/estimate з тими самими model + input поверне { "usd": … } до запуску.
  • Поповнення балансу — у рублях (≈ $1 = 89–96 ₽); далі все обчислюється в USD.

Каталог моделей ​

Ціна: для відео — ставка за секунду (/сек), підсумок = ставка × тривалість (роздільна здатність і звук можуть її змінювати); для решти — за одну генерацію з налаштуваннями за замовчуванням. Точну вартість будь-якої конфігурації повертає POST /media/estimate.

Полів у input може бути більше — машиночитаний список (типи, варіанти, значення за замовчуванням, діапазони секунд) завжди повертає GET /media/models. Обов’язкові позначено *. Будь-які додаткові поля моделі (negative_prompt, seed, cfg_scale…) можна надсилати прямо в input.

Попередні назви параметрів ​

19 жовтня 2026 параметри отримали єдині назви та значення: snake_case, значення малими літерами (наприклад, version: "v6-wild", resolution: "720p", audio: true). Назви та значення з попередньої версії документації й надалі приймаються — інтеграції, написані раніше, змінювати не потрібно: завдання, результат і ціна ті самі. У GET /media/models, MCP і цій документації — лише нові. Якщо в запиті надійшли і попередня, і нова назва одного параметра — діє нова.

🖼 Зображення ​

modelРежимПараметри inputФайлЦіна
image/nano-bananaтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3|3:2|2:3|21:9|auto, safety_filter=boolPNG$0.025
image/nano-banana-2текст→зображенняprompt *, aspect_ratio=auto|1:1|16:9|9:16|3:4|4:3|21:9, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.050
image/nano-banana-2-liteтекст→зображенняprompt *, aspect_ratio=auto|1:1|16:9|9:16|3:4|4:3, image=url, safety_filter=boolPNG$0.025
image/nano-banana-proтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3|21:9|auto, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.11
image/imagen4-fastтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.025
image/imagen4текст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.050
image/imagen4-ultraтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.075
image/gpt-image-1.5текст→зображенняprompt *, aspect_ratio=1:1|2:3|3:2, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-1.5-editредагування зображенняprompt *, image=url *, aspect_ratio=3:2|1:1|2:3, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-2текст→зображенняprompt *, aspect_ratio=1:1|3:2|2:3|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.006
image/gpt-image-2-editредагування зображенняprompt *, image=url *, aspect_ratio=auto|1:1|3:2|2:3|16:9|9:16, resolution=1k|2k|4k, safety_filter=boolPNG$0.037
image/flux2-proтекст→зображенняprompt *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3, resolution=1k|2k, safety_filter=boolPNG$0.031
image/flux2-pro-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3|auto, resolution=1k|2k, safety_filter=boolPNG$0.031
image/flux2-flexтекст→зображенняprompt *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3, resolution=1k|2k, safety_filter=boolPNG$0.087
image/flux2-flex-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|3:2|2:3|auto, resolution=1k|2k, safety_filter=boolPNG$0.087
image/seedream-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, resolution=1k|2k|4k, safety_filter=boolPNG$0.037
image/seedream-4.5-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|2:3|3:2, quality=basic|high, safety_filter=boolPNG$0.044
image/seedream-5-lite-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|2:3|3:2, quality=basic|high, safety_filter=boolPNG$0.037
image/seedream-5.0-pro-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1|4:3|3:4|16:9|9:16|2:3|3:2|21:9, quality=basic|high, safety_filter=boolPNG$0.044
image/ideogram-v3текст→зображенняprompt *, render_mode=fast|balanced|quality, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, style=auto|general|realistic|design, safety_filter=boolPNG$0.044
image/ideogram-editредагування зображенняprompt *, image=url *, render_mode=fast|balanced|quality, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.044
image/ideogram-characterредагування зображенняprompt *, image=url *, render_mode=fast|balanced|quality, style=auto|realistic|fiction, safety_filter=boolPNG$0.11
image/qwenтекст→зображенняprompt *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.031
image/qwen-editредагування зображенняprompt *, image=url *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.037
image/qwen-i2iредагування зображенняprompt *, image=url *, safety_filter=boolPNG$0.031
image/qwen2-editредагування зображенняprompt *, image=url *, aspect_ratio=16:9|1:1|3:4|4:3|9:16|3:2|2:3, safety_filter=boolPNG$0.037
image/grokтекст→зображенняprompt *, aspect_ratio=1:1|2:3|3:2|16:9|9:16, pro=bool, safety_filter=boolPNG$0.025
image/grok-editредагування зображенняprompt *, image=url *, safety_filter=boolPNG$0.025
image/z-imageтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.006
image/wan-2.7текст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4|21:9, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.031
image/wan-2.7-proтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4|21:9, resolution=1k|2k|4k, image=url, safety_filter=boolPNG$0.075
image/seedream-5.0-proтекст→зображенняprompt *JPG$0.013
image/gemini-3.1-flashтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.013
image/gemini-3-proтекст→зображенняprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.031

🎬 Відео ​

modelРежимПараметри inputФайлЦіна
video/veo-3.1-fastтекст→відеоprompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.38
video/veo-3.1-qualityтекст→відеоprompt *, aspect_ratio=16:9|9:16, image=urlMP4$1.56
video/veo-3.1-liteтекст→відеоprompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.19
video/gemini-omniтекст→відеоprompt *, duration=4|6|8|10 *, aspect_ratio=16:9|9:16, resolution=720p|1080p|4k, image=url, safety_filter=boolMP4$0.66
video/gemini-omni-flashтекст→відеоprompt *, attachments=upload[]MP4$0.13
video/kling-3.0текст→відеоprompt *, duration=3–15с, aspect_ratio=16:9|9:16|1:1, mode=standard|pro|4k, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.11/сек
video/kling-t2vтекст→відеоprompt *, duration=3–15с, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.11/сек
video/kling-turbo-i2vфото→відеоprompt *, image=url *, duration=3–15с, resolution=720p|1080p, safety_filter=boolMP4$0.11/сек
video/kling-2.6-t2vтекст→відеоprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.6-i2vфото→відеоprompt *, image=url *, duration=5|10, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.5-t2vтекст→відеоprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$0.26
video/kling-2.5-i2vфото→відеоprompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.26
video/kling-i2vфото→відеоprompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.31
video/kling-2.1-standardфото→відеоprompt *, image=url *, duration=5|10, safety_filter=boolMP4$0.16
video/kling-2.1-master-t2vтекст→відеоprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$1.00
video/kling-2.1-master-i2vфото→відеоprompt *, image=url *, duration=5|10, safety_filter=boolMP4$1.00
video/kling-motionвідео→відеоimage=url *, video_url *, prompt, mode=standard|proMP4$1.25
video/kling-avatarаватар (фото+аудіо)image=url *, audio_url *, prompt *MP4$0.75
video/kling-avatar-proаватар (фото+аудіо)image=url *, audio_url *, prompt *MP4$1.50
video/wan-2.7-t2vтекст→відеоprompt *, duration=2–15с, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/сек
video/wan-2.7-i2vфото→відеоprompt *, image=url *, image2=url, duration=2–15с, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/сек
video/wan-2.7-r2vфото→відеоprompt *, image=url *, duration=2–10с, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.15/сек
video/wan-2.7-editвідео→відеоprompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/wan-t2vтекст→відеоprompt *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-i2vфото→відеоprompt *, image=url *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-v2vвідео→відеоprompt *, video_url *, duration=5|10, resolution=720p|1080pMP4$0.44
video/wan-2.5-t2vтекст→відеоprompt *, duration=5|10 *, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.5-i2vфото→відеоprompt *, image=url *, duration=5|10 *, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.2-t2vтекст→відеоprompt *, aspect_ratio=16:9|9:16, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-2.2-i2vфото→відеоprompt *, image=url *, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-s2vаватар (фото+аудіо)prompt *, image=url *, audio_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-moveвідео→відеоimage=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-replaceвідео→відеоimage=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/seedance-2текст→відеоprompt *, duration=4–15с, aspect_ratio=16:9|9:16|1:1|4:3|21:9, resolution=480p|720p|1080p|4k, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.26/сек
video/seedance-2-fastтекст→відеоprompt *, duration=4–15с, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.21/сек
video/seedance-2-miniтекст→відеоprompt *, duration=4–15с, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.13/сек
video/seedance-1.5-proтекст→відеоprompt *, duration=4–12с, aspect_ratio=16:9|9:16|1:1|4:3, resolution=480p|720p|1080p, audio=bool, image=url, safety_filter=boolMP4$0.025/сек
video/hailuo-02-t2vтекст→відеоprompt *, duration=6|10, safety_filter=boolMP4$0.19
video/hailuo-02-t2v-proтекст→відеоprompt *, safety_filter=boolMP4$0.36
video/hailuo-02-i2vфото→відеоprompt *, image=url *, image2=url, duration=6|10, resolution=768p|512p, safety_filter=boolMP4$0.19
video/hailuo-02-i2v-proфото→відеоprompt *, image=url *, image2=url, safety_filter=boolMP4$0.36
video/hailuo-2.3-i2vфото→відеоprompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.19
video/hailuo-2.3-i2v-proфото→відеоprompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.28
video/happyhorse-1.1-t2vтекст→відеоprompt *, duration=3–15с, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.18/сек
video/happyhorse-1.1-i2vфото→відеоprompt, image=url *, duration=3–15с, resolution=720p|1080p, safety_filter=boolMP4$0.18/сек
video/happyhorse-1.1-r2vфото→відеоprompt *, image=url *, duration=3–15с, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.18/сек
video/happyhorse-t2vтекст→відеоprompt *, duration=3–15с, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.30/сек
video/happyhorse-i2vфото→відеоprompt, image=url *, duration=3–15с, resolution=720p|1080p, safety_filter=boolMP4$0.30/сек
video/happyhorse-editвідео→відеоprompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/grok-t2vтекст→відеоprompt *, duration=6–30с, aspect_ratio=16:9|9:16|1:1|3:2|2:3, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/сек
video/grok-i2vфото→відеоprompt *, image=url *, duration=6–30с, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/сек
video/grok-1.5текст→відеоprompt *, duration=1–15с, aspect_ratio=auto|16:9|9:16|1:1, resolution=480p|720p, image=url, safety_filter=boolMP4$0.019/сек
video/omnihumanаватар (фото+аудіо)image=url *, audio_url *, prompt, resolution=720p|1080pMP4$1.69
video/infinitalkаватар (фото+аудіо)prompt *, image=url *, audio_url *, resolution=480p|720pMP4$0.19
video/lipsyncвідео→відеоvideo_url *, audio_url *, mode=lite|basicMP4$0.50
video/topaz-upscaleапскейлvideo_url *, scale=2|4MP4$0.50

🎵 Музика ​

modelРежимПараметри inputФайлЦіна
music/suno-v5музикаtitle *, style *, version=v6|v6-wild|v6-mini, instrumental=bool, promptMP3$0.075
music/suno-coverмузикаprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360сMP3$0.075
music/suno-extend-uploadмузикаprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, continue_from=1–120, instrumental=boolMP3$0.075
music/suno-add-vocalsмузикаprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, style, title, exclude_styles, vocal=female|maleMP3$0.075
music/suno-add-instrumentalмузикаprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, title, exclude_stylesMP3$0.075
music/suno-mashupмузикаprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360сMP3$0.075
music/suno-soundsмузикаprompt *, version=v6|v6-wild|v6-mini, loop=bool, bpm=auto|60|80|100|120|140|160, tonality=auto|C|Dm|Em|F|G|Am|D#mMP3$0.016

🎙 Аудіо ​

modelРежимПараметри inputФайлЦіна
audio/gemini-3.1-flash-ttsозвученняtext *, voice=Achernar|Achird|Algenib|Algieba|Alnilam|Aoede|Autonoe|Callirrhoe|Charon|Despina|Enceladus|Erinome|Fenrir|Gacrux|Iapetus|Kore|Laomedeia|Leda|Orus|Puck|Pulcherrima|Rasalgethi|Sadachbia|Sadaltager|Schedar|Sulafat|Umbriel|Vindemiatrix|Zephyr|Zubenelgenubi, style=vocal-smile|newscaster|whisper|empathetic|promo-hype|deadpan, pace=natural|fast|slow|staccato, accent=neutral|american|american-valley|american-south|british|british-brixton|transatlantic|australian, voice_description, scene, temperature=0–2WAV$0.006
audio/gemini-2.5-pro-ttsозвученняtext *, voice=Achernar|Achird|Algenib|Algieba|Alnilam|Aoede|Autonoe|Callirrhoe|Charon|Despina|Enceladus|Erinome|Fenrir|Gacrux|Iapetus|Kore|Laomedeia|Leda|Orus|Puck|Pulcherrima|Rasalgethi|Sadachbia|Sadaltager|Schedar|Sulafat|Umbriel|Vindemiatrix|Zephyr|Zubenelgenubi, style=vocal-smile|newscaster|whisper|empathetic|promo-hype|deadpan, pace=natural|fast|slow|staccato, accent=neutral|american|american-valley|american-south|british|british-brixton|transatlantic|australian, voice_description, scene, temperature=0–2WAV$0.006
audio/elevenlabs-ttsозвученняtext *, voice=james|addison|adeline|allison|ana-rita|anika|arabella|aria|bella|benjamin|bradford|brian|britney|brittney|brock|burt|callum|cassidy|ed|edward|emma|eve|felix|finn|hank|hope-poetic|hope-bubbly|horatius|jamahal|jean|jeff|jessica-eloquent|jessica-chatty|john-doe|john-morgan|johnny-dynamite|johnny-kid|kuon|laura|leon|liam|lucy|lutz|mark-casual|mark-natural|marshal|monika|nathan|nathaniel|phil|rachel|rex-thunder|sam|spuds|sven|taksh|theodore|tiffany|tom|viking-bjorn|viraj-smooth|viraj-rich|wyatt|xavier, voice_id, speed=0.8|1.0|1.2MP3$0.037
audio/elevenlabs-multilingualозвученняtext *, voice=james|addison|adeline|allison|ana-rita|anika|arabella|aria|bella|benjamin|bradford|brian|britney|brittney|brock|burt|callum|cassidy|ed|edward|emma|eve|felix|finn|hank|hope-poetic|hope-bubbly|horatius|jamahal|jean|jeff|jessica-eloquent|jessica-chatty|john-doe|john-morgan|johnny-dynamite|johnny-kid|kuon|laura|leon|liam|lucy|lutz|mark-casual|mark-natural|marshal|monika|nathan|nathaniel|phil|rachel|rex-thunder|sam|spuds|sven|taksh|theodore|tiffany|tom|viking-bjorn|viraj-smooth|viraj-rich|wyatt|xavier, voice_id, speed=0.8|1.0|1.2MP3$0.075

🧊 3D-моделі ​

На виході — GLB (у частини моделей на вибір OBJ, FBX, STL, USDZ, USD, 3MF) плюс зображення для попереднього перегляду: у завданні надходить кілька файлів, кожен зі своїм розширенням. Список файлів — у полі results, кожен має ext.

Ціна відома лише після генерації

3D тарифікується за фактично витраченими ресурсами. Ми утримуємо верхню межу з таблиці, а коли стане відома справжня вартість — списуємо її та повертаємо різницю. Підсумок завжди в cost_usd.

modelРежимПараметри inputФайлЦіна
3d/tripo-textтекст→3Dprompt *, negative_prompt, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/tripo-imageфото→3Dimage=url *, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/hunyuan-rapid-textтекст→3Dprompt *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB та ін.$0.43–0.71
3d/hunyuan-rapid-imageфото→3Dimage=url *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB та ін.$0.43–0.71
3d/hunyuan-pro-textтекст→3Dprompt *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/hunyuan-pro-imageфото→3Dimage=url *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/seed3d-imageфото→3Dimage=url *, mesh_detail=low|medium|high, file_format=glb|obj|usd|usdzGLB/OBJ/USD$0.50
3d/meshy-textтекст→3Dprompt *, texture_size=2k|4k|8k, pose=none|a-pose|t-pose, ultra=bool, pbr=bool, texture_text, texture_photo=urlGLB$0.94–1.26
3d/meshy-imageфото→3Dimage=url *, texture_size=2k|4k|8k, ultra=bool, texture=bool, pbr=bool, texture_text, texture_photo=urlGLB$0.94–1.26
3d/meshy-multi-imageракурси→3Dimages=[url] * (1–4), texture_size=2k|4k|8k, ultra=bool, texture=bool, pbr=bool, texture_textGLB$0.94–1.26

Фото як текстура. У 3d/meshy-* текстура задається окремо від геометрії: зображенням у texture_photo або словами в texture_text.

Довго. Генерація 3D триває від пів хвилини до кількох хвилин — довше за зображення та короткий кліп. Тримати з’єднання не потрібно: статус зберігається, є вебхуки.

🛠 Утиліти ​

modelРежимПараметри inputФайлЦіна
image/topaz-upscaleапскейлimage=url *, scale=2|4|8PNG$0.063
image/recraft-remove-bgредагуванняimage=url *PNG$0.006
image/recraft-upscaleапскейлimage=url *PNG$0.006

Приклади за режимами ​

Зображення з тексту

json
{ "model": "image/flux2-pro", "input": { "prompt": "neon fox in snow", "aspect_ratio": "16:9", "resolution": "2k" } }

Редагування зображення

json
{ "model": "image/seedream-edit", "input": { "prompt": "прибрати фон, додати неон", "image": "https://…/photo.png" } }

Фото→відео (перший/останній кадр, тривалість, звук)

json
{ "model": "video/wan-2.7-i2v", "input": {
    "prompt": "плавний наїзд камери", "image": "https://…/first.png",
    "image2": "https://…/last.png", "duration": 8, "resolution": "1080p" } }

Музика

json
{ "model": "music/suno-v5", "input": { "title": "Northern Lights", "style": "epic orchestral", "instrumental": true, "version": "v6" } }

Озвучення

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "text": "Привіт, світе", "voice": "Zephyr", "style": "empathetic",
    "pace": "natural", "accent": "neutral" } }

Діалог двох голосів — замість поля text репліки в dialogue, голоси в voices (голос 1 — перший у списку):

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
    "dialogue": [ { "speaker": 1, "text": "Добрий вечір!" }, { "speaker": 2, "text": "Радий чути." } ] } }

Аватар (відео з мовленням із фото + аудіо)

json
{ "model": "video/omnihuman", "input": { "image": "https://…/face.png", "audio_url": "https://…/voice.mp3" } }

Статуси та помилки ​

GET /media/job/:id → поле status:

СтатусЗначення
processingУ роботі — продовжуйте опитування
doneГотово — файл у result_url, списання в cost_usd
failedПомилка — причина в error, кошти повернено

Коди відповіді POST /media/generate: 400 — невідома модель або бракує обов’язкового поля; 401 — ключ відсутній або некоректний; 402 — недостатньо коштів на балансі; 403 — модель недоступна для облікового запису.

Тіло помилки завжди одного вигляду — { "error": "текст для человека", "code": "машинный код" }. Коди: unknown_model, missing_param (+ поле param), invalid_input, invalid_attachment, prompt_too_long, input_too_long, no_auth, no_key, insufficient_balance, unpaid_shortfall, rate_limited, generation_failed, unavailable.

Попередня оцінка вартості ​

bash
curl https://nordrouter.com/media/estimate \
  -H "Authorization: Bearer sk-nr-ВАШ-КЛЮЧ" -H "Content-Type: application/json" \
  -d '{ "model": "video/kling-3.0", "input": { "duration": 10, "mode": "pro", "audio": true } }'
json
{ "model": "video/kling-3.0", "usd": 1.6875 }

Параметри в таблицях звірено з каталогом сервісу 19.10.2026; повний актуальний список моделей, параметрів і цін — GET /media/models.