Skip to content

Media API — rasmlar, videolar, musiqa ​

Matn modellari bilan bir xil sk-nr-… kaliti va balans orqali rasmlar, videolar va musiqa yarating. Yagona hisob, ishlatilganiga qarab to‘lov, obunalar va paketlarsiz.

  • Asosiy manzil: https://nordrouter.com (yoki xorijiy tarmoqlar uchun https://global-api.nordrouter.com).
  • Autentifikatsiya: Authorization: Bearer sk-nr-… sarlavhasi (yoki X-API-Key: sk-nr-…).
  • Format: JSON, generatsiya asinxron (vazifa yaratish → holatini tekshirish → faylni olish).

Endpointlar ​

MetodMaqsad
POST /media/generateGeneratsiya vazifasini yaratish
GET /media/job/:idVazifa holati va natijasi
POST /media/estimateKonfiguratsiya narxini oldindan bilish
GET /media/modelsModellar va parametrlarning mashina o‘qiy oladigan ro‘yxati
POST /media/uploadBoshlang‘ich mediafaylni yuklash
GET /media/file/:idTayyor fayl (result_url dagi havola)

So‘rovning hayot sikli ​

1. Vazifa yaratish

bash
curl https://nordrouter.com/media/generate \
  -H "Authorization: Bearer sk-nr-YOUR-KEY" -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. Holatni tekshirish (har 3–5 soniyada)

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. Faylni olish — result_url orqali. Havola nordrouter.com domeniga tegishli (brendingiz); fayllar 14 kun saqlanadi, keyin o‘chiriladi. Ularni oldindan yuklab oling yoki o‘z saqlash joyingizga ko‘chiring.

Boshlang‘ich mediafayllarni yuklash

image, image2, audio_url va video_url maydonlari to‘g‘ridan-to‘g‘ri ochiq havolani qabul qiladi. attachments maydoniga ega modellar POST /media/upload qaytargan obyektlar massivini qabul qiladi: { "data": "data:audio/mpeg;base64,…", "name": "track.mp3" } yuboring, so‘ng yuklovchining to‘liq javobini input.attachments ga uzating. Suno uchun buning o‘rniga input.source_url ga ochiq URL, mashup uchun esa input.source_urls ga ikkita URL uzatishingiz mumkin.

Hisob-kitob ​

To‘lovlar dollar balansingizdan (matn modellari bilan bir xil balans) muvaffaqiyatli generatsiya bajarilgandan keyingina, quyidagi jadvallarda ko‘rsatilgan aniq summa miqdorida yechiladi.

  • Zaxira → yakuniy summa. Vazifa yaratilganda taxminiy narx zaxiraga olinadi; vazifa tugagach, summa haqiqiy natija asosida qayta hisoblanadi, ortiqcha qismi balansga qaytariladi.
  • Video — soniyasiga hisoblanadi. Narx davomiylik va ruxsatga qarab oshadi; ovoz yoqilgan bo‘lsa, qimmatroq bo‘ladi. Jadvallarda standart sozlamalar uchun «dan boshlab» narxi ko‘rsatilgan, /sek belgisi esa soniyalik tarifni bildiradi.
  • Xatolik uchun haq olinmaydi. Vazifa failed holati bilan tugasa, zaxira to‘liq qaytariladi. Faqat muvaffaqiyatli generatsiyalar uchun to‘laysiz.
  • Aniq narxni oldindan bilish uchun POST /media/estimate ga ayni model + input ni yuboring; ishga tushirishdan oldin { "usd": … } qaytadi.
  • Balansni rubl bilan to‘ldirish mumkin (≈ $1 = 89–96 ₽); keyingi barcha hisob-kitoblar USD da amalga oshiriladi.

Modellar katalogi ​

Narx: video uchun soniyasiga stavka (/sek), yakuniy narx = stavka × davomiylik (ruxsat va audio narxga ta’sir qilishi mumkin); qolganlari uchun — standart sozlamalardagi bitta generatsiya narxi. Istalgan konfiguratsiyaning aniq narxini POST /media/estimate qaytaradi.

input maydonlari bundan ko‘p bo‘lishi mumkin — mashina o‘qiy oladigan ro‘yxatni (turlar, variantlar, standart qiymatlar, soniyalar diapazoni) har doim GET /media/models qaytaradi. Majburiy maydonlar * bilan belgilangan. Modelning istalgan qo‘shimcha maydonlarini (negative_prompt, seed, cfg_scale…) bevosita input ichida yuborish mumkin.

