APIBreak

What PagerDuty changed, 29 April 2026 to 21 October 2026

419 operations became 473. None were removed, 0 were newly deprecated, 54 were added, and 45 request fields became required.

Read from PagerDuty/api-schema at 3d6c3c4 and 87beced (version 2.0.0). Generated 31 October 2026 by the specification parser the APIBreak Action uses, applied to PagerDuty's published specification.

PagerDuty publishes its API descriptions in PagerDuty/api-schema. This page reads the REST API file, reference/REST/openapiv3.json, not the Events API or integration files beside it. Version policy and shutdown dates are not in the specification, so this page does not state them; it reads the deprecated flag on each operation.

Removed from the specification

Nothing was removed in this window. That is a real result, not a gap in the check.

Newly deprecated in this window

A deprecation is the notice period. It is the cheapest moment to act and the easiest one to miss. This list compares operations present at the baseline.

No compared operation (one paired with a baseline operation) gained the deprecated flag in this window.

Deprecated as of the current specification (14)

Everything the vendor currently marks deprecated, whether or not it changed recently. The vendor has flagged each of these for possible removal, with or without a date attached.

  • DELETE /incidents/custom_fields/{field_id}
  • DELETE /incidents/custom_fields/{field_id}/field_options/{field_option_id}
  • DELETE /users/{id}/sessions
  • DELETE /users/{id}/sessions/{type}/{session_id}
  • GET /incidents/custom_fields
  • GET /incidents/custom_fields/{field_id}
  • GET /incidents/custom_fields/{field_id}/field_options
  • GET /oauth_delegations/revocation_requests/status
  • GET /users/{id}/sessions
  • GET /users/{id}/sessions/{type}/{session_id}
  • POST /incidents/custom_fields
  • POST /incidents/custom_fields/{field_id}/field_options
  • PUT /incidents/custom_fields/{field_id}
  • PUT /incidents/custom_fields/{field_id}/field_options/{field_option_id}

Entries without a link were already marked deprecated at 3d6c3c4 · 29 April 2026, the baseline compared here.

Request fields removed from the specification

The current specification no longer lists these request fields, which the baseline did. A caller that still sends one is sending a parameter the new version does not define; whether PagerDuty rejects or ignores it at runtime is not something a specification diff can show, and what it means for an integration depends on how PagerDuty versions — see the note at the top of this page.

  • POST /status_pages/{id}/posts no longer lists post.updates[].post (application/json)

Request fields that became required

Only JSON request bodies are compared. A top-level field applies whenever the operation is sent a JSON body. A nested field applies only inside each object containing it that is sent (for an array, each element), so a caller that never sends that object, or sends an empty array, is not affected.

  • POST /status_pages/{id}/posts — now requires post.status_page.type when post.status_page is sent
  • POST /status_pages/{id}/posts — now requires post.updates[].impacted_services[].impact in each element of post.updates[].impacted_services sent
  • POST /status_pages/{id}/posts — now requires post.updates[].impacted_services[].impact.id when post.updates[].impacted_services[].impact is sent
  • POST /status_pages/{id}/posts — now requires post.updates[].impacted_services[].impact.type when post.updates[].impacted_services[].impact is sent
  • POST /status_pages/{id}/posts — now requires post.updates[].impacted_services[].service in each element of post.updates[].impacted_services sent
  • POST /status_pages/{id}/posts — now requires post.updates[].impacted_services[].service.id when post.updates[].impacted_services[].service is sent
  • POST /status_pages/{id}/posts — now requires post.updates[].impacted_services[].service.type when post.updates[].impacted_services[].service is sent
  • POST /status_pages/{id}/posts — now requires post.updates[].severity.type when post.updates[].severity is sent
  • POST /status_pages/{id}/posts — now requires post.updates[].status.type when post.updates[].status is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.impacted_services[].impact in each element of post_update.impacted_services sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.impacted_services[].impact.id when post_update.impacted_services[].impact is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.impacted_services[].impact.type when post_update.impacted_services[].impact is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.impacted_services[].service in each element of post_update.impacted_services sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.impacted_services[].service.id when post_update.impacted_services[].service is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.impacted_services[].service.type when post_update.impacted_services[].service is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.post.type when post_update.post is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.severity.type when post_update.severity is sent
  • POST /status_pages/{id}/posts/{post_id}/post_updates — now requires post_update.status.type when post_update.status is sent
  • POST /status_pages/{id}/subscriptions — now requires subscription.status_page.type when subscription.status_page is sent
  • PUT /status_pages/{id}/posts/{post_id} — now requires post.status_page.type when post.status_page is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.impacted_services[].impact in each element of post_update.impacted_services sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.impacted_services[].impact.id when post_update.impacted_services[].impact is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.impacted_services[].impact.type when post_update.impacted_services[].impact is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.impacted_services[].service in each element of post_update.impacted_services sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.impacted_services[].service.id when post_update.impacted_services[].service is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.impacted_services[].service.type when post_update.impacted_services[].service is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.post.type when post_update.post is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.severity.type when post_update.severity is sent
  • PUT /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id} — now requires post_update.status.type when post_update.status is sent
  • PUT /status_pages/{id}/posts/{post_id}/postmortem — now requires postmortem.post.type when postmortem.post is sent
  • PUT /v3/schedules/{id} — now requires schedule.time_zone when schedule is sent
  • PUT /v3/schedules/{id}/custom_shifts/{custom_shift_id} — now requires custom_shift.assignments when custom_shift is sent
  • PUT /v3/schedules/{id}/custom_shifts/{custom_shift_id} — now requires custom_shift.end_time when custom_shift is sent
  • PUT /v3/schedules/{id}/custom_shifts/{custom_shift_id} — now requires custom_shift.start_time when custom_shift is sent
  • PUT /v3/schedules/{id}/custom_shifts/{custom_shift_id} — now requires custom_shift.type when custom_shift is sent
  • PUT /v3/schedules/{id}/overrides/{override_id} — now requires override.end_time when override is sent
  • PUT /v3/schedules/{id}/overrides/{override_id} — now requires override.overriding_member when override is sent
  • PUT /v3/schedules/{id}/overrides/{override_id} — now requires override.start_time when override is sent
  • PUT /v3/schedules/{id}/overrides/{override_id} — now requires override.type when override is sent
  • PUT /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id} — now requires event.assignment_strategy when event is sent
  • PUT /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id} — now requires event.effective_since when event is sent
  • PUT /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id} — now requires event.end_time when event is sent
  • PUT /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id} — now requires event.name when event is sent
  • PUT /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id} — now requires event.recurrence when event is sent
  • PUT /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id} — now requires event.start_time when event is sent

