Install
openclaw skills install vap-mediaAI image, video, and music generation + editing via VAP API. Flux, Veo 3.1, Suno V5.
openclaw skills install vap-mediaIntegration Note: VAP Media is an API aggregator that provides unified access to multiple AI providers:
- Images: Generated via Black Forest Labs Flux.2 Pro
- Videos: Generated via Google Veo 3.1
- Music: Generated via Suno V5
All generation requests go through VAP's API (
api.vapagent.com), which routes to the appropriate backend provider.
Generate images, videos, and music. Edit with inpaint, ai_edit, upscale, background removal, video trim/merge.
Check if VAP_API_KEY is set:
Generate images for free. No signup required. 3 per day.
curl -s -X POST https://api.vapagent.com/v3/trial/generate \
-H "Content-Type: application/json" \
-d '{"prompt":"PROMPT"}'
Returns {"task_id":"UUID","status":"pending","remaining":2}.
curl -s https://api.vapagent.com/v3/trial/status/TASK_ID
Returns {"status":"completed","image_url":"https://..."} when done.
429 → Daily limit reached. Suggest upgrading: export VAP_API_KEY=vap_xxx503 → Trial service temporarily unavailable.Unlimited images, video, music, and editing operations.
curl -s -X POST https://api.vapagent.com/v3/tasks \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"TYPE","params":{"description":"PROMPT"}}'
Returns {"task_id":"UUID","status":"pending"}.
curl -s https://api.vapagent.com/v3/tasks/TASK_ID \
-H "Authorization: Bearer $VAP_API_KEY"
Returns {"status":"completed","result":{"output_url":"https://..."}} when done.
image or image_generation)| Param | Type | Default | Description |
|---|---|---|---|
description | string | required | Image description |
aspect_ratio | enum | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 |
quality | enum | standard | standard or high |
Tip: Aspect ratio is auto-detected from prompt text. "a wide landscape photo" → 16:9 automatically.
video or video_generation) — Tier 2+| Param | Type | Default | Description |
|---|---|---|---|
description | string | required | Video description |
duration | int | 8 | 4, 6, or 8 seconds |
aspect_ratio | enum | 16:9 | 16:9 (landscape) or 9:16 (portrait) |
generate_audio | bool | true | Include audio track |
resolution | enum | 720p | 720p or 1080p |
negative_prompt | string | "" | What to avoid |
music or music_generation) — Tier 2+| Param | Type | Default | Description |
|---|---|---|---|
description | string | required | Music description (genre, mood, instruments) |
duration | int | 120 | 30-480 seconds |
instrumental | bool | false | No vocals |
audio_format | enum | mp3 | mp3 or wav (lossless) |
loudness_preset | enum | streaming | streaming (-14 LUFS), apple (-16 LUFS), broadcast (-23 LUFS) |
style | string | none | Genre/style (max 1000 chars) |
title | string | none | Song title |
custom_mode | bool | false | Enable custom lyrics + style mode |
401 → Invalid API key.402 → Insufficient balance. Top up at https://vapagent.com/dashboard/signup.html403 → Tier too low for this task type.Post-production editing operations. Tier 1+ required.
curl -s -X POST https://api.vapagent.com/v3/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"OPERATION","media_url":"URL","prompt":"INSTRUCTION"}'
curl -s https://api.vapagent.com/v3/operations/OPERATION_ID \
-H "Authorization: Bearer $VAP_API_KEY"
| Operation | Required Params | Description |
|---|---|---|
inpaint | media_url, prompt | AI editing (optional: mask_url) |
ai_edit | media_url, prompt | AI-powered image editing with text instructions (optional: additional_images) |
background_remove | media_url | Remove background |
upscale | media_url | Enhance resolution (scale: 2 or 4) |
video_trim | media_url, start_time, end_time | Trim video |
video_merge | media_urls (array, min 2) | Merge video clips |
When a user asks to create/generate/make an image, video, or music:
VAP_API_KEY set?/v3/tasks (or /v3/trial/generate for free)/v3/operations/v3/execute with presetWhen a user asks to edit/enhance/modify an existing image or video:
/v3/operations# Create (no auth needed)
curl -s -X POST https://api.vapagent.com/v3/trial/generate \
-H "Content-Type: application/json" \
-d '{"prompt":"A fluffy orange tabby cat on a sunlit windowsill, soft bokeh, golden hour light, photorealistic"}'
# Poll
curl -s https://api.vapagent.com/v3/trial/status/TASK_ID
# Image (widescreen)
curl -s -X POST https://api.vapagent.com/v3/tasks \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"image","params":{"description":"A fluffy orange tabby cat on a sunlit windowsill, soft bokeh, golden hour light, photorealistic","aspect_ratio":"16:9"}}'
# Video (portrait, for social media)
curl -s -X POST https://api.vapagent.com/v3/tasks \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"video","params":{"description":"Drone shot over misty mountains at sunrise","duration":8,"aspect_ratio":"9:16","resolution":"1080p"}}'
# Music (instrumental WAV)
curl -s -X POST https://api.vapagent.com/v3/tasks \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"music","params":{"description":"Upbeat lo-fi hip hop beat, warm vinyl crackle, chill vibes","duration":120,"instrumental":true,"audio_format":"wav","loudness_preset":"streaming"}}'
# Inpaint (edit an image)
curl -s -X POST https://api.vapagent.com/v3/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"inpaint","media_url":"https://example.com/photo.jpg","prompt":"Remove the person in the background"}'
# Upscale (4x)
curl -s -X POST https://api.vapagent.com/v3/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"upscale","media_url":"https://example.com/photo.jpg","options":{"scale":4}}'
# Background Remove
curl -s -X POST https://api.vapagent.com/v3/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"background_remove","media_url":"https://example.com/photo.jpg"}'
# Poll (use task_id or operation_id from response)
curl -s https://api.vapagent.com/v3/tasks/TASK_ID \
-H "Authorization: Bearer $VAP_API_KEY"
For content campaigns, use /v3/execute to generate multiple assets from one prompt:
curl -s -X POST https://api.vapagent.com/v3/execute \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"preset":"streaming_campaign","prompt":"PROMPT"}'
Returns all assets when complete:
{"status":"completed","outputs":{"video":"https://...","music":"https://...","thumbnail":"https://..."}}
| Preset | Includes |
|---|---|
streaming_campaign | video + music + thumbnail + metadata |
full_production | video + music + thumbnail + metadata + SEO |
video.basic | video only |
music.basic | music only |
image.basic | image only |
export VAP_API_KEY=vap_xxxxxxxxxxxxxxxxxxxx