Parametrlarning avvalgi nomlari ​

2026-yil 19-oktabrda parametrlar yagona nom va qiymatlarga o‘tkazildi: snake_case, qiymatlar kichik harflarda (masalan, version: "v6-wild", resolution: "720p", audio: true). Hujjatlarning avvalgi versiyasidagi nom va qiymatlar hali ham qabul qilinadi — oldin yozilgan integratsiyalarni o‘zgartirish shart emas: vazifa, natija va narx o‘sha-o‘sha. GET /media/models, MCP va ushbu hujjatlarda faqat yangi nomlar ishlatiladi. So‘rovda bitta parametrning avvalgi va yangi nomi ikkalasi ham kelsa — yangi nom qo‘llanadi.

🖼 Tasvirlar ​

modelRejiminput parametrlariFaylNarx
image/nano-bananamatn→tasvirprompt *, 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-2matn→tasvirprompt *, 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-litematn→tasvirprompt *, aspect_ratio=auto|1:1|16:9|9:16|3:4|4:3, image=url, safety_filter=boolPNG$0.025
image/nano-banana-promatn→tasvirprompt *, 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-fastmatn→tasvirprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.025
image/imagen4matn→tasvirprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.050
image/imagen4-ultramatn→tasvirprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.075
image/gpt-image-1.5matn→tasvirprompt *, aspect_ratio=1:1|2:3|3:2, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-1.5-edittasvirni tahrirlashprompt *, image=url *, aspect_ratio=3:2|1:1|2:3, quality=medium|high, safety_filter=boolPNG$0.025
image/gpt-image-2matn→tasvirprompt *, 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-edittasvirni tahrirlashprompt *, 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-promatn→tasvirprompt *, 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-edittasvirni tahrirlashprompt *, 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-flexmatn→tasvirprompt *, 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-edittasvirni tahrirlashprompt *, 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-edittasvirni tahrirlashprompt *, 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-edittasvirni tahrirlashprompt *, 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-edittasvirni tahrirlashprompt *, 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-edittasvirni tahrirlashprompt *, 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-v3matn→tasvirprompt *, 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-edittasvirni tahrirlashprompt *, 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-charactertasvirni tahrirlashprompt *, image=url *, render_mode=fast|balanced|quality, style=auto|realistic|fiction, safety_filter=boolPNG$0.11
image/qwenmatn→tasvirprompt *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.031
image/qwen-edittasvirni tahrirlashprompt *, image=url *, aspect_ratio=1:1-hd|1:1|3:4|9:16|4:3|16:9, safety_filter=boolPNG$0.037
image/qwen-i2itasvirni tahrirlashprompt *, image=url *, safety_filter=boolPNG$0.031
image/qwen2-edittasvirni tahrirlashprompt *, image=url *, aspect_ratio=16:9|1:1|3:4|4:3|9:16|3:2|2:3, safety_filter=boolPNG$0.037
image/grokmatn→tasvirprompt *, aspect_ratio=1:1|2:3|3:2|16:9|9:16, pro=bool, safety_filter=boolPNG$0.025
image/grok-edittasvirni tahrirlashprompt *, image=url *, safety_filter=boolPNG$0.025
image/z-imagematn→tasvirprompt *, aspect_ratio=1:1|16:9|9:16|3:4|4:3, safety_filter=boolPNG$0.006
image/wan-2.7matn→tasvirprompt *, 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-promatn→tasvirprompt *, 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-promatn→tasvirprompt *JPG$0.013
image/gemini-3.1-flashmatn→tasvirprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.013
image/gemini-3-promatn→tasvirprompt *, aspect_ratio=1:1|16:9|9:16|4:3|3:4, resolution=1k|2k|4kPNG$0.031

🎬 Video ​

