{"status":"ok","types":["image","text","video","voice","music"],"text_models":{"note":"type=text is synchronous: POST \/generate returns the answer in the same response, no polling. Billing is per actual tokens \u2014 a reserve is held by max_tokens and the unused part is refunded immediately, in the same call. Free dry run: POST \/generate\/estimate with type=text returns the reserve and the per-1M rates.","params":["prompt (required)","system","max_tokens","effort (low|medium|high|xhigh|max)","thinking (bool, off by default)"],"response":["text","usage {input, output, cache_read, cache_write}","cost","reserved","refunded","balance_after"],"models":{"claude-opus-5":{"label":"Claude Opus 5","rub_per_1m":{"in":1500,"out":7500,"cache_read":150},"min_charge_rub":2,"max_output_tokens":8192,"context_window":200000,"sample_cost_rub":3.75,"sample_note":"about 3.75\u20bd for a 1000-token prompt with a 300-token answer"},"gpt-5.6-sol":{"label":"GPT-5.6 Sol","rub_per_1m":{"in":1500,"out":9000,"cache_read":150},"min_charge_rub":2,"max_output_tokens":8192,"context_window":400000,"sample_cost_rub":4.2,"sample_note":"about 4.2\u20bd for a 1000-token prompt with a 300-token answer"},"gpt-5.6-terra":{"label":"GPT-5.6 Terra","rub_per_1m":{"in":600,"out":3600,"cache_read":60},"min_charge_rub":1,"max_output_tokens":8192,"context_window":400000,"sample_cost_rub":1.69,"sample_note":"about 1.69\u20bd for a 1000-token prompt with a 300-token answer"},"gpt-5.6-luna":{"label":"GPT-5.6 Luna","rub_per_1m":{"in":60,"out":360,"cache_read":6},"min_charge_rub":0.5,"max_output_tokens":8192,"context_window":400000,"sample_cost_rub":0.5,"sample_note":"about 0.5\u20bd for a 1000-token prompt with a 300-token answer"}}},"getting_started":{"base_url":"https:\/\/vibemarketolog.ru\/api\/agent","auth":"Send header: Authorization: Bearer <your_token>. Get a key at https:\/\/lk.vibemarketolog.ru\/agent.","verify_key":"GET \/api\/agent\/me","flow":["1. GET \/me \u2014 confirm the key works and check daily_spend_limit.","2. GET \/balance \u2014 check available rubles.","3. GET \/capabilities \u2014 discover models and params.","4. POST \/upload-media \u2014 upload media and get a stable URL.","5. POST \/generate\/estimate \u2014 dry-run without spending.","6. POST \/generate with strict=true \u2014 start generation.","7. Poll GET \/generation\/{id}\/status or pass callback_url."],"image_to_video":{"note":"image_input is for type=image only. Video models need their own source fields.","veo3_fast|veo3.1|veo3":"image_urls: [\"...\"] + generation_type: \"image-to-video\"","kling-3.0-std|pro":"image_urls: [\"...\"]","seedance-2|seedance-2-fast":"first_frame_url: \"...\"","grok-itv":"image_urls: [\"...\"] \u2014 use the BASE name: the price tier is chosen by duration (\u22646s is the cheapest). Fixed-tier keys grok-itv-10|20 charge their flat tier price regardless of duration.","motion-control-720p|1080p":"character_image_url + reference_video_url"},"golden_rules":["Always GET \/capabilities for live required\/optional params.","Use POST \/upload-media for stable URLs.","Use strict=true and\/or \/generate\/estimate to avoid paying for malformed requests."],"docs":"https:\/\/vibemarketolog.ru\/docs\/agent-api","quickstart":"https:\/\/vibemarketolog.ru\/docs\/agent-quickstart"},"models":{"image":{"z-image":{"price":1.2,"description":"Fast image generation","required":["prompt"],"optional":["aspect_ratio"],"limits":{"prompt_max":1000},"hint":"Prompt must not exceed 1000 characters \u2014 longer requests are rejected before any charge."},"nano-banana-pro-1k":{"price":14.4,"description":"Nano Banana Pro 1K","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"nano-banana-pro-2k":{"price":16.5,"description":"Nano Banana Pro 2K with text","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"nano-banana-pro-4k":{"price":23,"description":"Nano Banana Pro 4K","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"nano-banana-2-1k":{"price":15,"description":"Gemini 3.1 Flash Image 1K","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"nano-banana-2-2k":{"price":18,"description":"Gemini 3.1 Flash Image 2K","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"nano-banana-2-4k":{"price":25,"description":"Gemini 3.1 Flash Image 4K","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"nano-banana-2-lite":{"price":9,"description":"Gemini 3.1 Flash Lite Image \u2014 fast & cheap, txt2img + img2img by reference","required":["prompt"],"optional":["aspect_ratio","image_input"],"enums":{"aspect_ratio":["1:1","2:3","3:2","3:4","4:3","4:5","5:4","auto"]},"limits":{"image_input":10},"hint":"Aspect ratio: only 1:1\/2:3\/3:2\/3:4\/4:3\/4:5\/5:4\/auto (16:9, 9:16, 21:9 are auto-mapped to the nearest). image_input up to 10 for image-to-image.","preserves_input":false},"gpt-image-1.5":{"price":20,"description":"GPT image generation\/editing","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"gpt-image-2":{"price":19,"description":"GPT Image 2","required":["prompt"],"optional":["aspect_ratio"]},"gpt-image-2-edit":{"price":22,"description":"GPT Image 2 edit","required":["prompt","image_input"],"optional":["aspect_ratio"],"preserves_input":false},"seedream-4.5":{"price":15,"description":"SeeDream 4.5","required":["prompt"],"optional":["aspect_ratio","image_input"],"preserves_input":false},"seedream-5-lite":{"price":15,"description":"SeeDream 5 Lite","required":["prompt"],"optional":["aspect_ratio"]},"seedream-5-pro":{"price":40,"price_by_quality":{"basic":25,"high":40},"price_note":"price = \u0446\u0435\u043d\u0430 \u043f\u0440\u0438 quality \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e; \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u2014 \u0432 price_by_quality","description":"SeeDream 5 Pro (ByteDance) \u2014 \u0444\u043e\u0442\u043e\u0440\u0435\u0430\u043b\u0438\u0437\u043c \u0434\u043e 2K, \u0442\u043e\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c","required":["prompt"],"optional":["aspect_ratio","quality","output_format"],"enums":{"aspect_ratio":["1:1","4:3","3:4","16:9","9:16","2:3","3:2","21:9"],"quality":["basic","high"],"output_format":["png","jpeg"]},"hint":"quality: basic=1K, high=2K. output_format: png|jpeg. \u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0444\u043e\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 seedream-5-pro-edit."},"seedream-5-pro-edit":{"price":45,"price_by_quality":{"basic":28,"high":45},"price_note":"price = \u0446\u0435\u043d\u0430 \u043f\u0440\u0438 quality \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e; \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u2014 \u0432 price_by_quality","description":"SeeDream 5 Pro image-to-image \u2014 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e 1\u201310 \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u0430\u043c","required":["prompt","image_input"],"optional":["aspect_ratio","quality","output_format"],"enums":{"aspect_ratio":["1:1","4:3","3:4","16:9","9:16","2:3","3:2","21:9"],"quality":["basic","high"],"output_format":["png","jpeg"]},"limits":{"image_input":10},"hint":"image_input: 1\u201310 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 URL \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043e\u0432 (POST \/api\/agent\/upload-media). quality: basic=1K, high=2K.","preserves_input":false},"seedream-5-pro-layers":{"price":70,"price_by_quality":{"basic":7,"high":14},"price_note":"price = \u0446\u0435\u043d\u0430 \u043f\u0440\u0438 quality \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e; \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u2014 \u0432 price_by_quality","description":"SeeDream 5 Pro Layer Decomposition \u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0441\u043b\u043e\u0438 (\u0444\u043e\u043d, \u043f\u0435\u0440\u0435\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u043d, \u0442\u0435\u043a\u0441\u0442, \u043e\u0431\u044a\u0435\u043a\u0442\u044b); \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e PNG: \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 + \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c","required":["image_input"],"optional":["prompt","layers","quality","output_format"],"enums":{"quality":["basic","high"],"output_format":["png","jpeg"]},"limits":{"image_input":1,"layers_min":2,"layers_max":6},"hint":"image_input: \u0440\u043e\u0432\u043d\u043e 1 URL \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. layers: \u0447\u0438\u0441\u043b\u043e \u0441\u043b\u043e\u0451\u0432 2\u20136 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 4). \u0426\u0435\u043d\u0430 = (layers+1) \u00d7 \u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0430 \u0444\u0430\u0439\u043b (quality basic=1K \u2014 7 \u20bd\/\u0444\u0430\u0439\u043b, high=2K \u2014 14 \u20bd\/\u0444\u0430\u0439\u043b). prompt \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u2014 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430, \u0447\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u0441\u043b\u043e\u0438. \u0424\u0430\u0439\u043b\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430: result_urls \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.","preserves_input":true},"grok-image":{"price":18,"description":"Grok text-to-image","required":["prompt"],"optional":["aspect_ratio"]},"grok-image-2":{"price":3,"description":"Grok Imagine Image 2.0 (xAI) \u2014 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043d\u0443\u043b\u044f, \u0441\u0430\u043c\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430","required":["prompt"],"optional":["aspect_ratio"],"enums":{"aspect_ratio":["1:1","2:3","3:2","16:9","9:16"]},"limits":{"prompt_max":5000},"hint":"aspect_ratio: \u0442\u043e\u043b\u044c\u043a\u043e 1:1\/2:3\/3:2\/16:9\/9:16 (4:3, 3:4, 4:5, 5:4, 21:9 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c\u0443). \u0414\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c\u044e grok-image-2-edit, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 parent_task_id \u0438\u0437 GET \/generation\/{id}\/status."},"grok-image-2-edit":{"price":3,"description":"Grok Imagine Image 2.0 \u2014 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0432\u043e\u0435\u0439 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e","required":["prompt","parent_task_id"],"optional":[],"limits":{"prompt_max":5000},"hint":"parent_task_id = task_id \u0412\u0410\u0428\u0415\u0419 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 grok-image-2 (\u0438\u043b\u0438 \u0435\u0451 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438). \u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0444\u043e\u0442\u043e \u0441\u044e\u0434\u0430 \u043f\u043e\u0434\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f: \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u043f\u0440\u0430\u0432\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0427\u0443\u0436\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0439 task_id \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f.","preserves_input":false},"qwen-image-3":{"price":7,"description":"Qwen Image 3.0 (Alibaba) \u2014 \u0444\u043e\u0442\u043e\u0440\u0435\u0430\u043b\u0438\u0437\u043c \u0438 \u0442\u043e\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, 1K\/2K \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043d\u0435","required":["prompt"],"optional":["aspect_ratio","resolution","output_format","negative_prompt","seed","prompt_extend"],"enums":{"aspect_ratio":["1:1","3:2","2:3","4:3","3:4","16:9","9:16","21:9"],"resolution":["1K","2K"],"output_format":["png","jpeg"]},"limits":{"prompt_max":800,"negative_prompt_max":5000},"hint":"prompt \u2264 800 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u0434\u043b\u0438\u043d\u043d\u0435\u0435 \u2014 \u043e\u0442\u043a\u0430\u0437 \u0434\u043e \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f). resolution 1K|2K \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043d\u0435, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 2K. prompt_extend=true (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0430\u043c\u0430 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435. seed: 0..2147483647. \u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0444\u043e\u0442\u043e \u2014 qwen-image-3-edit, \u0434\u043b\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u2014 qwen-image-3-pro."},"qwen-image-3-edit":{"price":7,"description":"Qwen Image 3.0 image-to-image \u2014 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e 1\u201310 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c","required":["prompt","image_input"],"optional":["aspect_ratio","resolution","output_format","negative_prompt","seed","prompt_extend"],"enums":{"aspect_ratio":["1:1","3:2","2:3","4:3","3:4","16:9","9:16","21:9"],"resolution":["1K","2K"],"output_format":["png","jpeg"]},"limits":{"image_input":10,"prompt_max":800,"negative_prompt_max":5000},"hint":"image_input: 1\u201310 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 URL (POST \/api\/agent\/upload-media). prompt \u2264 800 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. resolution 1K|2K \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043d\u0435.","preserves_input":false},"qwen-image-3-pro":{"price":14,"description":"Qwen Image 3.0 Pro \u2014 \u0441\u0442\u0430\u0440\u0448\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f: \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u044b, \u0432\u0451\u0440\u0441\u0442\u043a\u0430 \u0438 \u043d\u0430\u0434\u043f\u0438\u0441\u0438","required":["prompt"],"optional":["aspect_ratio","resolution","output_format","negative_prompt","seed","prompt_extend"],"enums":{"aspect_ratio":["1:1","3:2","2:3","4:3","3:4","16:9","9:16","21:9"],"resolution":["1K","2K"],"output_format":["png","jpeg"]},"limits":{"prompt_max":800,"negative_prompt_max":5000},"hint":"\u0422\u043e \u0436\u0435, \u0447\u0442\u043e qwen-image-3, \u043d\u043e \u0441\u0442\u0430\u0440\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430. prompt \u2264 800 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, resolution 1K|2K \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043d\u0435."},"qwen-image-3-pro-edit":{"price":14,"description":"Qwen Image 3.0 Pro image-to-image \u2014 \u0442\u043e\u0447\u043d\u043e\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e 1\u201310 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c","required":["prompt","image_input"],"optional":["aspect_ratio","resolution","output_format","negative_prompt","seed","prompt_extend"],"enums":{"aspect_ratio":["1:1","3:2","2:3","4:3","3:4","16:9","9:16","21:9"],"resolution":["1K","2K"],"output_format":["png","jpeg"]},"limits":{"image_input":10,"prompt_max":800,"negative_prompt_max":5000},"hint":"image_input: 1\u201310 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 URL (POST \/api\/agent\/upload-media). prompt \u2264 800 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.","preserves_input":false},"gemini-omni-character":{"price":49,"description":"Gemini Omni \u2014 \u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0438\u0437 1 \u0444\u043e\u0442\u043e + \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430; characterId \u0438\u0437 result_object \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 gemini-omni-video \u2192 character_ids.","required":["prompt","image_urls"],"optional":["descriptions","character_name","audio_ids"],"limits":{"image_urls":1,"prompt_max":20000},"hint":"prompt = \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0438\u043b\u0438 \u043f\u043e\u043b\u0435 descriptions. image_urls: \u0440\u043e\u0432\u043d\u043e 1 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 URL, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 POST \/api\/agent\/upload-media. characterId \u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0437 GET \/generation\/{id}\/status.","preserves_input":false}},"video":{"gemini-omni-video":{"price":149,"description":"Google Gemini Omni (\u0434\u0432\u0438\u0436\u043e\u043a Veo 3) \u2014 text\/image\/video-to-video \u0441 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c \u0437\u0432\u0443\u043a\u043e\u043c. \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0433\u043e\u043b\u043e\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.","required":["prompt"],"optional":["image_urls","video_list","character_ids","duration","aspect_ratio","resolution","seed","lang","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["16:9","9:16"],"resolution":["720p","1080p","4k"],"duration":[4,6,8,10],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"image_urls":7,"video_list":1,"character_ids":3,"prompt_max":20000,"voiceover_chars_per_second":13.5},"hint":"duration = 4|6|8|10. image_urls \u0434\u043e 7 \u2192 image-to-video. video_list: [{url,start,ends}] \u2192 video-to-video, 1 \u043a\u043b\u0438\u043f, \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u226410\u0441. \u041d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 audio_ids \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 video: \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 gemini-omni-character \u0441 audio_ids \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 character_ids.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"grok-ttv":{"price":36,"tier_prices":{"grok-ttv-10":196,"grok-ttv-20":316},"price_note":"price = \u0446\u0435\u043d\u0430 \u043f\u0440\u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445; \u0438\u0442\u043e\u0433 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 duration\/\u0442\u0438\u0440\u0430 \u2014 \u0441\u0432\u0435\u0440\u044f\u0439\u0442\u0435\u0441\u044c \u0441 tier_prices \u0438\u043b\u0438 POST \/generate\/estimate","description":"Grok Imagine 1.5 Text-to-Video (1-15s)","tiers":["grok-ttv-10","grok-ttv-20"],"tier_bounds":{"grok-ttv":"1-6s","grok-ttv-10":"7-10s","grok-ttv-20":"11-15s"},"required":["prompt"],"optional":["duration","aspect_ratio","resolution","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["1:1","16:9","9:16","3:2","2:3","auto"],"resolution":["480p","720p"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"1-15s","prompt_max":4096,"voiceover_chars_per_second":13.5},"hint":"Call grok-ttv: the price tier is picked by duration automatically (see tier_bounds), you pay for your own duration. Use POST \/generate\/estimate for the exact amount before charging. Numeric-suffix names (grok-ttv-10 etc.) are legacy compatibility keys with a flat tier price and are not for new integrations.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"grok-itv":{"price":36,"tier_prices":{"grok-itv-10":196,"grok-itv-20":316},"price_note":"price = \u0446\u0435\u043d\u0430 \u043f\u0440\u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445; \u0438\u0442\u043e\u0433 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 duration\/\u0442\u0438\u0440\u0430 \u2014 \u0441\u0432\u0435\u0440\u044f\u0439\u0442\u0435\u0441\u044c \u0441 tier_prices \u0438\u043b\u0438 POST \/generate\/estimate","description":"Grok Imagine 1.5 Image-to-Video (1-15s)","tiers":["grok-itv-10","grok-itv-20"],"tier_bounds":{"grok-itv":"1-6s","grok-itv-10":"7-10s","grok-itv-20":"11-15s"},"required":["prompt","image_urls"],"optional":["duration","aspect_ratio","resolution","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["1:1","16:9","9:16","3:2","2:3","auto"],"resolution":["480p","720p"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"image_urls":1,"duration":"1-15s","prompt_max":4096,"voiceover_chars_per_second":13.5},"hint":"image_urls: exactly 1 stable URL. Use POST \/api\/agent\/upload-media. Call grok-itv: the price tier is picked by duration automatically (see tier_bounds), you pay for your own duration. Use POST \/generate\/estimate for the exact amount before charging. Numeric-suffix names (grok-itv-10 etc.) are legacy compatibility keys with a flat tier price and are not for new integrations.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"grok-extend":{"price":144,"description":"Extend an existing Grok video","required":["prompt","ref_task_id"],"optional":["extend_at","extend_times","ref_index"]},"grok-upscale":{"price":72,"description":"Upscale an existing Grok video","required":["ref_task_id"]},"veo3_fast":{"price":120,"description":"Veo 3.1 Fast","required":["prompt"],"optional":["aspect_ratio","duration","resolution","image_urls","generation_type","generate_audio","negative_prompt","seed","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"resolution":["720p","1080p"],"generation_type":["text-to-video","image-to-video"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"voiceover_chars_per_second":13.5},"voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"veo3.1":{"price":120,"description":"Veo 3.1 quality","required":["prompt"],"optional":["aspect_ratio","duration","resolution","image_urls","generation_type","generate_audio","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"voiceover_chars_per_second":13.5},"voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"veo3":{"price":570,"description":"Veo 3 legacy quality","required":["prompt"],"optional":["aspect_ratio","duration","resolution","image_urls","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"voiceover_chars_per_second":13.5},"voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"kling-3.0-std":{"price":250,"description":"Kling 3.0 Standard","required":["prompt"],"optional":["aspect_ratio","image_urls","duration","sound","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"voiceover_chars_per_second":13.5},"voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"kling-3.0-pro":{"price":549,"description":"Kling 3.0 Pro","required":["prompt"],"optional":["aspect_ratio","image_urls","duration","sound","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"voiceover_chars_per_second":13.5},"voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"minimax-h3":{"price":222,"price_from":148,"price_note":"price = \u0446\u0435\u043d\u0430 \u043f\u0440\u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 (\u0442\u043e, \u0447\u0442\u043e \u0441\u043f\u0438\u0448\u0435\u0442 \/generate \u0431\u0435\u0437 \u0434\u043e\u043f. \u043f\u043e\u043b\u0435\u0439); price_from = \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043d\u0430 (\u0435\u0451 \u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \/prices). \u0422\u043e\u0447\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u2014 POST \/generate\/estimate.","description":"MiniMax H3 (Hailuo 03) \u2014 2K video with built-in stereo audio, 4-15s. Three modes in one model: text-to-video, image-to-video (opening\/closing frames) and reference-to-video (image + video + audio references).","required":["prompt"],"optional":["h3_mode","duration","aspect_ratio","reference_image_urls","reference_video_urls","reference_audio_urls","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"h3_mode":["text","image","reference"],"aspect_ratio":["21:9","16:9","4:3","1:1","3:4","9:16","adaptive"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"4-15s","reference_image_urls":9,"reference_video_urls":3,"reference_audio_urls":3,"prompt_max":7000,"voiceover_chars_per_second":13.5},"hint":"Per-second pricing: the provider also bills the DURATION OF THE INPUT VIDEO on top of the generated clip, and every image beyond the first five. h3_mode=image needs reference_image_urls (1st = opening frame, 2nd = closing frame) and ignores aspect_ratio. h3_mode=reference needs at least one image or video; audio alone is rejected upstream. aspect_ratio=adaptive works only in reference mode. Use POST \/api\/agent\/upload-media for reference files.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"pixverse-v6":{"price":40,"price_from":12,"price_note":"per-second billing: price = duration \u00d7 rate for the chosen resolution. Exact amount: POST \/generate\/estimate.","per_second_by_resolution":{"360p":4,"540p":6,"720p":8,"1080p":15},"description":"PixVerse V6 \u2014 cheapest per-second video with built-in audio, 3-15s, up to 1080p. Five modes in one model: text-to-video, image-to-video, transition between two frames, reference-to-video (1-7 tagged references) and extend of an existing clip.","required":["prompt"],"optional":["pv_mode","duration","resolution","aspect_ratio","generate_audio","image_urls","first_frame_image_url","last_frame_image_url","image_references","video_url","parent_task_id","multi_clip","pv_seed","template_id","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"pv_mode":["text","image","transition","reference","extend"],"resolution":["360p","540p","720p","1080p"],"aspect_ratio":["16:9","4:3","1:1","3:4","9:16","2:3","3:2","21:9"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"3-15s","image_urls":1,"image_references":7,"prompt_max":5000,"voiceover_chars_per_second":13.5},"hint":"Per-second pricing by resolution AND audio: 360p from 4 \u20bd\/s without audio, 1080p with audio 19 \u20bd\/s \u2014 the cheapest video model in the catalog. pv_mode is derived from the payload when omitted. image mode takes exactly ONE image. transition needs both first_frame_image_url and last_frame_image_url. reference expects image_references (plain URLs are auto-named Image1\u2026Image7 \u2014 refer to them in the prompt as @Image1). extend takes either video_url or parent_task_id of YOUR OWN finished pixverse-v6 generation, bills only the requested seconds and returns the source clip plus the continuation. aspect_ratio applies to text and reference modes only. Use POST \/api\/agent\/upload-media for input files.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"seedance-2-5":{"price":180,"price_from":80,"price_note":"per-second billing: WITHOUT a video reference price = duration \u00d7 per_second_by_resolution. WITH reference_video_urls the provider switches formula: price = (input seconds + duration) \u00d7 per_second_by_resolution_with_video_input \u2014 the lower rate covers the source footage too, so a long source can cost MORE than no reference at all. Exact amount: POST \/generate\/estimate.","per_second_by_resolution":{"480p":20,"720p":45,"1080p":82},"per_second_by_resolution_with_video_input":{"480p":13,"720p":28,"1080p":49},"description":"ByteDance Seedance 2.5 \u2014 flagship Seedance tier, per-second pricing, up to 30s and 1080p, native audio, image\/video\/audio references.","required":["prompt"],"optional":["aspect_ratio","duration","resolution","generate_audio","web_search","output_format","reference_image_urls","reference_video_urls","reference_audio_urls","first_frame_url","last_frame_url","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["16:9","4:3","1:1","3:4","9:16","21:9","adaptive"],"resolution":["480p","720p","1080p"],"output_format":["mp4","mov"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"4-30s","reference_image_urls":9,"reference_video_urls":3,"reference_audio_urls":3,"reference_video_seconds_total":30,"prompt_max":30000,"voiceover_chars_per_second":13.5,"mutually_exclusive":[["first_frame_url","last_frame_url"],["reference_image_urls"]]},"hint":"RUSSIAN VOICE-OVER: pass voiceover_text (Russian script) and the model will be rendered mute while OUR TTS reads the line and mixes it over the ambience \u2014 the model's own Russian pronunciation is unreliable. Voice: voiceover_voice (Leda\/Kore\/Sulafat female, Puck\/Charon\/Orus male). The line must fit the clip at 13.5 characters per second (10s = 135 chars) or the request is rejected before charging. Voice-over is billed as a separate layer: 13 \u20bd per started 1000 characters; if synthesis fails the layer is refunded and the mute clip is delivered. Per-second pricing by resolution: 480p 20 \u20bd\/s, 720p 45 \u20bd\/s, 1080p 82 \u20bd\/s. WITH a video reference the provider switches formula \u2014 a lower rate (13 \/ 28 \/ 49 \u20bd\/s) charged for INPUT + OUTPUT seconds, so a long source makes a short clip more expensive; reference videos must be uploaded via POST \/api\/agent\/upload-media (we measure their duration ourselves) and total at most 30s. Starting frame and reference images are different scenarios \u2014 send only one of them. web_search works only without any source material and is dropped otherwise. Exact amount: POST \/generate\/estimate.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"seedance-2-fast":{"price":708,"description":"ByteDance Seedance 2.0 Fast \u2014 RETIRED 17-08-2026, kept for existing integrations; use seedance-2-5 instead.","required":["prompt"],"optional":["aspect_ratio","duration","resolution","generate_audio","web_search","reference_image_urls","reference_video_urls","reference_audio_urls","first_frame_url","last_frame_url","return_last_frame","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["16:9","4:3","1:1","3:4","9:16","21:9"],"resolution":["480p","720p"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"4-15s","reference_image_urls":9,"reference_video_urls":3,"reference_audio_urls":3,"prompt_max":20000,"mutually_exclusive":[["first_frame_url","last_frame_url"],["reference_image_urls"]],"voiceover_chars_per_second":13.5},"hint":"Starting frame and reference images are different scenarios \u2014 send only one of them. web_search works only without any source material and is dropped otherwise.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"seedance-2":{"price":1188,"description":"ByteDance Seedance 2.0 Quality \u2014 RETIRED 17-08-2026, kept for existing integrations; use seedance-2-5 instead.","required":["prompt"],"optional":["aspect_ratio","duration","resolution","generate_audio","web_search","reference_image_urls","reference_video_urls","reference_audio_urls","first_frame_url","last_frame_url","return_last_frame","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["16:9","4:3","1:1","3:4","9:16","21:9"],"resolution":["480p","720p","1080p"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"4-15s","reference_image_urls":9,"reference_video_urls":3,"reference_audio_urls":3,"prompt_max":20000,"mutually_exclusive":[["first_frame_url","last_frame_url"],["reference_image_urls"]],"voiceover_chars_per_second":13.5},"hint":"Starting frame and reference images are different scenarios \u2014 send only one of them. web_search works only without any source material and is dropped otherwise.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"seedance-2-mini":{"price":56,"per_second_by_resolution":{"480p":14,"720p":31},"price_note":"per-second billing: price = duration \u00d7 rate for the chosen resolution. Exact amount: POST \/generate\/estimate.","description":"ByteDance Seedance 2 Mini \u2014 budget per-second tier, full features (references, audio, web search)","required":["prompt"],"optional":["aspect_ratio","duration","resolution","generate_audio","web_search","reference_image_urls","reference_video_urls","reference_audio_urls","first_frame_url","last_frame_url","voiceover_text","voiceover_voice","voiceover_model","voiceover_mode","voiceover_cloned_voice_id"],"enums":{"aspect_ratio":["16:9","4:3","1:1","3:4","9:16","21:9"],"resolution":["480p","720p"],"voiceover_mode":["voice","lips"],"voiceover_voice":["Leda","Kore","Sulafat","Puck","Charon","Orus"],"voiceover_model":["gemini-flash-tts","gemini-pro-tts","my-voice"]},"limits":{"duration":"4-15s","reference_image_urls":9,"reference_video_urls":3,"reference_audio_urls":3,"prompt_max":20000,"mutually_exclusive":[["first_frame_url","last_frame_url"],["reference_image_urls"]],"voiceover_chars_per_second":13.5},"hint":"Per-second pricing (cheapest Seedance tier). resolution: 480p or 720p only. Use POST \/api\/agent\/upload-media for reference files. Starting frame and reference images are different scenarios \u2014 send only one of them. web_search works only without any source material and is dropped otherwise.","voiceover_hint":"Russian voice-over layer: pass voiceover_text and our TTS reads it over the clip (models mispronounce Russian themselves). voiceover_mode: voice = narrator over a mute scene, lips = a person in frame speaks and their lips are re-synced (+10 \u20bd per second). voiceover_model: my-voice + voiceover_cloned_voice_id uses YOUR cloned voice (10 \u20bd \/ 1000 chars instead of 13 \u20bd). The line must fit the clip at 13.5 characters per second or the request is rejected before charging. If synthesis or lip-sync fails, that layer is refunded and the clip is delivered."},"motion-control-720p":{"price":null,"price_formula":"ceil(min(max(video_duration,3),30)) * 15 \u20bd","per_second":15,"description":"Kling 3.0 Motion Control 720p. Transfer motion and facial expressions from a reference video onto a character image.","required":["character_image_url","reference_video_url"],"optional":["prompt","character_orientation","video_duration"],"enums":{"character_orientation":["image","video"]},"limits":{"prompt_max":2500,"video_duration_max":30,"video_duration_image":10}},"motion-control-1080p":{"price":null,"price_formula":"ceil(min(max(video_duration,3),30)) * 22 \u20bd","per_second":22,"description":"Kling 3.0 Motion Control 1080p HD.","required":["character_image_url","reference_video_url"],"optional":["prompt","character_orientation","video_duration"],"enums":{"character_orientation":["image","video"]},"limits":{"prompt_max":2500,"video_duration_max":30,"video_duration_image":10}},"veed-avatar":{"price":79,"description":"VEED talking-head avatar","required":["avatar_id","script"],"optional":["language"]},"topview-url-video":{"price":149,"description":"TopView URL-to-Video preview\/render workflow","required":["source_url"],"optional":["video_length","language","avatar_id"],"note":"Preview phase is free; HD render is billed when accepted."}},"voice":{"gemini-flash-tts":{"price":13,"description":"Google Gemini 3.1 Flash TTS \u2014 fast, expressive text-to-speech and multi-speaker dialogue. Price per-character: 13\u20bd per started 1000 chars.","required":["prompt"],"optional":["voice_name","style","temperature","scene","sample_context","speakers","dialogue_turns"],"limits":{"prompt_max":5000,"speakers_max":2,"temperature":"0.0-2.0","scene_max":1000,"sample_context_max":1000},"enums":{"style":["Deadpan","Whisper","Newscaster"]},"voices":["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"],"note":"Single voice: pass prompt + optional voice_name (one of voices, default Zephyr) + style. Control emotion with inline tags in the text, e.g. \"[cheerfully] Hello! [whispering] a secret\". Dialogue: pass speakers[] and dialogue_turns[] (see dialogue_format). temperature 0-2 = liveliness. scene\/sample_context set atmosphere and tone.","dialogue_format":{"speakers":[{"speaker_id":"Speaker 1","voice_name":"Puck","style":"Deadpan"},{"speaker_id":"Speaker 2","voice_name":"Kore","style":"Deadpan"}],"dialogue_turns":[{"speaker_id":"Speaker 1","text":"[cheerfully] Hi! How are you?"},{"speaker_id":"Speaker 2","text":"[calmly] Great, thanks."}]}},"gemini-pro-tts":{"price":18,"description":"Google Gemini 2.5 Pro TTS \u2014 studio-quality, high-fidelity text-to-speech and dialogue. Price per-character: 18\u20bd per started 1000 chars.","required":["prompt"],"optional":["voice_name","style","temperature","scene","sample_context","speakers","dialogue_turns"],"limits":{"prompt_max":5000,"speakers_max":2,"temperature":"0.0-2.0","scene_max":1000,"sample_context_max":1000},"enums":{"style":["Deadpan","Whisper","Newscaster"]},"voices":["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"],"note":"Same params as gemini-flash-tts, premium studio quality. Single voice: prompt + voice_name + style + inline emotion tags. Dialogue: speakers[] + dialogue_turns[].","dialogue_format":{"speakers":[{"speaker_id":"Speaker 1","voice_name":"Charon","style":"Newscaster"},{"speaker_id":"Speaker 2","voice_name":"Aoede","style":"Deadpan"}],"dialogue_turns":[{"speaker_id":"Speaker 1","text":"In technology news today..."},{"speaker_id":"Speaker 2","text":"[warmly] And it is a big one."}]}},"el-tts-turbo":{"price":29,"description":"ElevenLabs TTS Turbo 2.5 \u2014 fast text-to-speech. Price is per-character: 6\u20bd per started 1000 chars.","required":["prompt"],"optional":["voice_id","language_code","stability","similarity_boost","style","speed"],"limits":{"prompt_max":5000,"long_voiceover_prompt_max":200000,"stability":"0.0-1.0","similarity_boost":"0.0-1.0","style":"0.0-1.0","speed":"0.7-1.2"},"voices_url":"\/api\/agent\/voices","note":"voice_id accepts either a name or an ElevenLabs voice ID. See GET \/api\/agent\/voices. Long texts: prompt over 5000 chars (up to 200000) is automatically processed as a long voiceover \u2014 split into ~4800-char chunks, voiced and merged into one mp3; \/generate then returns voiceover_id + status_url (GET \/api\/agent\/voiceover\/long\/{id}) instead of generation_id. Same per-character price, refunded on failure."},"el-tts-multilingual-v2":{"price":39,"description":"ElevenLabs TTS Multilingual V2 \u2014 high-quality multi-language speech","required":["prompt"],"optional":["voice_id","language_code","stability","similarity_boost","style","speed","previous_text","next_text"],"limits":{"prompt_max":5000,"previous_text_max":5000,"next_text_max":5000,"stability":"0.0-1.0","similarity_boost":"0.0-1.0","style":"0.0-1.0","speed":"0.7-1.2"},"voices_url":"\/api\/agent\/voices","note":"Higher quality than turbo; supports previous_text\/next_text for speech continuity."},"el-dialogue-v3":{"price":49,"description":"ElevenLabs Dialogue v3 multi-speaker conversational audio","required":["prompt"],"optional":["dialogue","voice_id","language_code","stability"],"limits":{"prompt_max":5000,"dialogue_speakers_max":20,"stability":"0.0-1.0"},"voices_url":"\/api\/agent\/voices","note":"For multi-speaker dialogue pass dialogue[] with voice_id per line. If omitted, a single-speaker dialogue is built from prompt.","dialogue_format":[{"voice_id":"JBFqnCBsd6RMkjVDRZzb","text":"Hello!"},{"voice_id":"Xb7hH8MSUJpSbSDYk0k2","text":"Hi, good to hear you."}]},"my-voice-tts":{"price":29,"description":"Your cloned voice TTS (MiniMax) \u2014 \u043e\u0437\u0432\u0443\u0447\u043a\u0430 \u0442\u0435\u043a\u0441\u0442a \u0433\u043e\u043b\u043e\u0441\u043e\u043c, \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432 \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0435. Price per-character: 10\u20bd per started 1000 chars.","required":["prompt","cloned_voice_id"],"optional":["speed"],"limits":{"prompt_max":5000,"speed":"0.7-1.2"},"note":"cloned_voice_id \u2014 id \u0412\u0410\u0428\u0415\u0413\u041e \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u043e\u043b\u043e\u0441\u0430 (\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0435). \u0413\u043e\u043b\u043e\u0441 \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0443 API-\u043a\u043b\u044e\u0447\u0430, \u0438\u043d\u0430\u0447\u0435 \u043e\u0442\u043a\u0430\u0437 \u00ab\u0413\u043e\u043b\u043e\u0441 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u00bb (\u0434\u0435\u043d\u044c\u0433\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f)."},"el-sound-fx-v2":{"price":19,"description":"ElevenLabs Sound FX v2 \u2014 generate sound effects from text description","required":["prompt"],"optional":["duration_seconds","prompt_influence"],"limits":{"prompt_max":1000,"duration_seconds":"0.5-22.0","prompt_influence":"0.0-1.0"},"note":"Describe the sound effect. duration_seconds defaults to 5s, prompt_influence defaults to 0.5."},"gemini-omni-audio":{"price":39,"description":"Gemini Omni \u2014 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0433\u043e\u043b\u043e\u0441-\u0430\u0441\u0441\u0435\u0442. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 audioId \u0432 result_object; \u0430\u0443\u0434\u0438\u043e\u0444\u0430\u0439\u043b \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f.","required":["prompt"],"optional":["audio_id","voice_description","example_dialogue","voice_name"],"enums":{"audio_id":["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"]},"limits":{"prompt_max":210,"voice_description_max":20000,"example_dialogue_max":120},"hint":"prompt = \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u043b\u043e\u0441\u0430. audio_id \u2014 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u0440\u0435\u0441\u0435\u0442, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e achernar. audioId \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432 gemini-omni-character \u0447\u0435\u0440\u0435\u0437 audio_ids, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0432 video \u0447\u0435\u0440\u0435\u0437 character_ids."}},"music":{"suno-v5":{"price":89,"description":"Suno V5 with vocals","required":["prompt"],"optional":["lyrics","music_style","style_tags","vocal_gender","persona_id"],"note":"persona_id can be a custom voice created with POST \/api\/agent\/voice\/validate."},"suno-v5-instrumental":{"price":89,"description":"Suno V5 instrumental","required":["prompt"],"optional":["music_style","style_tags"]},"suno-v5.5":{"price":99,"description":"Suno V5.5 next-gen AI music with vocals","required":["prompt"],"optional":["lyrics","music_style","style_tags","vocal_gender","persona_id"],"note":"Latest Suno model with improved vocal quality and style adherence. persona_id can be a custom voice."},"suno-v5.5-instrumental":{"price":99,"description":"Suno V5.5 next-gen instrumental music","required":["prompt"],"optional":["music_style","style_tags"]}},"text":{"claude-opus-5":{"price":null,"description":"Claude Opus 5 \u2014 synchronous text generation, billed per actual tokens","required":["prompt"],"optional":["system","max_tokens","effort","thinking","messages","tools","tool_choice"],"enums":{"effort":["low","medium","high","xhigh","max"]},"limits":{"max_tokens":8192,"context_window":200000},"hint":"Answer comes back in the same response (no polling). Price is charged per actual tokens: 1500\u20bd per 1M input, 7500\u20bd per 1M output, minimum 2\u20bd per call. A reserve is held by max_tokens and the unused part is refunded immediately. thinking=true turns on reasoning (better on hard tasks, costs output tokens); it is off by default.","preserves_input":false},"gpt-5.6-sol":{"price":null,"description":"GPT-5.6 Sol \u2014 synchronous text generation, billed per actual tokens","required":["prompt"],"optional":["system","max_tokens","effort","thinking","messages","tools","tool_choice"],"enums":{"effort":["low","medium","high","xhigh","max"]},"limits":{"max_tokens":8192,"context_window":400000},"hint":"Answer comes back in the same response (no polling). Price is charged per actual tokens: 1500\u20bd per 1M input, 9000\u20bd per 1M output, minimum 2\u20bd per call. A reserve is held by max_tokens and the unused part is refunded immediately. thinking=true turns on reasoning (better on hard tasks, costs output tokens); it is off by default.","preserves_input":false},"gpt-5.6-terra":{"price":null,"description":"GPT-5.6 Terra \u2014 synchronous text generation, billed per actual tokens","required":["prompt"],"optional":["system","max_tokens","effort","thinking","messages","tools","tool_choice"],"enums":{"effort":["low","medium","high","xhigh","max"]},"limits":{"max_tokens":8192,"context_window":400000},"hint":"Answer comes back in the same response (no polling). Price is charged per actual tokens: 600\u20bd per 1M input, 3600\u20bd per 1M output, minimum 1\u20bd per call. A reserve is held by max_tokens and the unused part is refunded immediately. thinking=true turns on reasoning (better on hard tasks, costs output tokens); it is off by default.","preserves_input":false},"gpt-5.6-luna":{"price":null,"description":"GPT-5.6 Luna \u2014 synchronous text generation, billed per actual tokens","required":["prompt"],"optional":["system","max_tokens","effort","thinking","messages","tools","tool_choice"],"enums":{"effort":["low","medium","high","xhigh","max"]},"limits":{"max_tokens":8192,"context_window":400000},"hint":"Answer comes back in the same response (no polling). Price is charged per actual tokens: 60\u20bd per 1M input, 360\u20bd per 1M output, minimum 0.5\u20bd per call. A reserve is held by max_tokens and the unused part is refunded immediately. thinking=true turns on reasoning (better on hard tasks, costs output tokens); it is off by default.","preserves_input":false}}},"features":{"pre_charge_validation":"Media URL params are HEAD-checked before any debit. Bad URL returns HTTP 422 media_validation_failed, no charge.","webhook_delivery":"Pass callback_url in \/generate. We POST generation.complete or generation.error with X-Vibe-Signature HMAC. Test with POST \/api\/agent\/webhook-test.","strict_mode":"Pass strict=true to reject unknown\/incompatible params before debit. Without strict they are reported as ignored_params.","dry_run":"POST \/generate\/estimate validates and prices a request without spending money.","auto_refund_on_error":"If provider or pipeline fails after start, the generation cost is refunded automatically.","persistence":"Generation continues server-side even if polling stops."},"brand":{"note":"Brand Voice: store brand profiles (tone, palette, voice, defaults) and pass brand_id to \/generate \u2014 brand fields are injected only where the model schema allows, user params always win, price-affecting params are never injected. Set an active brand via POST \/brand\/activate to apply it to every generation without passing brand_id. Opt out per-request with brand_apply=false.","endpoints":{"GET \/api\/agent\/brands":"List brand profiles with products and active pair (scope: read).","GET \/api\/agent\/brand\/{id}":"One brand profile (scope: read).","POST \/api\/agent\/brand":"Create or update (pass id) a brand profile \u2014 free (scope: write).","DELETE \/api\/agent\/brand\/{id}":"Delete a brand profile (scope: write).","POST \/api\/agent\/brand\/{id}\/product":"Create or update (pass id) a product\/service (scope: write).","DELETE \/api\/agent\/product\/{id}":"Delete a product (scope: write).","POST \/api\/agent\/brand\/activate":"{brand_id, product_id} \u2014 set active pair; nulls switch it off (scope: write)."},"generate_params":{"brand_id":"Apply this brand profile to the generation (must be yours, otherwise 422 brand_not_found before any debit).","product_id":"Optional product of the same brand for context.","brand_apply":"false disables injection even when an active brand is set."},"estimate":"POST \/generate\/estimate with brand_id returns applied_brand_fields[] \u2014 exactly what will be injected, free of charge.","limits":{"brands_per_user":10,"products_per_user":50}},"acceptance":{"note":"Pass an `acceptance` object in POST \/generate with machine-checkable criteria; GET \/generation\/{id}\/status returns an `acceptance` block with verdict passed\/partial\/failed\/skipped and failed_checks[]. Informational only: it changes neither the generation status nor billing. Clients that do not send the spec get the exact same response as before.","checks":{"format":"png|jpg|jpeg|webp|gif|mp4|mov|mp3|wav \u2014 actual file type must match","aspect_ratio":"\"W:H\" (images only), with aspect_ratio_tolerance (relative, default 0.02)","min_width":"minimum width in px (images only)","min_height":"minimum height in px (images only)","max_file_size_mb":"maximum file size","min_file_size_kb":"minimum file size","not_blank":"true \u2014 file must be non-empty"},"example":{"acceptance":{"format":"png","aspect_ratio":"1:1","min_width":1024}}},"upload_endpoint":{"url":"POST \/api\/agent\/upload-media","fields":["file (multipart)"],"limits":{"image":"30 MB (jpeg\/png\/webp\/gif)","video":"50 MB (mp4\/mov)","audio":"15 MB (mp3\/wav)"},"returns":"JSON with stable URL for image_urls, reference_*_urls, first_frame_url, etc.","ttl_days":7},"music_params":{"type":"music","model":"suno-v5, suno-v5-instrumental, suno-v5.5, or suno-v5.5-instrumental","prompt":"Description of the song","lyrics":"(optional) Song lyrics text","music_style":"(optional) e.g. pop, rock, jazz, electronic","style_tags":"(optional) e.g. upbeat, energetic, calm","vocal_gender":"(optional) m or f (default: f)","persona_id":"(optional) Custom voice ID from POST \/api\/agent\/voice\/validate workflow"},"suno_voice_workflow":{"description":"Create a custom voice clone for use in Suno music generation. Voices have limited validity period; check status\/list before use.","cost":"50\u20bd charged at POST \/api\/agent\/voice\/validate","steps":["1. POST \/api\/agent\/voice\/validate \u2014 submit source audio URL + vocal segment. Returns task_id.","2. GET \/api\/agent\/voice\/validate-info?task_id=... \u2014 poll until verification phrase is ready.","3. Record the user reading the phrase and upload it via POST \/api\/agent\/upload-media.","4. POST \/api\/agent\/voice\/generate \u2014 submit task_id + verify_url. Returns new task_id.","5. GET \/api\/agent\/voice\/status?task_id=... \u2014 poll until voice_id is ready.","6. Use voice_id as persona_id in POST \/api\/agent\/generate with type=music and model=suno-v5 or suno-v5.5."],"regenerate":"If the validation phrase expired: POST \/api\/agent\/voice\/regenerate.","list_voices":"GET \/api\/agent\/voice\/list \u2014 list your custom voices."},"voices_catalog":{"url":"GET \/api\/agent\/voices","description":"ElevenLabs voice catalog. Filter by ?gender=female&category=professional&search=calm."},"endpoints":{"POST \/api\/agent\/generate":"Start generation. Pass strict=true to reject bad params before debit.","POST \/api\/agent\/generate\/estimate":"Dry-run: validate + price a \/generate body without spending","POST \/api\/agent\/webhook-test":"Send a signed test event to callback_url","POST \/api\/agent\/upload-media":"Upload a file, get a stable URL","GET \/api\/agent\/generation\/{id}\/status":"Check generation status","GET \/api\/agent\/voiceover\/long\/{id}":"Long voiceover (el-tts-turbo, prompt > 5000 chars) progress and result","GET \/api\/agent\/balance":"Check balance","GET \/api\/agent\/prices":"Full price list","GET \/api\/agent\/voices":"ElevenLabs voice catalog","POST \/api\/agent\/voice\/validate":"Suno Voice: submit source audio for custom voice creation","GET \/api\/agent\/voice\/validate-info":"Suno Voice: get verification phrase","POST \/api\/agent\/voice\/generate":"Suno Voice: submit recorded verification audio","GET \/api\/agent\/voice\/status":"Suno Voice: check voice creation status","POST \/api\/agent\/voice\/regenerate":"Suno Voice: regenerate expired verification phrase","GET \/api\/agent\/voice\/list":"Suno Voice: list custom voices","POST \/api\/agent\/safety-check":"Pre-action risk assessment"},"partner_only":"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u043e\u0439 (\u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u042f\u043d\u0434\u0435\u043a\u0441 \u0414\u0438\u0440\u0435\u043a\u0442\u0430, \u0430\u0432\u0442\u043e\u043f\u0438\u043b\u043e\u0442, \u0434\u043e\u0441\u0442\u0443\u043f\u044b \u043a \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u043c \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430\u043c, \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0440\u043e\u0441\u0430) \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0441\u043a\u043e\u043c\u0443 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044e: https:\/\/vibemarketolog.ru\/api"}