POST that HydraDB sends to your endpoint when ingested content reaches a terminal indexing state, completed or errored, so you do not have to poll Ingestion Status. One webhook is registered per workspace, for the indexing.status_changed event. The Webhooks guide covers the payload, signature verification, and receiver examples.
Endpoints
Set up the webhook:- Register Webhook:
POST /webhooks/indexingregisters your endpoint, or replaces the current registration. Sendgenerate_signing_secret: trueto get a signing secret in the same call. - Send Test Delivery:
POST /webhooks/indexing/testsends a synthetic, signed payload to confirm your endpoint and your signature check work. - Get Webhook:
GET /webhooks/indexingreads the current registration and whether a signing secret is set.
- List Deliveries:
GET /webhooks/indexing/deliverieslists delivery attempts, most recent first. Filter bystatusto find failures. - Get Delivery:
GET /webhooks/indexing/deliveries/{delivery_id}reads one delivery, using the id from theX-HydraDB-Delivery-IDheader. - Retry Delivery:
POST /webhooks/indexing/deliveries/{delivery_id}/retryqueues afailedorpermanently_faileddelivery for another attempt.
POST /webhooks/indexing/signing-secretgenerates a new signing secret, or stores one you supply. The secret is returned once and takes effect immediately, so rotate only once your receiver accepts the new one.DELETE /webhooks/indexing/signing-secretturns signing off. It is the only way to; editing the registration never clears the secret.- Delete Webhook:
DELETE /webhooks/indexingremoves the registration and its signing secret.
Typical call sequence
POST /webhooks/indexingwith your HTTPS endpoint andgenerate_signing_secret: true. Store the secret it returns.POST /webhooks/indexing/testto check your receiver accepts the delivery and verifies the signature.- Ingest content as usual. Each item that finishes indexing produces one delivery.
GET /webhooks/indexing/deliveries?status=failedto find deliveries your endpoint rejected, then retry them once the problem is fixed.
Delivery and retries
Each delivery carries the event in its body and anX-HydraDB-Delivery-ID header; with signing on, it also carries an X-HydraDB-Signature header. A failed delivery is retried with exponential backoff until it succeeds. On HydraDB Cloud it is marked permanently_failed after 16 attempts, or 48 hours after the first failure, whichever comes first. A retry, automatic or manual, is signed with your current secret. Test deliveries do not appear in the delivery history.
Your endpoint must be reachable over public HTTPS; localhost and private network addresses are rejected.
Related Resources
- Webhooks guide: payload fields, signature verification, receiver examples, and secret rotation
- Ingestion Status: polling instead of a webhook
- Ingest Context: the ingestion that produces deliveries