modelRejiminput parametrlariFaylNarx
video/veo-3.1-fastmatn→videoprompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.38
video/veo-3.1-qualitymatn→videoprompt *, aspect_ratio=16:9|9:16, image=urlMP4$1.56
video/veo-3.1-litematn→videoprompt *, aspect_ratio=16:9|9:16, image=urlMP4$0.19
video/gemini-omnimatn→videoprompt *, 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-flashmatn→videoprompt *, attachments=upload[]MP4$0.13
video/kling-3.0matn→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1, mode=standard|pro|4k, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.11/sek
video/kling-t2vmatn→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.11/sek
video/kling-turbo-i2vfoto→videoprompt *, image=url *, duration=3–15s, resolution=720p|1080p, safety_filter=boolMP4$0.11/sek
video/kling-2.6-t2vmatn→videoprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.6-i2vfoto→videoprompt *, image=url *, duration=5|10, audio=bool, safety_filter=boolMP4$0.34
video/kling-2.5-t2vmatn→videoprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$0.26
video/kling-2.5-i2vfoto→videoprompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.26
video/kling-i2vfoto→videoprompt *, image=url *, image2=url, duration=5|10, safety_filter=boolMP4$0.31
video/kling-2.1-standardfoto→videoprompt *, image=url *, duration=5|10, safety_filter=boolMP4$0.16
video/kling-2.1-master-t2vmatn→videoprompt *, duration=5|10, aspect_ratio=16:9|9:16|1:1, safety_filter=boolMP4$1.00
video/kling-2.1-master-i2vfoto→videoprompt *, image=url *, duration=5|10, safety_filter=boolMP4$1.00
video/kling-motionvideo→videoimage=url *, video_url *, prompt, mode=standard|proMP4$1.25
video/kling-avataravatar (foto+audio)image=url *, audio_url *, prompt *MP4$0.75
video/kling-avatar-proavatar (foto+audio)image=url *, audio_url *, prompt *MP4$1.50
video/wan-2.7-t2vmatn→videoprompt *, duration=2–15s, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/sek
video/wan-2.7-i2vfoto→videoprompt *, image=url *, image2=url, duration=2–15s, resolution=720p|1080p, audio_url, safety_filter=boolMP4$0.15/sek
video/wan-2.7-r2vfoto→videoprompt *, image=url *, duration=2–10s, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.15/sek
video/wan-2.7-editvideo→videoprompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/wan-t2vmatn→videoprompt *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-i2vfoto→videoprompt *, image=url *, duration=5|10|15, resolution=720p|1080p, safety_filter=boolMP4$0.44
video/wan-v2vvideo→videoprompt *, video_url *, duration=5|10, resolution=720p|1080pMP4$0.44
video/wan-2.5-t2vmatn→videoprompt *, duration=5|10 *, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.5-i2vfoto→videoprompt *, image=url *, duration=5|10 *, resolution=720p|1080p, safety_filter=boolMP4$0.38
video/wan-2.2-t2vmatn→videoprompt *, aspect_ratio=16:9|9:16, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-2.2-i2vfoto→videoprompt *, image=url *, resolution=480p|720p, safety_filter=boolMP4$0.50
video/wan-s2vavatar (foto+audio)prompt *, image=url *, audio_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-movevideo→videoimage=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/wan-animate-replacevideo→videoimage=url *, video_url *, resolution=480p|580p|720pMP4$0.38
video/seedance-2matn→videoprompt *, duration=4–15s, 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/sek
video/seedance-2-fastmatn→videoprompt *, duration=4–15s, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.21/sek
video/seedance-2-minimatn→videoprompt *, duration=4–15s, aspect_ratio=16:9|9:16|1:1, resolution=480p|720p, audio=bool, image=url, image2=url, safety_filter=boolMP4$0.13/sek
video/seedance-1.5-promatn→videoprompt *, duration=4–12s, aspect_ratio=16:9|9:16|1:1|4:3, resolution=480p|720p|1080p, audio=bool, image=url, safety_filter=boolMP4$0.025/sek
video/hailuo-02-t2vmatn→videoprompt *, duration=6|10, safety_filter=boolMP4$0.19
video/hailuo-02-t2v-promatn→videoprompt *, safety_filter=boolMP4$0.36
video/hailuo-02-i2vfoto→videoprompt *, image=url *, image2=url, duration=6|10, resolution=768p|512p, safety_filter=boolMP4$0.19
video/hailuo-02-i2v-profoto→videoprompt *, image=url *, image2=url, safety_filter=boolMP4$0.36
video/hailuo-2.3-i2vfoto→videoprompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.19
video/hailuo-2.3-i2v-profoto→videoprompt *, image=url *, duration=6|10, resolution=768p|1080p, safety_filter=boolMP4$0.28
video/happyhorse-1.1-t2vmatn→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.18/sek
video/happyhorse-1.1-i2vfoto→videoprompt, image=url *, duration=3–15s, resolution=720p|1080p, safety_filter=boolMP4$0.18/sek
video/happyhorse-1.1-r2vfoto→videoprompt *, image=url *, duration=3–15s, aspect_ratio=16:9|9:16|1:1, resolution=720p|1080p, safety_filter=boolMP4$0.18/sek
video/happyhorse-t2vmatn→videoprompt *, duration=3–15s, aspect_ratio=16:9|9:16|1:1|4:3|3:4, resolution=720p|1080p, safety_filter=boolMP4$0.30/sek
video/happyhorse-i2vfoto→videoprompt, image=url *, duration=3–15s, resolution=720p|1080p, safety_filter=boolMP4$0.30/sek
video/happyhorse-editvideo→videoprompt *, video_url *, resolution=720p|1080p, audio_source=auto|originalMP4$1.50
video/grok-t2vmatn→videoprompt *, duration=6–30s, aspect_ratio=16:9|9:16|1:1|3:2|2:3, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/sek
video/grok-i2vfoto→videoprompt *, image=url *, duration=6–30s, resolution=480p|720p, mode=normal|fun|spicy, safety_filter=boolMP4$0.019/sek
video/grok-1.5matn→videoprompt *, duration=1–15s, aspect_ratio=auto|16:9|9:16|1:1, resolution=480p|720p, image=url, safety_filter=boolMP4$0.019/sek
video/omnihumanavatar (foto+audio)image=url *, audio_url *, prompt, resolution=720p|1080pMP4$1.69
video/infinitalkavatar (foto+audio)prompt *, image=url *, audio_url *, resolution=480p|720pMP4$0.19
video/lipsyncvideo→videovideo_url *, audio_url *, mode=lite|basicMP4$0.50
video/topaz-upscalekattalashtirishvideo_url *, scale=2|4MP4$0.50

