Home Service Data

Products · Webhooks

Act when data publishes, not on the next cron.

Get signed dataset.version.published events, verify the payload, then pull sync deltas with the cursor your handler already needs.

Webhook delivery

signed

Event

dataset.version.published

finance_fees · v43 · 12 changed rows

Attempts

After delivery

GET /api/v1/sync/changes?dataset=finance_fees

Webhook outputs built for sync pipelines

Signed events, delivery history, and cursor-ready pull URLs.

{
  "type": "dataset.version.published",
  "payload": {
    "dataset_key": "finance_fees",
    "cursor": "finance_fees:v43:…"
  }
}

Signed event

Verify HMAC signatures before you act on the payload.

attempt

delivered

retry

backoff

replay

available

Delivery attempts

Inspect retries, timeouts, and replay from the dashboard.

Pull deltas after the event

pull_deltas_url · cursor advanced

Use the signed event to trigger a sync pull. Webhooks notify; sync applies the changed rows.

Pull deltas

Fetch sync changes with the cursor from the event.

Verify the signature. Pull the delta.

Webhooks notify your receiver when a dataset version publishes. Your handler verifies the HMAC, then uses pull_deltas_url (or a snapshot URL) to apply changes, without inventing a separate dispatch API.

Request production access
Sample webhook payload
{
  "id": "evt_...",
  "type": "dataset.version.published",
  "payload": {
    "dataset_key": "finance_fees",
    "version_number": 43,
    "cursor": "finance_fees:v43:...",
    "changed_row_count": 12,
    "pull_deltas_url": "https://homeservicedata.org/api/v1/sync/changes?dataset=finance_fees&since=..."
  },
  "deliveryId": "del_..."
}
dataset.version.publishedsignatureidempotencydeliveryreplaycursor

Endpoint registration may be enabled by your account team while access is provisioned. Once configured, the dashboard provides delivery history and replay for signed attempts.

Frequently Asked Questions

Need clarity? Start with these frequently asked questions.

Home Service Data currently publishes dataset.version.published when a new dataset version is recorded and made available through the sync API.

Act when data publishes
not on the next cron

Get started