Skip to main content

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 — the create-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 webhookWith webhook
You only get taskId from create-asyncYou receive full deliverables in the POST body
You must poll GET /openapi/v1/tasks/detailYour server is notified when work completes
For production async integrations, configure a webhook before calling *-create-async endpoints.

Configuration

On API Configuration on vmeg.ai (sign in if needed):
  1. Set your Webhook URL (HTTPS recommended).
  2. 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.
Test connectivity from the same page when available.

Receiver requirements

Your endpoint must:
  1. Return 2xx quickly (within a few seconds). Offload heavy work to a queue or background worker.
  2. Verify signatures on the raw request body — see Webhook verification.
  3. Deduplicate by pipelineKey in the JSON body. Retries for the same async completion reuse the same pipelineKey — see Webhook request body. Return 2xx without repeating side effects if you already processed that key.
If you return a non-2xx status or time out, VMEG retries with backoff.

Webhook payload

When a task finishes, the POST JSON includes an event 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.