🎵 Musiqa ​

modelRejiminput parametrlariFaylNarx
music/suno-v5musiqatitle *, style *, version=v6|v6-wild|v6-mini, instrumental=bool, promptMP3$0.075
music/suno-covermusiqaprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360sMP3$0.075
music/suno-extend-uploadmusiqaprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, continue_from=1–120, instrumental=boolMP3$0.075
music/suno-add-vocalsmusiqaprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, style, title, exclude_styles, vocal=female|maleMP3$0.075
music/suno-add-instrumentalmusiqaprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, title, exclude_stylesMP3$0.075
music/suno-mashupmusiqaprompt *, attachments=upload[] *, version=v6|v6-wild|v6-mini, instrumental=bool, advanced=bool, title, style, duration=10–360sMP3$0.075
music/suno-soundsmusiqaprompt *, 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

🎙 Audio ​

modelRejiminput parametrlariFaylNarx
audio/gemini-3.1-flash-ttsovozlashtirishtext *, 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-ttsovozlashtirishtext *, 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-ttsovozlashtirishtext *, 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-multilingualovozlashtirishtext *, 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 modellar ​

Natija — GLB (ayrim modellarda OBJ, FBX, STL, USDZ, USD, 3MF formatlaridan tanlash mumkin) va oldindan ko‘rish tasviri: topshiriqda bir nechta fayl keladi, har birining o‘z kengaytmasi bor. Fayllar ro‘yxati results maydonida, har birida ext mavjud.

Narx faqat generatsiyadan keyin ma’lum bo‘ladi

3D uchun haqiqiy sarflangan resurslar bo‘yicha haq olinadi. Jadvaldagi yuqori chegarani vaqtincha ushlab qolamiz, haqiqiy narx ma’lum bo‘lgach, shu summani yechib, farqini qaytaramiz. Yakuniy qiymat har doim cost_usd ichida bo‘ladi.

