Skip to main content

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

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.