---
title: "Create Filler Word Removal"
method: POST
path: "/v3/filler-word-removals"
tags: ["Filler Word Removal"]
---

# Create Filler Word Removal

`POST /v3/filler-word-removals`

## Request

- Base URL: `https://api.heygen.com`
- URL: `https://api.heygen.com/v3/filler-word-removals`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Submits a video for filler-word removal and returns a job id. The job cuts filler words and long silences and renders one cleaned video; if nothing changes, the charge is refunded. \$0.30 per source minute, 1-minute minimum. Poll GET /v3/filler-word-removals/{id} or use webhooks.

## Headers

- `Idempotency-Key` string

## Request body

- CreateFillerWordRemovalRequest: Request body for POST /v3/filler-word-removals.
  - `video` union, required: Source video to clean. Either a URL or an asset_id from POST /v1/asset.
    - AssetUrl: Asset input via publicly accessible HTTPS URL.
      - `type` 'url', required: Input type discriminator
      - `url` string, required: Publicly accessible HTTPS URL for the asset
    - AssetId: Asset input via HeyGen asset ID from the asset upload endpoint.
      - `type` 'asset_id', required: Input type discriminator
      - `asset_id` string, required: HeyGen asset ID from the asset upload endpoint
  - `title` string, nullable: Display title for the job. Defaults to 'Filler Removal' if omitted.
  - `callback_url` string, nullable: HTTPS URL to receive per-job webhook callbacks (filler_word_removal.success / filler_word_removal.fail). Delivery is best-effort with limited retries — poll GET /v3/filler-word-removals/{id} as the source of truth (a terminal GET may precede its webhook). Per-job callback_url deliveries are NOT HMAC-signed: authenticate them by verifying TLS and matching the echoed callback_id, and do not trust an unverified body. To receive a signed payload, register a webhook endpoint with a secret via /v3/webhooks/endpoints.
  - `callback_id` string, nullable: Opaque client identifier echoed verbatim in webhook payloads.

## Response `202`

Accepted — submission acknowledged; poll for completion.

- object
  - `data` CreateFillerWordRemovalResponse: Response for POST /v3/filler-word-removals. Mirrors the v3 single-ID create shape.
    - `filler_word_removal_id` string, required: Unique job identifier. Use with GET /v3/filler-word-removals/{id}.

## Other responses

- `400`: Invalid request parameters
- `401`: Authentication failed
- `402`: Insufficient credit
- `409`: A prior request with this Idempotency-Key is still in progress. Wait for the original request to complete, then retry.
- `429`: Rate limit exceeded

## Changes

- **2026-11-03** `7dfa5e59b4f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/heygen/apis/heygen-external-api/changes/v3/filler-word-removals/post.md)

---

[API](https://skmtc.dev/heygen/apis/heygen-external-api.md) - [All operations](https://skmtc.dev/heygen/apis/heygen-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/heygen/apis/heygen-external-api/revisions/7dfa5e59b4f5?raw)
