Skip to main content

What gets delivered

When a video you queued via /v1/video/queue or /v1/video/motion-control reaches a terminal state, we POST to your registered URL with the result. Two events:

Setup

  1. Go to dolphy.chat/settings/api-keys
  2. Click your API key → “Configure webhook”
  3. Paste an https:// URL we should POST to
  4. Copy the webhook secret (shown ONCE) — you’ll use it to verify signatures
You can also configure via the API:

Payload shape

For failures:

Headers we send

Verifying signatures

Always verify before processing — don’t trust the request body otherwise. HMAC-SHA256 of <timestamp>.<rawBody> with your secret should match v1.

Retry behavior

If your endpoint returns non-2xx (or times out at 10s), we retry:
  1. Attempt 1 — immediately
  2. Attempt 2 — after 5 seconds
  3. Attempt 3 — after 25 more seconds
After 3 failed attempts we give up. The delivery is logged in our internal webhookDeliveries so you can see the response body / status in support if needed.

Idempotency

Same id is used across all retries of a single event. Dedupe by id in your handler — we may legitimately retry up to 3 times if your endpoint had a hiccup, and we don’t want you to double-process.

Rotating the secret

Returns the new secret once. Any in-flight retries continue using the old secret (we cache it on the delivery doc). New events use the new secret.

Disabling webhooks

Clears both the URL and the secret. You’ll go back to polling /v1/video/retrieve.