# Submit a Lipsync 2.0 job

Model: Lipsync 2.0
Endpoint: `POST /v1/lipsync-2.0`

Start an asynchronous job that re-renders a source video with the speaker's mouth matched to a new audio track — for dubbing, voice replacement, or a cleaner take.

**Inputs**

- `video_url` — public URL of the source video
- `audio_url` — public URL of the new audio track to lip-sync the video to

**What happens next**

The job is **accepted immediately** — you get `202 Accepted` with a `job_id` and status `PROCESSING`. Rendering runs in the background; poll `GET /v1/lipsync-2.0/{job_id}` until the job is `COMPLETED` or `FAILED`.

## Request body

- `audio_url` · url · required — URL of the new audio track to lip-sync the video to.
- `video_url` · url · required — URL of the source video to dub.

## Parameters

- `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 -X POST "https://api.veed.io/v1/lipsync-2.0" \
  -H "Authorization: Bearer $VEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "audio_url": "https://static-assets.veed.io/api-examples/lipsyncv2-input.mp3",
  "video_url": "https://static-assets.veed.io/api-examples/lipsyncv2-input.mp4"
}'
```

## Example response (202)

```json
{
  "data": {
    "credits_charged": 0,
    "credits_estimated": 0,
    "error": {
      "code": "input_validation",
      "details": [
        {
          "field": "<field>",
          "message": "<message>",
          "type": "<type>"
        }
      ],
      "message": "<message>"
    },
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "result": {
      "video": {
        "content_type": "video/mp4",
        "file_name": "<file_name>",
        "file_size": 0,
        "url": "<url>"
      }
    },
    "status": "PROCESSING"
  }
}
```

Rendered page: https://api.veed.io/docs/api/post-v1-lipsync-2-0