PagerDuty API questions

Every answer below is computed from the snapshot above, and each links to the PagerDuty specification it was read from.

Which PagerDuty API endpoints were removed recently?
None between 29 April 2026 and 21 October 2026, in reference/REST/openapiv3.json in PagerDuty/api-schema. It went from 419 to 473 operations in that window, and every operation present at the start was still there at the end, at the same URL.
Source: PagerDuty/api-schema, the two commits compared
Which PagerDuty API endpoints are deprecated?
As of 21 October 2026, reference/REST/openapiv3.json in PagerDuty/api-schema marks 14 operations deprecated: DELETE /incidents/custom_fields/{field_id}, DELETE /incidents/custom_fields/{field_id}/field_options/{field_option_id}, DELETE /users/{id}/sessions, DELETE /users/{id}/sessions/{type}/{session_id}, GET /incidents/custom_fields, GET /incidents/custom_fields/{field_id}, GET /incidents/custom_fields/{field_id}/field_options, GET /oauth_delegations/revocation_requests/status and 6 more (all listed above). No compared operation (one the comparison paired with a baseline operation) gained the deprecated flag between 29 April 2026 and 21 October 2026. 14 were already deprecated at the baseline.
Source: PagerDuty/api-schema, the two commits compared
Did any PagerDuty API request fields become required?
45 JSON request fields became required between 29 April 2026 and 21 October 2026: post.status_page.type on POST /status_pages/{id}/posts, post.updates[].impacted_services[].impact on POST /status_pages/{id}/posts, post.updates[].impacted_services[].impact.id on POST /status_pages/{id}/posts, post.updates[].impacted_services[].impact.type on POST /status_pages/{id}/posts, post.updates[].impacted_services[].service on POST /status_pages/{id}/posts, post.updates[].impacted_services[].service.id on POST /status_pages/{id}/posts, post.updates[].impacted_services[].service.type on POST /status_pages/{id}/posts, post.updates[].severity.type on POST /status_pages/{id}/posts and 37 more (all listed above). All are nested, so each applies only inside each object containing it (the part before the last dot; for an array, each element) that a JSON request body sends: such an object sent without the field no longer matches the current specification, and a body that omits the object, or sends an empty array, is unaffected.
Source: PagerDuty/api-schema, the two commits compared
Where is the PagerDuty OpenAPI specification?
In the PagerDuty/api-schema repository on GitHub. This page reads reference/REST/openapiv3.json at commit 87beced (version 2.0.0), dated 21 October 2026.
Source: PagerDuty/api-schema on GitHub

The Action does not check PagerDuty yet

It checks GitHub REST and Stripe. If you want your CI to check the PagerDuty endpoints you call, say so in an issue, because requests like that decide which vendor the Action should support next.

a real report

API changes at other vendors

See every vendor