How Webhooks Fit Into Notifications
A webhook subscribes to one or more notification type keys. When a matching event is produced and the webhook channel is enabled for that notification type, Vast.ai sends a signedPOST request to your webhook URL.
Subscribing a webhook to an event automatically turns on the webhook channel for that event in your notification preferences.
Create a Webhook in the Console
- Open Account Settings.
- Go to Notification Settings.
- Select the notification events you want to send to a webhook.
- Click Create webhook.
- Enter a webhook name and an HTTPS URL.
- Click Create, then click Save on the notification settings form.

Create webhook
Manage Webhooks With the API
This guide covers the delivery behavior you need to integrate safely — signing, retries, limits, and the receiver pattern. The API calls themselves (request bodies, response schemas, status codes) are documented in the API reference:The test endpoint sends a
webhook_test event with the same request format and signature headers as a real delivery. It is not retried.Webhook Limits and Validation
Use full notification type keys such as
client:low_credit and client:outbid. Because a similar event can exist for both renters and hosts, the full key — including its client: or host: prefix — avoids ambiguity. Host webhooks use host: keys, documented in Host Notifications.
Event Payload
Vast.ai sends a JSONPOST request:
The payload’s
notif_type is the short slug (for example low_credit), without the client: or host: context prefix used in subscription keys. If you subscribe one webhook to both a client: and a host: variant of the same event, use a dedicated webhook per context to tell them apart reliably.The payload’s
timestamp remains a floating-point event timestamp. Signature verification uses the integer timestamp from X-Vast-Timestamp.Verify Signatures
Verify every request before acting on it. Vast.ai signs the exact request body with yourwebhook_secret.
The signature input is:
Retry Behavior
Return a2xx status only once you have safely accepted the event — that is, verified the signature and enqueued it.
Webhook delivery uses a 10 second request timeout. Design receivers to do minimal work in the request path: verify the signature, enqueue the event, return
2xx, then process asynchronously.
Recommended Receiver Pattern
- Require
POST. - Read the raw request body.
- Verify
X-Vast-Signature-256. - Reject stale timestamps.
- Deduplicate by
event_id. - Enqueue the event in your own system.
- Return
204or another2xxresponse quickly.