veo-3.1-fastVeo 3.1 Fast — $0.10/s @720p, $0.12/s @1080p, $0.30/s @4K.
Multi-turn dialogue, system prompts.
SSE chunks for incremental output.
Structured arguments via JSON schemas.
Pass images alongside the prompt.
Text and image to short video, async.
Coming soon.
Drop your sk-maas-… key in and you're done.
// Start a generation
const start = await fetch('https://api.miavo.xyz/v1/videos/generations', {
method: 'POST',
headers: {
authorization: `Bearer ${process.env.MACAW_API_KEY}`,
'content-type': 'application/json',
},
body: JSON.stringify({
model: 'veo-3.1-fast',
prompt: 'A close-up of raindrops on a window, soft focus, slow motion.',
aspect_ratio: '16:9',
duration_seconds: 8,
}),
}).then(r => r.json());
// Poll until done — usually 1–3 minutes
let task = start;
while (task.status === 'pending' || task.status === 'running') {
await new Promise(r => setTimeout(r, 5000));
task = await fetch(`https://api.miavo.xyz/v1/videos/generations/${start.id}`, {
headers: { authorization: `Bearer ${process.env.MACAW_API_KEY}` },
}).then(r => r.json());
}
if (task.status === 'succeeded') {
// Download the file
const video = await fetch(`https://api.miavo.xyz${task.video_url}`, {
headers: { authorization: `Bearer ${process.env.MACAW_API_KEY}` },
});
// → pipe video.body to disk or play in a <video> tag
}