# PagerDuty

> On-call paging for the client's own team. It calls, waits for an acknowledgement, escalates, and turns fifty events from one fire into one incident.

- Verdict: Use when it fits (Proposed: research-backed, not yet confirmed by Nic)
- Vendor: PagerDuty
- Layer: [Observability](https://cloudlesslabs.com/stack/layers/observability/index.md). Job: On-call paging
- Last reviewed: 24 October 2026, by Nicolas Dao (Cloudless Labs, Sydney)
- Web page: https://cloudlesslabs.com/stack/pagerduty/. The whole stack in one file: https://cloudlesslabs.com/stack/brief.md

I haven't run PagerDuty in production. This is the pick from comparing six on-call services for alerts that must reach a person within a minute.

The comparison came down to three things: phone calls to Australian numbers with acknowledgement by keypress, an API that merges duplicate events (dedup_key), and a track record long enough to trust at 2 am. PagerDuty has all three, plus official Terraform and Pulumi providers. At about $250 a month for ten people, the price is a rounding error next to a missed alarm.

The alternative is incident.io: Australia fully supported, a published 99.99% on-call commitment, about $200 a month for ten, and the better fit for a team that lives in Slack. The others fell away on one point each: Better Stack's API has no deduplication key, Rootly takes 50 alerts a minute by default, Jira Service Management only calls on its Premium plan, and Opsgenie is shutting down.

Its limit is who it calls: seats, not the public. When the people to wake are site managers or customers, the calls go through Twilio and the escalation lives in your code.

## Use it when

- The client's own operations team (a handful to about 15 people) must be phoned at any hour, with rotas and escalation.
- One incident sends many events (a fire trips several detectors): the Events API's dedup_key merges them into one incident.
- Acknowledgement has to be on record: who acknowledged, how, and when.

## Don't use it when

- Calling people who aren't seats (site managers, the client's customers): PagerDuty only pages users; stakeholders get status updates, not calls. Use Twilio.
- Data must stay in Australia: PagerDuty runs in the US or the EU only.

## Pricing

Professional: $21 per user a month billed annually, $25 monthly, so about $210–250 a month for 10 responders. Calls and SMS to Australia are included on paid plans. The free plan stops at 5 users and 100 calls or texts a month.

## Gotchas, with fixes

- **Gotcha:** Without a dedup_key, every event opens its own incident: one fire, fifty calls.
  **Fix:** Set dedup_key to what makes the incident one (the site and the hazard, for example), and resolve with the same key.
- **Gotcha:** Bursts of events can get HTTP 429 from the Events API.
  **Fix:** Send from your own alarm queue, so a throttled event is retried with backoff instead of lost.
- **Gotcha:** SMS replies aren't supported for Australian numbers.
  **Fix:** Acknowledge by pressing a key on the call, or in the app.
- **Gotcha:** Inheriting Opsgenie? Atlassian stopped selling it in June 2025 and shuts it down on 5 April 2027.
  **Fix:** Plan the move now, to PagerDuty or to Atlassian's replacement.

## Provisioning

Official Pulumi package · Official Terraform provider

@pulumi/pagerduty: services, escalation policies, schedules and integrations, kept next to the rest of the stack.

## Instead, consider

- [Twilio](https://cloudlesslabs.com/stack/twilio/index.md): The people called aren't seats, or the client wants the escalation logic in its own code.

## Worked examples

- [A fire alarm at 2:14 am](https://cloudlesslabs.com/stack/guides/fire-alarm/index.md): A detector smells smoke at night. How does a person know within a minute?

## Where it fits

- [Alerts that must wake someone up](https://cloudlesslabs.com/stack/use-cases/critical-alerts/index.md): pick 4. When the client's own on-call team is called: escalation, deduplication and the acknowledgement record built in.

## Sources

- [PagerDuty: Events API v2 (dedup_key)](https://docs.pagerduty.com/developer/events-api-v2-overview)
- [PagerDuty: supported countries for calls and SMS](https://docs.pagerduty.com/incident-management/notifications/supported-countries)
- [PagerDuty: pricing](https://www.pagerduty.com/pricing/incident-management/)
- [PagerDuty: service regions (US, EU)](https://support.pagerduty.com/docs/service-regions)
- [incident.io: pricing](https://incident.io/pricing)
- [Opsgenie end of sale and shutdown](https://www.adaptavist.com/blog/atlassian-opsgenie-availability-changes-effective-june-4-2025)

## Related

- [Observability](https://cloudlesslabs.com/stack/layers/observability/index.md): every tool in this layer, with its verdict
- [The whole stack in one file](https://cloudlesslabs.com/stack/brief.md): every use case and tool, for questions that span many
- [Map of every Markdown file on cloudlesslabs.com, with what each one answers](https://ask.cloudlesslabs.com)
