Documentation Index
Fetch the complete documentation index at: https://docs.vmeg.ai/llms.txt
Use this file to discover all available pages before exploring further.
What webhooks are
When an async task finishes (TTS, text translation, voice clone, or media translation), VMEG sends an HTTP POST to a URL you configure. This is how you receive task results — thecreate-async HTTP response only confirms acceptance (taskId, etc.).
Webhooks are the delivery mechanism for async outcomes, not a separate product.
Why you need them
| Without webhook | With webhook |
|---|---|
You only get taskId from create-async | You receive full deliverables in the POST body |
You must poll GET /openapi/v1/tasks/detail | Your server is notified when work completes |
*-create-async endpoints.
Configuration
On API Configuration on vmeg.ai (sign in if needed):- Set your Webhook URL (HTTPS recommended).
- After you save the URL, VMEG generates a Webhook Secret and displays it on the same page. Copy it for signature verification — you do not set the secret yourself.
Receiver requirements
Your endpoint must:- Return 2xx quickly (within a few seconds). Offload heavy work to a queue or background worker.
- Verify signatures on the raw request body — see Webhook verification.
- Deduplicate by
pipelineKeyin the JSON body. Retries for the same async completion reuse the samepipelineKey— see Webhook request body. Return 2xx without repeating side effects if you already processed that key.
Webhook payload
When a task finishes, the POST JSON includes anevent field (for example openapi-tts) so you know which product completed. See the event table and envelope in Webhook request body.
Per-product field definitions are under Callbacks on each create-async page in API reference.
Related
- Idempotency — required on all mutating POST requests (including
create-async) - Products overview — sync vs async by product

