# Submit a fabric-1.0 job

Model: Fabric 1.0
Endpoint: `POST /v1/fabric-1.0`

Start an asynchronous job that animates a source image to lip-sync it to an audio track, producing a talking video at the resolution you choose.

**Inputs**

- `image_url` — public URL of the source image (should contain a face)
- `audio_url` — public URL of the audio track to speak
- `resolution` — output resolution: `480p` or `720p`

**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/fabric-1.0/{job_id}` until the job is `COMPLETED` or `FAILED`.

## Request body

- `audio_url` · url · required — URL of the audio track to lip-sync to.
- `image_url` · url · required — URL of the source image to animate.
- `resolution` · enum · required — Output video resolution. Accepts `720p`, `480p`.

## 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/fabric-1.0" \
  -H "Authorization: Bearer $VEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "audio_url": "https://static-assets.veed.io/api-examples/fabric-input.mp3",
  "image_url": "https://static-assets.veed.io/api-examples/fabric-input.png",
  "resolution": "720p"
}'
```

## 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-fabric-1-0