modelRejiminput parametrlariFaylNarx
3d/tripo-textmatn→3Dprompt *, negative_prompt, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/tripo-imagefoto→3Dimage=url *, texture_detail=standard|high, geometry_detail=standard|high, pbr=bool, quad_mesh=boolGLB/FBX$0.31–0.79
3d/hunyuan-rapid-textmatn→3Dprompt *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB va boshqalar$0.43–0.71
3d/hunyuan-rapid-imagefoto→3Dimage=url *, file_format=glb|obj|fbx|stl|usdz, pbr=bool, extra_mesh=boolGLB va boshqalar$0.43–0.71
3d/hunyuan-pro-textmatn→3Dprompt *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/hunyuan-pro-imagefoto→3Dimage=url *, output=textured|mesh, polygons=auto|40000|100000|300000|800000|1500000, pbr=boolGLB$0.71–1.00
3d/seed3d-imagefoto→3Dimage=url *, mesh_detail=low|medium|high, file_format=glb|obj|usd|usdzGLB/OBJ/USD$0.50
3d/meshy-textmatn→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-imagefoto→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-imagerakurslardan→3Dimages=[url] * (1–4), texture_size=2k|4k|8k, ultra=bool, texture=bool, pbr=bool, texture_textGLB$0.94–1.26

Tekstura sifatida foto. 3d/meshy-* modellarida tekstura geometriyadan alohida beriladi: texture_photo maydonida tasvir yoki texture_text maydonida so‘zlar orqali.

Uzoq davom etadi. 3D generatsiyasi yarim daqiqadan bir necha daqiqagacha davom etadi — tasvir va qisqa videodan uzoqroq. Ulanishni ochiq saqlash shart emas: holat saqlanadi, vebhuklar mavjud.

🛠 Utilitalar ​

modelRejiminput parametrlariFaylNarx
image/topaz-upscalekattalashtirishimage=url *, scale=2|4|8PNG$0.063
image/recraft-remove-bgtahrirlashimage=url *PNG$0.006
image/recraft-upscalekattalashtirishimage=url *PNG$0.006

Rejimlar bo'yicha misollar ​

Matndan tasvir

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

Tasvirni tahrirlash

json
{ "model": "image/seedream-edit", "input": { "prompt": "fonni olib tashlash, neon qo'shish", "image": "https://…/photo.png" } }

Foto→video (birinchi/oxirgi kadr, davomiylik, ovoz)

json
{ "model": "video/wan-2.7-i2v", "input": {
    "prompt": "kameraning silliq yaqinlashuvi", "image": "https://…/first.png",
    "image2": "https://…/last.png", "duration": 8, "resolution": "1080p" } }

Musiqa

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

Ovozlashtirish

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "text": "Salom, dunyo", "voice": "Zephyr", "style": "empathetic",
    "pace": "natural", "accent": "neutral" } }

Ikki ovozli dialog — text maydoni o'rniga replikalar dialogue ichida, ovozlar voices ichida beriladi (1-ovoz — ro'yxatdagi birinchi ovoz):

json
{ "model": "audio/gemini-3.1-flash-tts", "input": {
    "voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
    "dialogue": [ { "speaker": 1, "text": "Xayrli kech!" }, { "speaker": 2, "text": "Eshitganimdan xursandman." } ] } }

Avatar (foto + audiodan gapiruvchi video)

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

Holatlar va xatolar ​

GET /media/job/:id → status maydoni:

HolatMa'nosi
processingJarayonda — holatni so'rashda davom eting
doneTayyor — fayl result_url ichida, yechilgan summa cost_usd ichida
failedXato — sababi error ichida, mablag' qaytarilgan

POST /media/generate javob kodlari: 400 — noma'lum model yoki majburiy maydon yetishmaydi; 401 — kalit yo'q yoki yaroqsiz; 402 — balansda mablag' yetarli emas; 403 — model hisobda mavjud emas.

Xato tanasi doim bir xil ko'rinishda bo'ladi — { "error": "текст для человека", "code": "машинный код" }. Kodlar: unknown_model, missing_param (+ param maydoni), invalid_input, invalid_attachment, prompt_too_long, input_too_long, no_auth, no_key, insufficient_balance, unpaid_shortfall, rate_limited, generation_failed, unavailable.

Narxni oldindan hisoblash ​

bash
curl https://nordrouter.com/media/estimate \
  -H "Authorization: Bearer sk-nr-YOUR-KEY" -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 }

Jadvallardagi parametrlar 19.10.2026 kuni xizmat katalogi bilan solishtirib tekshirilgan; modellar, parametrlar va narxlarning to'liq dolzarb ro'yxati — GET /media/models.