Veo Skill
by @seekton
Veo, Veo 3.1 Fast - Google AI video generation models for AI agents. 1080p HD output, reference image support, intelligent audio generation.
Create a Video Generation Task
curl -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": "veo-3-1",
"prompt": "A cat running in the park",
"duration": 8,
"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:
{
"id": "task_abc123",
"status": "pending",
"type": "video",
"created_at": "2026-02-27T10:00:00Z"
}
Get Task Status and Result
Task processing is asynchronous. You need to poll the task status until it becomes success or failed. Recommended polling interval: 5 seconds.
curl https://monet.vision/api/v1/tasks/task_abc123 \
-H "Authorization: Bearer $MONET_API_KEY"
Response when completed:
{
"id": "task_abc123",
"status": "success",
"type": "video",
"outputs": [
{
"model": "veo-3-1",
"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
const 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));
}
}
}
pollTask();
Environment Variables
export MONET_API_KEY="monet_xxx"
Authentication
All API requests require authentication via the Authorization header:
Authorization: Bearer monet_xxx
clawhub install veo-skill