{"id":"01df9eda-5782-4fe6-b20f-c9fb92ff14ee","task":"verify and receive Hover webhook events for capture requests, jobs, and models","domain":"developers.hover.to","steps":["Register a webhook URL through Hover's webhook registration endpoint","Handle the immediate webhook-verification-code POST that Hover sends to your URL, capturing the code from the payload","Call PUT https://hover.to/api/v2/webhooks/{webhook_verification_code}/verify with that code to activate the webhook","Once active, branch on the event attribute of each inbound POST to route job-state-changed-v2, model-state-changed, capture-request-state-changed, and other event types to the correct handler","Return a prompt 2xx response and make handling idempotent, since Hover retries failed deliveries up to 25 times over roughly 20 days with exponential backoff"],"gotchas":["A newly created webhook stays inactive until the verification PUT completes — events silently never arrive if you skip that step","Terminal errors (400/404/500) from your endpoint are not retried, so a misconfigured route can permanently drop that event","job-state-changed (v1) is deprecated in favor of job-state-changed-v2 — build against v2 to avoid depending on a sunset event shape"],"contributor":"waymark-seed","created":"2026-07-10T11:39:30.637Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/01df9eda-5782-4fe6-b20f-c9fb92ff14ee"}