# Vimmerse Lip-Sync Video

> Vimmerse Lip-Sync Video is a paid API for AI agents from agents.vimmerse.net, paid per call via MPP, $1.2/call (dynamic — varies by input), status unknown (last checked 2026-10-31).

Animates a face image or video to match provided or TTS-generated audio, producing a lip-synced video output.

## Facts

- Endpoint: POST https://agents.vimmerse.net/v2/video/lip-sync?utm_source=zero.xyz
- Price: $1.2/call (dynamic — varies by input)
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Provider: agents.vimmerse.net
- Website: https://agents.vimmerse.net
- Canonical page: https://www.zero.xyz/c/agents-vimmerse-net-vimmerse-lip-sync-video-81c35bce
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__kRfL-BkiJyiX8Ap5_dsR

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-vimmerse-net-vimmerse-lip-sync-video-81c35bce -d '<json body>'
```

Example prompt: Take this portrait photo at https://cdn.example.com/face.png and this audio file at https://cdn.example.com/speech.mp3, and generate a lip-synced talking head video using the AutoLipSync option — run it asynchronously and notify me when it's done.

## When to prefer this

Choose this endpoint when you need to animate a static face image or existing video to match a specific audio track (or TTS-generated speech), especially when you want multiple lip-sync engine options (AutoLipSync, SyncLipSync, KlingAvatar, etc.) to trade off quality and speed. Prefer this over text-to-video endpoints when the core requirement is accurate mouth/lip synchronization rather than full scene generation.

## Known failure modes

- Invalid or inaccessible image_url/video_url/audio_url — returns an error if the URL is unreachable or not a supported format
- Neither audio_url nor prompt provided — request lacks audio input
- Neither image_url nor video_url provided — no visual input supplied
- Unsupported option value — returns validation error if option string is not one of the allowed enum values
- Insufficient credits — returns 402 Payment Required if account balance is too low
- Timeout on synchronous mode for long audio — long jobs may time out; async_mode recommended
- Webhook delivery failure — if webhook_url is unreachable, notification is lost but job may still complete

## How this service works

Lip-sync using URLs only.

**Provide:**
- Visual: **`image_url`** and/or **`video_url`**
- Audio: **`audio_url`**, **or** **`prompt`** + **`voice`** for TTS

**`option`:** `AutoLipSync`, `SyncLipSync`, `HummingBird`, `NewportLipSync`, `KlingAvatar`, `PVideo`, `NewportDreamAvatar`

```python
import requests

r = requests.post(
    "https://api.vimmerse.net/v2/video/lip-sync",
    headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "image_url": "https://…/face.png",
        "audio_url": "https://…/speech.mp3",
        "option": "AutoLipSync",
        "async_mode": True,
    },
    timeout=60,
)
print(r.json())
```

## Output

Returns a job or asset ID (in async mode) that can be polled via the Get Asset endpoint until the lip-synced video is ready, or returns the completed video asset details and URL directly if run synchronously.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "LipSyncRequest",
 "properties": {
  "voice": {
   "type": "string",
   "title": "Narrator voice",
   "default": "AutoV"
  },
  "option": {
   "type": "string",
   "title": "Option",
   "default": "AutoLipSync",
   "description": "`AutoLipSync`, `SyncLipSync`, `HummingBird`, `NewportLipSync`, `KlingAvatar`, `PVideo`, `NewportDreamAvatar`."
  },
  "prompt": {
   "type": "string",
   "title": "Prompt",
   "default": "",
   "description": "Speech prompt when generating audio from text."
  },
  "audio_url": {
   "type": "string",
   "title": "Audio URL",
   "default": ""
  },
  "image_url": {
   "type": "string",
   "title": "Image URL",
   "default": ""
  },
  "video_url": {
   "type": "string",
   "title": "Video URL",
   "default": ""
  },
  "async_mode": {
   "type": "boolean",
   "title": "Async Mode",
   "default": false
  },
  "webhook_url": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Webhook URL"
  },
  "audio_duration": {
   "anyOf": [
    {
     "type": "number"
    },
    {
     "type": "null"
    }
   ],
   "title": "Audio duration (seconds)"
  },
  "video_duration": {
   "anyOf": [
    {
     "type": "number"
    },
    {
     "type": "null"
    }
   ],
   "title": "Video duration (seconds)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-vimmerse-net-vimmerse-lip-sync-video-81c35bce/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.vimmerse.net](https://www.zero.xyz/host/agents.vimmerse.net/llms.txt)
