Install
openclaw skills install create-videoCreate videos from a text prompt using HeyGen's Video Agent (POST /v3/video-agents). The default for most video requests — AI handles script, avatar, visuals...
openclaw skills install create-videoGenerate complete videos from a text prompt. Describe what you want and the AI handles script writing, avatar selection, visuals, voiceover, pacing, and captions automatically.
All requests require the X-Api-Key header. Set the HEYGEN_API_KEY environment variable.
curl -X POST "https://api.heygen.com/v3/video-agents" \
-H "X-Api-Key: $HEYGEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "Create a 60-second product demo video."}'
If HeyGen MCP tools are available (mcp__heygen__*), prefer them over direct HTTP API calls — they handle authentication and request formatting automatically.
| Task | MCP Tool | Fallback (Direct API) |
|---|---|---|
| Generate video from prompt | mcp__heygen__generate_video_agent | POST /v3/video-agents |
| Check video status / get URL | mcp__heygen__get_video | GET /v3/videos/{video_id} |
| List account videos | mcp__heygen__list_videos | GET /v3/videos |
| Delete a video | mcp__heygen__delete_video | DELETE /v3/videos/{video_id} |
If no HeyGen MCP tools are available, use direct HTTP API calls as documented in the reference files.
Always use prompt-optimizer.md guidelines to structure prompts with scenes, timing, and visual styles.
With MCP tools:
mcp__heygen__generate_video_agent with prompt and config (duration_sec, orientation, avatar_id)mcp__heygen__get_video with the returned video_id to poll status and get the download URLWithout MCP tools (direct API):
POST /v3/video-agents — see video-agent.mdGET /v3/videos/<id> — see video-status.mdRead these as needed — they contain endpoint details, request/response schemas, and code examples (curl, TypeScript, Python).
Core workflow:
POST /v3/video-agents request fields, response format, file inputsFoundation:
GET /v3/videos/{id} polling and downloadavatar_id for consistency across videosvoice_id for a specific narrator voice