Documentation Index
Fetch the complete documentation index at: https://docs.vibepeak.ai/llms.txt
Use this file to discover all available pages before exploring further.
Webhooks
Webhooks provide real-time notifications when your video generation tasks complete. Instead of polling the API, your server receives an HTTP POST request when the task finishes.Setting Up Webhooks
Include awebhook_url in your slideshow request:
Webhook Payload
When a task completes (successfully or with an error), VibePeak sends a POST request to your webhook URL:Successful Completion
Failed Task
Every webhook payload includes a boolean
livemode field — true for tasks created with a vpk_live_ key, false for tasks created with a vpk_test_ sandbox key. Branch on it in your handler if you need different behavior for sandbox traffic (e.g. skip downstream billing or storage). See Test Mode for the full sandbox lifecycle.Webhook Headers
Each webhook request includes the following headers:| Header | Description |
|---|---|
Content-Type | application/json |
X-VibePeak-Signature | HMAC-SHA256 signature for verification |
X-VibePeak-Timestamp | Unix timestamp when the webhook was sent |
X-VibePeak-Event | Event type (task.completed or task.failed) |
Webhook Secret
Each API key has an associated webhook secret used for signing webhook payloads. You can find your webhook secret in the VibePeak Dashboard under your API key settings.Your webhook secret is displayed only once when you create an API key. Store it securely - if you lose it, you’ll need to regenerate your API key.
Verifying Webhooks
Webhooks are signed using HMAC-SHA256 with your webhook secret. Verify the signature before processing:Webhook Requirements
Your webhook endpoint must:HTTPS Only
Webhook URLs must use HTTPS for security
Respond Quickly
Return a 2xx response within 30 seconds
Be Idempotent
Handle duplicate deliveries gracefully
Publicly Accessible
Be reachable from the internet
Retry Policy
If your webhook endpoint fails to respond with a 2xx status code, VibePeak will retry the delivery with exponential backoff:| Attempt | Delay |
|---|---|
| 1st retry | 1 second |
| 2nd retry | 2 seconds |
| 3rd retry | 4 seconds |
/v1/tasks/{taskId}.
Testing Webhooks
For local development, use a tunneling service like ngrok:Best Practices
- Return quickly - Acknowledge receipt with a 200 response before processing
- Use a queue - Process webhook payloads asynchronously
- Store the task_id - Always log the task_id for debugging
- Handle duplicates - Use the task_id to deduplicate events
- Verify signatures - Always validate the webhook signature
- Download promptly - Video URLs expire after 7 days

