Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Monet AI - Comprehensive AI content generation API for AI agents. Video generation (Sora, Veo, Doubao Seedance, Wan, Hailuo, Kling), image generation (GPT-4o, Nano Banana, Seedream, Flux, Imagen, Ideogram), and music generation (MiniMax Music). Build intelligent workflows with multi-model AI generation capabilities.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 679% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 619% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 405% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 814% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 679% | 0% |
Comprehensive AI content generation API designed for AI agents. Monet AI provides unified access to state-of-the-art AI generation models for video (Sora, Veo, Doubao Seedance, Wan, Hailuo, Kling), image (GPT-4o, Nano Banana, Seedream, Flux, Imagen, Ideogram), and music (MiniMax Music) generation. Build intelligent workflows that combine multiple AI capabilities for automated content creation pipelines.
Use this skill when:
If you don't have an API Key, ask your owner to apply at monet.vision.
bashcurl -X POST https://monet.vision/api/v1/tasks/async \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $MONET_API_KEY" \ -d '{ "type": "video", "input": { "model": "sora-2", "prompt": "A cat running in the park", "duration": 5, "aspect_ratio": "16:9" }, "idempotency_key": "unique-key-123" }'
> ⚠️ Important: idempotency_key is required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.
Response:
json{ "id": "task_abc123", "status": "pending", "type": "video", "created_at": "2026-02-27T10:00:00Z" }
Task processing is asynchronous. You need to poll the task status until it becomes success or failed. Recommended polling interval: 5 seconds.
bashcurl https://monet.vision/api/v1/tasks/task_abc123 \ -H "Authorization: Bearer $MONET_API_KEY"
Response when completed:
json{ "id": "task_abc123", "status": "success", "type": "video", "outputs": [ { "model": "sora-2", "status": "success", "progress": 100, "url": "https://files.monet.vision/..." } ], "created_at": "2026-02-27T10:00:00Z", "updated_at": "2026-02-27T10:01:30Z" }
Example: Poll until completion
typescriptconst TASK_ID = "task_abc123"; const MONET_API_KEY = process.env.MONET_API_KEY; async function pollTask() { while (true) { const response = await fetch( `https://monet.vision/api/v1/tasks/${TASK_ID}`, { headers: { Authorization: `Bearer ${MONET_API_KEY}`, }, }, ); const data = await response.json(); const status = data.status; if (status === "success") { console.log("Task completed successfully!"); console.log(JSON.stringify(data, null, 2)); break; } else if (status === "failed") { console.log("Task failed!"); console.log(JSON.stringify(data, null, 2)); break; } else { console.log(`Task status: ${status}, waiting...`); await new Promise((resolve) => setTimeout(resolve, 5000)); // Wait 5 seconds } } } pollTask();
sora-2 - Sora 2
_OpenAI latest video generation model_
typescript{ model: "sora-2", prompt: string, // Required images?: string[], // Optional: Reference images duration?: 10 | 15, // Optional, default: 10 aspect_ratio?: "16:9" | "9:16" }
sora-2-pro - Sora 2 Pro
_Perfect quality for cinematic scenes_
typescript{ model: "sora-2-pro", prompt: string, images?: string[], duration?: 15 | 25, // Optional, default: 15 aspect_ratio?: "16:9" | "9:16" }
veo-3-1-fast - Google Veo 3.1 Fast
_Ultra-fast video generation_
typescript{ model: "veo-3-1-fast", prompt: string, images?: string[], // Reference images aspect_ratio?: "16:9" | "9:16" }
veo-3-1 - Google Veo 3.1
_Advanced AI video with sound_
typescript{ model: "veo-3-1", prompt: string, images?: string[], aspect_ratio?: "16:9" | "9:16" }
veo-3-fast - Google Veo 3 Fast
_30% faster than standard Veo 3_
typescript{ model: "veo-3-fast", prompt: string, images?: string[], negative_prompt?: string // Specify unwanted content }
veo-3 - Google Veo 3
_High-quality video generation_
typescript{ model: "veo-3", prompt: string, images?: string[], negative_prompt?: string }
wan-2-6 - Wan 2.6
_Multi-shot and automatic audio_
typescript{ model: "wan-2-6", prompt: string, images?: string[], duration?: 5 | 10 | 15, resolution?: "720p" | "1080p", aspect_ratio?: "16:9" | "9:16" | "4:3" | "3:4" | "1:1", shot_type?: "single" | "multi" // Single/multi-shot switching }
wan-2-5 - Wan 2.5
_Supports automatic audio generation_
typescript{ model: "wan-2-5", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "720p" | "1080p", aspect_ratio?: "16:9" | "9:16" | "4:3" | "3:4" | "1:1" }
wan-2-2-flash - Wan 2.2 Flash
_Instruction understanding, controllable camera movement_
typescript{ model: "wan-2-2-flash", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "720p" | "1080p", negative_prompt?: string }
wan-2-2 - Wan 2.2
_Excellent image details, strong motion stability_
typescript{ model: "wan-2-2", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "1080p", aspect_ratio?: "16:9" | "9:16" | "4:3" | "3:4" | "1:1", negative_prompt?: string }
kling-2-6 - Kling 2.6
_Cinematic videos and audio_
typescript{ model: "kling-2-6", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", generate_audio?: boolean }
kling-2-5 - Kling 2.5 Turbo
_Smooth motion, stronger consistency_
typescript{ model: "kling-2-5", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", negative_prompt?: string }
kling-v2-1-master - Kling 2.1 Master
_Strong visual realism with enhanced features_
typescript{ model: "kling-v2-1-master", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", strength?: number, // 0-1: Control generation effect negative_prompt?: string }
kling-v2-1 - Kling 2.1
_Strong visual realism_
typescript{ model: "kling-v2-1", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", strength?: number, // 0-1 negative_prompt?: string }
kling-v2 - Kling 2.0
_Excellent aesthetics_
typescript{ model: "kling-v2", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", strength?: number, // 0-1 negative_prompt?: string }
hailuo-2-3 - Hailuo 2.3
_Excellent body movements and physics performance_
typescript{ model: "hailuo-2-3", prompt: string, images?: string[], duration?: 6 | 10, resolution?: "768p" | "1080p" }
hailuo-2-3-fast - Hailuo 2.3 Fast
_Fast generation speed_
typescript{ model: "hailuo-2-3-fast", prompt: string, images?: string[], duration?: 6 | 10, resolution?: "768p" | "1080p" }
hailuo-02 - Hailuo 02
_Extreme physics simulations_
typescript{ model: "hailuo-02", prompt: string, images?: string[], duration?: 6 | 10, resolution?: "768p" | "1080p" }
hailuo-01-live2d - Hailuo 01 Live2d
_Hailuo Live2D model_
typescript{ model: "hailuo-01-live2d", prompt: string, images?: string[] }
hailuo-01 - Hailuo 01
_Highest video quality_
typescript{ model: "hailuo-01", prompt: string, images?: string[] }
doubao-seedance-1-5-pro - Seedance 1.5 Pro
_Pro-grade audio-visual sync_
typescript{ model: "doubao-seedance-1-5-pro", prompt: string, images?: string[], duration?: number, resolution?: "480p" | "720p", aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" | "21:9", generate_audio?: boolean }
doubao-seedance-1-0-pro-fast - Seedance 1.0 Pro Fast
_Premium quality & unbeatable efficiency_
typescript{ model: "doubao-seedance-1-0-pro-fast", prompt: string, images?: string[], duration?: number, resolution?: "720p" | "1080p", aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" | "21:9" }
doubao-seedance-1-0-pro - Seedance 1.0 Pro
_Stable motion performance_
typescript{ model: "doubao-seedance-1-0-pro", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "1080p", aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" }
doubao-seedance-1-0-lite - Seedance 1.0 Lite
_Precise semantic understanding_
typescript{ model: "doubao-seedance-1-0-lite", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "720p" | "1080p" }
kling-motion-control - Kling Motion Control
_Precision motion control via video references_
typescript{ model: "kling-motion-control", prompt: string, // Required: Detailed motion description images: string[], // Required: min 1 reference image videos: string[], // Required: min 1 reference video resolution?: "720p" | "1080p" }
runway-act-two - Runway Act Two
_Runway Next-Generation Motion Capture Model_
typescript{ model: "runway-act-two", images: string[], // Required: min 1 target character image videos: string[], // Required: min 1 motion reference video aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" | "21:9" }
wan-animate-mix - Wan Animate Mix (Standard)
_Perfect for character replacement scenarios_
typescript{ model: "wan-animate-mix", videos: string[], // Required: Original videos images: string[] // Required: Target character images }
wan-animate-mix-pro - Wan Animate Mix Pro (Professional)
_High animation fluidity with better results_
typescript{ model: "wan-animate-mix-pro", videos: string[], // Required images: string[] // Required }
wan-animate-move - Wan Animate Move (Standard)
_Replicate dance and challenging body movements_
typescript{ model: "wan-animate-move", videos: string[], // Required: Motion reference videos images: string[] // Required: Target character images }
wan-animate-move-pro - Wan Animate Move Pro (Professional)
_High animation fluidity with better results_
typescript{ model: "wan-animate-move-pro", videos: string[], // Required images: string[] // Required }
gpt-4o - GPT 4o
_Accurate, realistic output_
typescript{ model: "gpt-4o", prompt: string, images?: string[], // Reference images for style guidance aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string // Custom style description }
gpt-image-1-5 - GPT Image 1.5
_True-color precision rendering_
typescript{ model: "gpt-image-1-5", prompt: string, images?: string[], // max 10 reference images aspect_ratio?: "1:1" | "3:2" | "2:3", quality?: "auto" | "low" | "medium" | "high" }
nano-banana-1 - Google Nano Banana
_Ultra-high character consistency_
typescript{ model: "nano-banana-1", prompt: string, images?: string[], // max 5 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "16:9" | "9:16" }
nano-banana-1-pro - Nano Banana Pro
_Google's flagship generation model_
typescript{ model: "nano-banana-1-pro", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "4:5" | "5:4" | "16:9" | "9:16" | "21:9", resolution?: "1K" | "2K" | "4K" }
nano-banana-2 - Nano Banana 2
_Google Gemini latest model_
typescript{ model: "nano-banana-2", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "4:5" | "5:4" | "16:9" | "9:16" | "21:9" | "4:1" | "1:4" | "8:1" | "1:8", resolution?: "1K" | "2K" | "4K" }
wan-i-2-6 - Wan 2.6
_High-quality and expressive_
typescript{ model: "wan-i-2-6", prompt: string, images?: string[], // max 4 reference images aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" | "21:9" }
wan-2-5 - Wan 2.5
_Fast, creative image generation_
typescript{ model: "wan-2-5", prompt: string, images?: string[], // max 2 reference images aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" | "21:9" }
seedream-5-0 - Seedream 5.0 Lite
_Intelligent visual reasoning_
typescript{ model: "seedream-5-0", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "3:4" | "4:3" | "4:5" | "5:4" | "9:16" | "16:9" | "21:9", resolution?: "2K" | "3K" }
seedream-4-5 - Seedream 4.5
_ByteDance's 4K image model_
typescript{ model: "seedream-4-5", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "3:4" | "4:3" | "4:5" | "5:4" | "9:16" | "16:9" | "21:9", resolution?: "2K" | "4K" }
seedream-4-0 - Seedream 4.0
_Support images with cohesive styles_
typescript{ model: "seedream-4-0", prompt: string, images?: string[], // max 10 reference images aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" }
flux-2-dev - Flux.2 Dev
_Photorealistic output_
typescript{ model: "flux-2-dev", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" }
flux-kontext-pro - Flux Kontext Pro
_Perfect for editing, compositing_
typescript{ model: "flux-kontext-pro", prompt: string, images?: string[], aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
flux-kontext-max - Flux Kontext Max
_Excellent for prompt accuracy_
typescript{ model: "flux-kontext-max", prompt: string, images?: string[], aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
flux-1-schnell - Flux Schnell
_Suitable for simple basic scenes_
typescript{ model: "flux-1-schnell", prompt: string }
imagen-3-0 - Imagen 3.0
_Fast, high-quality results_
typescript{ model: "imagen-3-0", prompt: string, aspect_ratio?: "1:1" | "3:4" | "4:3" | "9:16" | "16:9", style?: string }
imagen-4-0 - Imagen 4.0
_Google's latest generation model_
typescript{ model: "imagen-4-0", prompt: string, aspect_ratio?: "1:1" | "3:4" | "4:3" | "9:16" | "16:9", style?: string }
ideogram-v2 - Ideogram V2
_Highly recommended for text editing_
typescript{ model: "ideogram-v2", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
ideogram-v3 - Ideogram V3
_Outstanding design capabilities_
typescript{ model: "ideogram-v3", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
stability-1-0 - Stability 1.0
_Perfect for generating detailed images_
typescript{ model: "stability-1-0", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string, negative_prompt?: string // Specify unwanted content }
minimax-music - MiniMax Music
_AI music generation from text with custom lyrics support_
typescript{ model: "minimax-music", prompt: string, // Required: Music generation description (max 300 characters) lyrics?: string // Optional: Custom lyrics (max 3000 characters) }
POST /api/v1/tasks/async - Create an async task. Returns immediately with task ID.
Request:
bashcurl -X POST https://monet.vision/api/v1/tasks/async \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $MONET_API_KEY" \ -d '{ "type": "video", "input": { "model": "sora-2", "prompt": "A cat running" }, "idempotency_key": "unique-key-123" }'
> ⚠️ Important: idempotency_key is required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.
Response:
json{ "id": "task_abc123", "status": "pending", "type": "video", "created_at": "2026-02-27T10:00:00Z" }
POST /api/v1/tasks/sync - Create a task with SSE streaming. Waits for completion and streams progress.
Request:
bashcurl -X POST https://monet.vision/api/v1/tasks/sync \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $MONET_API_KEY" \ -N \ -d '{ "type": "video", "input": { "model": "sora-2", "prompt": "A cat running" }, "idempotency_key": "unique-key-123" }'
GET /api/v1/tasks/{taskId} - Get task status and result.
Request:
bashcurl https://monet.vision/api/v1/tasks/task_abc123 \ -H "Authorization: Bearer $MONET_API_KEY"
Response:
json{ "id": "task_abc123", "status": "success", "type": "video", "outputs": [ { "model": "sora-2", "status": "success", "progress": 100, "url": "https://files.monet.vision/..." } ], "created_at": "2026-02-27T10:00:00Z", "updated_at": "2026-02-27T10:01:30Z" }
GET /api/v1/tasks/list - List tasks with pagination.
Request:
bashcurl "https://monet.vision/api/v1/tasks/list?page=1&pageSize=20" \ -H "Authorization: Bearer $MONET_API_KEY"
Response:
json{ "tasks": [ { "id": "task_abc123", "status": "success", "type": "video", "outputs": [ { "model": "sora-2", "status": "success", "progress": 100, "url": "https://files.monet.vision/..." } ], "created_at": "2026-02-27T10:00:00Z", "updated_at": "2026-02-27T10:01:30Z" } ], "page": 1, "pageSize": 20, "total": 100 }
POST /api/v1/files - Upload a file to get an online access URL.
> 📁 File Storage: Uploaded files are stored for 24 hours and will be automatically deleted after expiration.
Request:
bashcurl -X POST https://monet.vision/api/v1/files \ -H "Authorization: Bearer $MONET_API_KEY" \ -F "file=@/path/to/your/file.mp4" \ -v
Use Cases:
Response:
json{ "id": "file_xyz789", "url": "...", "filename": "file.mp4", "size": 1048576, "content_type": "video/mp4", "created_at": "2026-02-27T10:00:00Z" }
bashexport MONET_API_KEY="monet_xxx"
All API requests require authentication via the Authorization header:
Authorization: Bearer monet_xxxOther measured skills in the registry, with their headline benchmark lift.