Create an Events API v2 integration on the target PagerDuty service in the PagerDuty UI and copy the resulting routing_key (integration key).
Send an alert trigger event with POST https://events.pagerduty.com/v2/enqueue (or https://events.eu.pagerduty.com/v2/enqueue for EU tenants) with Content-Type: application/json.
Structure the JSON body with routing_key, event_action: trigger, dedup_key (a stable unique ID for the alert to enable deduplication), payload.summary, payload.severity (critical/error/warning/info), and payload.source.
Acknowledge or resolve the alert programmatically by sending subsequent POSTs to the same enqueue endpoint with event_action: acknowledge or resolve and the same dedup_key.
Verify delivery by querying the PagerDuty REST API (v2) alerts endpoint or by observing the service alert list in the PagerDuty UI.
Known gotchas
The Events API v2 is asynchronous; a 202 Accepted response confirms only that the event was enqueued, not that an incident was created — verify via the REST API if you need immediate confirmation.
Omitting dedup_key causes PagerDuty to generate one randomly, making it impossible to later acknowledge or resolve the same alert programmatically.
Sending a resolve event for a dedup_key that has no open alert is silently ignored, not an error — design idempotent pipelines accordingly.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp