---
title: "Get Filler Word Removal"
method: GET
path: "/v3/filler-word-removals/{filler_word_removal_id}"
tags: ["Filler Word Removal"]
---

# Get Filler Word Removal

`GET /v3/filler-word-removals/{filler_word_removal_id}`

## Request

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

Returns the job resource: lifecycle status, progress, and — once completed — the presigned download URL of the cleaned video plus removal statistics (num_cuts, reduction_pct, durations).

## Path parameters

- `filler_word_removal_id` string, required

## Response `200`

Successful response

- object
  - `data` FillerWordRemovalDetail: Full job resource returned by GET /v3/filler-word-removals/{id}. Invariant: ``status=completed`` always carries a ``video_url`` — when the run changes nothing (no filler cuts and no silence trims) the output is a byte-copy of the original and the charge is auto-refunded, so polling scripts never need a special no-op branch. Note ``num_cuts`` counts filler segments only; a run may report ``num_cuts=0`` yet still be billed when it trimmed long silences (``reduction_pct > 0``).
    - `id` string, required: Unique job identifier.
    - `title` string, nullable: Display title.
    - `status` 'pending' | 'running' | 'completed' | 'failed', required: Public job lifecycle.
    - `progress` integer: Approximate progress (0-100). 100 when completed.
    - `video_url` string, nullable: Presigned MP4 download URL of the cleaned video. Present when status=completed. Expires — re-fetch this endpoint for a fresh link.
    - `thumbnail_url` string, nullable: Presigned thumbnail URL. Only present when status=completed and a thumbnail was generated.
    - `original_duration` number, nullable: Duration of the source video in seconds. Present when status=completed.
    - `output_duration` number, nullable: Duration of the cleaned video in seconds. Present when status=completed.
    - `num_cuts` integer, nullable: Number of filler segments removed (silence-only trims are not counted — compare reduction_pct). The charge auto-refunds only when the run changed nothing at all. Present when status=completed.
    - `reduction_pct` number, nullable: Percentage of the source duration removed. Present when status=completed.
    - `callback_id` string, nullable: Client-provided callback ID echoed from the create request.
    - `created_at` integer, nullable: Unix timestamp (seconds) of job creation.
    - `failure_message` string, nullable: Error description. Only present when status=failed.

## Other responses

- `400`: Invalid request parameters
- `401`: Authentication failed
- `404`: Resource not found
- `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/:filler_word_removal_id/get.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)
