dataset.version.published event to your registered endpoint. Your handler can immediately pull the delta and apply it — so your data is current within seconds of a lender updating their rate sheet or a new incentive program going live.
Event type
Home Service Data currently publishes one webhook event type:| Event | Trigger |
|---|---|
dataset.version.published | A new version of a dataset is recorded and made available via the sync API |
Webhook payload
Everydataset.version.published event delivers a JSON payload with the following shape:
Field reference
| Field | Type | Description |
|---|---|---|
dataset_key | string | The dataset that was updated (e.g. finance_fees) |
version_number | number | Monotonically increasing version counter for this dataset |
cursor | string | The new cursor representing this version |
previous_cursor | string | null | The cursor of the prior version; null on first publish |
changed_row_count | number | Number of individual record changes in this version |
row_count | number | Total records in the dataset after this publish |
quote_safe_count | number | Number of records currently marked quote_safe: true |
trade_category | string | null | Trade scope of the version, or null for cross-trade datasets |
published_at | string | ISO 8601 timestamp of the publish event |
pull_deltas_url | string | Pre-built URL to call for the delta since previous_cursor |
snapshot_url | string | Pre-built URL to call for a full snapshot of this dataset |
requires_snapshot | boolean | true when previous_cursor is null — signals you must fetch the full snapshot |
Using pull_deltas_url
The pull_deltas_url field is a ready-to-use URL that encodes exactly the delta between the previous version and the new one. Call it immediately after receiving the event to get only the records that changed — no need to calculate parameters manually.
When requires_snapshot is true, it means this is the first version ever published for the dataset (there is no previous cursor to delta from). In that case, use snapshot_url instead of pull_deltas_url to seed your local table.
Setting up your webhook endpoint
Create your handler endpoint
Deploy an HTTPS endpoint in your application that accepts
POST requests. The endpoint must return 200 OK within a few seconds or the delivery will be retried.Register the endpoint in the Dashboard
- Open the Dashboard and navigate to Settings → Webhooks.
- Click Add endpoint.
- Enter your HTTPS endpoint URL.
- Select the
dataset.version.publishedevent. - Click Save. The Dashboard will display a generated webhook secret.
Store the webhook secret
Copy the webhook secret shown in the Dashboard and store it as an environment variable (e.g.
HSD_WEBHOOK_SECRET). You will use it to verify incoming requests.Always verify the
x-webhook-secret header on every incoming request before processing the payload. Requests that do not include the correct secret should be rejected with a 401 or 403 response. Never trust the payload without this check.Retry behavior
If your endpoint returns a non-2xx status or does not respond within the timeout window, Home Service Data will retry the delivery using an exponential backoff schedule. Design your handler to be idempotent — receiving the same event twice should produce the same result as receiving it once.
Related guides
Sync Integration
Full step-by-step guide to snapshot seeding, cursor management, and applying delta changes.
CRM Integration
Connect dataset update events to CRM field enrichment and lead qualification workflows.