Overview
Webhooks let Dyva push events to your server in real-time. Instead of polling the API for changes, you register a URL and Dyva sends HTTP POST requests whenever specified events occur.
Setting Up Webhooks
- Go to Settings → API → Webhooks
- Click Add Webhook
- Enter your endpoint URL (must be HTTPS)
- Select the events you want to receive
- Save: Dyva sends a test ping to verify your endpoint is reachable
Available Events
message.created: a new message was sent in any conversationmessage.updated: a message was editedconversation.created: a new conversation was startedconversation.deleted: a conversation was deletedcharacter.updated: a character's settings were changedcharacter.published: a character was published to the marketplacememory.created: a new memory was stored for a uservoice.session.started/voice.session.ended: voice session lifecycle events
Payload Verification
Every webhook payload is signed with a shared secret (provided when you create the webhook). Verify the X-Dyva-Signature header to ensure the request is genuine and has not been tampered with.
The signature is an HMAC-SHA256 hash of the raw request body using your webhook secret as the key.
Retry Policy
If your endpoint returns a non-2xx status code or times out (10-second limit), Dyva retries:
- 3 retries with exponential backoff (10s, 60s, 300s)
- After all retries fail, the event is marked as failed
- 10 consecutive failures automatically disable the webhook: you will receive an email notification
Re-enable disabled webhooks from Settings → API → Webhooks.
Full documentation is in Build.