{
"event": "run.completed",
"id": "evt_123",
"created_at": "2026-07-09T18:00:12.000Z",
"data": {
"run": {
"id": "run_123",
"monitor_id": "mon_123",
"status": "completed",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"change_detected": false,
"change_id": null,
"baseline_created": true
},
"change": {
"mode": "web",
"id": "chg_123",
"monitor_id": "mon_123",
"run_id": "run_123",
"title": "Acme pricing page changed",
"summary": "The visible text on the page changed.",
"detected_at": "2023-11-07T05:31:56Z",
"url": "<string>",
"tags": [
"pricing",
"competitor"
],
"confidence": 0.5,
"diff": "<string>",
"before_text_excerpt": "<string>",
"after_text_excerpt": "<string>",
"added_urls": [
"<string>"
],
"removed_urls": [
"<string>"
],
"added_url_count": 1,
"removed_url_count": 1,
"matched_urls": [
"<string>"
],
"matched_url_count": 1,
"evidence": [
{
"before": "<string>",
"after": "<string>",
"url": "<string>"
}
]
}
}
}Receive run.completed events
Receive a signed monitor event.
{
"event": "run.completed",
"id": "evt_123",
"created_at": "2026-07-09T18:00:12.000Z",
"data": {
"run": {
"id": "run_123",
"monitor_id": "mon_123",
"status": "completed",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"change_detected": false,
"change_id": null,
"baseline_created": true
},
"change": {
"mode": "web",
"id": "chg_123",
"monitor_id": "mon_123",
"run_id": "run_123",
"title": "Acme pricing page changed",
"summary": "The visible text on the page changed.",
"detected_at": "2023-11-07T05:31:56Z",
"url": "<string>",
"tags": [
"pricing",
"competitor"
],
"confidence": 0.5,
"diff": "<string>",
"before_text_excerpt": "<string>",
"after_text_excerpt": "<string>",
"added_urls": [
"<string>"
],
"removed_urls": [
"<string>"
],
"added_url_count": 1,
"removed_url_count": 1,
"matched_urls": [
"<string>"
],
"matched_url_count": 1,
"evidence": [
{
"before": "<string>",
"after": "<string>",
"url": "<string>"
}
]
}
}
}Headers
Identifies the Context.dev webhook sender.
"Context.dev-Webhooks/1.0"
Event type for this delivery.
run.completed Unique event ID. Matches the top-level id field in the request body.
"evt_123"
Delivery ID for status checks and retries.
"whd_0123456789abcdef0123456789abcdef"
Attempt number, starting at 1.
x >= 1t=<unix>,v1=<hmac>: SHA-256 HMAC of t.rawRequestBody, keyed with the webhook secret. Verify with a constant-time comparison and reject stale timestamps.
"t=1783620012,v1=087d98aada1e39f9d24d65951f51e672da12b2f9ea1c02c7c8c5ef254f5d4068"
Body
Payload sent after every completed run when the monitor's webhook subscribes to run.completed. A run with change_detected: false is a confirmation that the monitor ran and found no change.
Response
Webhook accepted.
Was this page helpful?