Create a Clip Job
- Endpoint:
POST /v3/ai-clipping - Purpose: Start a clipping job for a source video. Returns an
ai_clipping_idto poll.
Quick Example
Response
Request Body
Output settings
Get a Clip Job
- Endpoint:
GET /v3/ai-clipping/{job_id} - Purpose: Fetch a clip job’s live status and, as they render, its finished clips.
Quick Example
Path Parameters
Response
Response Fields
Each
video_url and thumbnail_url is a pre-signed link with a limited lifetime. Download the file (or hand the URL to a downstream step) soon after the job completes rather than caching it for later.List Clip Jobs
- Endpoint:
GET /v3/ai-clipping - Purpose: List clip jobs with cursor-based pagination.
Quick Example
Query Parameters
Response
progress; poll GET /v3/ai-clipping/{job_id} for live in-flight progress on a specific job.
Delete a Clip Job
- Endpoint:
DELETE /v3/ai-clipping/{job_id} - Purpose: Permanently delete a clip job and its clips.
Quick Example
Response
Polling Pattern
Clip jobs are processed asynchronously. Poll until status reachescompleted or failed.
Status transitions: pending → running → completed | failed
callback_url over tight polling — HeyGen will POST you the finished job instead (ai_clipping.success / ai_clipping.fail webhook events).
Asset Inputs
Thevideo field accepts two input formats:
By URL — any publicly accessible HTTPS link:
POST /v3/assets (see Upload Assets):

