> Documentation index: https://api.veed.io/llms.txt. Fetch it to find every other page, as Markdown.

# Get a clean audio (video) job

Model: Clean Audio Video
Endpoint: `GET /v1/clean-audio-video/{job_id}`

Retrieve the current state of a clean audio (video) job by its `job_id`.

The response uses the shared job envelope, whose `status` is one of:

- **`PROCESSING`** — still cleaning; the result is empty
- **`COMPLETED`** — done; the result holds the cleaned video
- **`FAILED`** — the job was accepted but processing failed; the error holds a failure code

Poll this endpoint until the status is `COMPLETED` or `FAILED`. An unknown `job_id` returns `404 Not Found`.

**Failure codes**

| Code | Meaning |
| --- | --- |
| `input_validation` | An input is missing or invalid. `error.details` names the input at fault when there is one. |
| `content_moderation` | An input breaks the content rules. Only send images, video and voices you own or have permission to use. |
| `invalid_file` | A file could not be read. Check its format, and that it is not corrupted. |
| `audio_too_long` | The audio is longer than the model accepts. Shorten it, or split it across jobs. |
| `transload_failed` | A file could not be downloaded from its URL. Make sure the URL is public and works without a login. |
| `generation_failed` | The model failed while rendering. Retry; if it keeps failing, contact support with the `job_id`. |
| `timeout` | The job ran out of time. Retry; if it keeps failing, contact support with the `job_id`. |
| `insufficient_credits` | The balance ran out before the job could be paid for. Top up in the dashboard's Billing, then retry. |

## Parameters

- `job_id` (path) · required — Identifier of the clean audio job, returned when the job was submitted.
- `X-Veed-Store-IO` (header) — Set to `0` to not store this request's and response's bodies. They are then not available in your request logs for debugging.
- `X-Veed-Media-Expiration-Seconds` (header) — Number of seconds before the media URLs returned for this request expire. A value above the maximum is capped rather than rejected.

## Example request

```bash
curl "https://api.veed.io/v1/clean-audio-video/{job_id}" \
  -H "Authorization: Bearer $VEED_API_KEY"
```

## Example response (200)

```json
{
  "data": {
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "status": "COMPLETED",
    "result": {
      "video": {
        "url": "https://static-assets.veed.io/api-examples/clean-audio-video.mp4",
        "content_type": "video/mp4",
        "file_name": "clean-audio-video.mp4",
        "file_size": 8642650
      }
    },
    "credits_charged": 2
  }
}
```

Rendered page: https://api.veed.io/docs/api/get-v1-clean-audio-video-job-id
