v10

latestOpenAPI 3.1.02026-08-0375143791.1 KB
Monitors

Monitor run completed

Sent to a monitor's configured webhook URL after every completed run when the webhook subscribes to the run.completed event — including runs that detected no change, as confirmation the monitor ran. When a change was detected it is embedded in the payload. Return any 2xx response to acknowledge the delivery.

postWebhookmonitorRunCompleted

Headers

User-Agentstring required
Example:Context.dev-Webhooks/1.0

Identifies the Context.dev webhook sender.

X-Context-Event'run.completed' required

Event type for this delivery.

X-Context-Idstring required
Example:evt_123

Unique event ID. Matches the top-level id field in the request body.

X-Context-Signaturestring
Example:t=1783620012,v1=087d98aada1e39f9d24d65951f51e672da12b2f9ea1c02c7c8c5ef254f5d4068

HMAC signature in the form t=<unix>,v1=<hmac>. The HMAC is SHA-256 over "{t}.{rawRequestBody}", keyed with the monitor webhook secret. Verify the unmodified request body with a constant-time comparison and reject stale timestamps.

Payload

event'run.completed' required
idstring required
created_atstring date-time required

Example payload

{
  "id": "evt_123",
  "created_at": "2026-07-09T18:00:12.000Z",
  "data": {
    "run": {
      "id": "run_123",
      "monitor_id": "mon_123"
    },
    "change": {
      "id": "chg_123",
      "monitor_id": "mon_123",
      "run_id": "run_123",
      "title": "Acme pricing page changed",
      "summary": "The visible text on the page changed.",
      "tags": [
        "pricing",
        "competitor"
      ]
    }
  }
}

Response

Webhook accepted.