# API changelog

> Every change to the public API contract by date: new and removed operations, scopes, parameters, fields and status codes, generated from the OpenAPI history.

Source: https://upfour.io/docs/api/changelog

Every change to the public contract of `https://app.upfour.io/v1` since 2026-05-05, one line per operation and date. The lines are generated from the history of the [OpenAPI file](https://upfour.io/api/openapi.yaml), so they cannot drift from what the reference pages show. Also available as [JSON](https://upfour.io/api/changelog.json).

## What the labels mean

| breaking | Code written against the old contract can stop working. |
| --- | --- |
| added | Something new that nothing existing depends on. |
| changed | Behavior or contract changed in a way that is unlikely to break a client. |
| deprecated | Still works, marked for removal. |
| documented | The reference now describes something that already worked. Not counted as a change. |

## What counts as breaking

A change is labeled breaking when a request that was valid before can fail or mean something else, or a response loses something a client could rely on:

- An operation is removed.
- The required scope changes to a different one or a higher level (`report.read` to `report.write`). Keys that do not hold the new scope are refused. Moving to a lower level of the same scope is labeled changed.
- A request gains a required field, query parameter or body.
- A request field or parameter is removed, renamed, made required, changes type or stops accepting a value.
- A response field is removed, changes type or is no longer always present.
- The success status of an operation changes.

These are not breaking: new operations, new optional parameters and request fields, new response fields, new accepted values, and new error statuses. Clients should ignore response fields they do not know and treat the values of a response enum as an open set.

## Versioning

The contract states one policy. The right column is what the API does today, checked against the code by this site's tests.

| Topic | The contract says | The API does today |
| --- | --- | --- |
| **URL version** | The version is `/v1`. Additive changes land there. | Every operation is served under `/v1`. There is no other version. |
| **Breaking changes** | A breaking change needs `/v2` and 12 months of parallel support. | There is no `/v2`. 5 entries below are labeled breaking, the latest on 2026-10-30; all of them were made inside `/v1`. |
| **Deprecation** | Deprecations are announced with `Deprecation` and `Sunset` headers. | The API sends neither header. No operation is marked deprecated. A deprecation would show up here as a deprecated entry. |
| **`X-API-Version`** | The header pins compatible behavior; keys remember a default version. | The header is accepted, and a request that carries it is treated like an API-key request (cursor pagination, `{ "data": … }` envelope). Its value is not read. Each key stores an `api_version`, which [GET /me](https://upfour.io/docs/api/me#get_me) reports; no behavior varies with it. |

## History

65 entries on 23 dates, newest first.

### [2026-10-30](https://upfour.io/docs/api/changelog#d-2026-10-30)

- breaking
[GET /me](https://upfour.io/docs/api/me#get_me) Response field `key_version` removed.
- breaking
Response field `sandbox_parent_id` removed.
3 operations

  - [GET /organization](https://upfour.io/docs/api/organization#get_organization)
  - [POST /organization](https://upfour.io/docs/api/organization#post_organization)
  - [PUT /organization](https://upfour.io/docs/api/organization#put_organization)
- added
[GET /monitors/{monitorID}/domain-expiry](https://upfour.io/docs/api/monitors#get_monitors_monitorID_domain_expiry) Added. Requires the `monitor.read` scope.
- added
New optional request field `notify`.
3 operations

  - [POST /incidents](https://upfour.io/docs/api/incidents#post_incidents)
  - [POST /incidents/{incidentID}/comments](https://upfour.io/docs/api/incidents#post_incidents_incidentID_comments)
  - [POST /incidents/{incidentID}/updates](https://upfour.io/docs/api/incidents#post_incidents_incidentID_updates)
- added
Now accepts an optional request body.
6 operations

  - [POST /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#post_incidents_incidentID_acknowledge)
  - [POST /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#post_incidents_incidentID_reopen)
  - [POST /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#post_incidents_incidentID_resolve)
  - [PUT /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#put_incidents_incidentID_acknowledge)
  - [PUT /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#put_incidents_incidentID_reopen)
  - [PUT /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#put_incidents_incidentID_resolve)
- changed
Now documents the status `400`.
7 operations

  - [POST /incidents](https://upfour.io/docs/api/incidents#post_incidents)
  - [POST /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#post_incidents_incidentID_acknowledge)
  - [POST /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#post_incidents_incidentID_reopen)
  - [POST /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#post_incidents_incidentID_resolve)
  - [PUT /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#put_incidents_incidentID_acknowledge)
  - [PUT /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#put_incidents_incidentID_reopen)
  - [PUT /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#put_incidents_incidentID_resolve)
- changed
Response field `notification_deliveries[].reason_code` no longer returns `sandbox`.
11 operations

  - [GET /incidents/{incidentID}](https://upfour.io/docs/api/incidents#get_incidents_incidentID)
  - [POST /incidents](https://upfour.io/docs/api/incidents#post_incidents)
  - [POST /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#post_incidents_incidentID_acknowledge)
  - [POST /incidents/{incidentID}/comments](https://upfour.io/docs/api/incidents#post_incidents_incidentID_comments)
  - [POST /incidents/{incidentID}/escalate](https://upfour.io/docs/api/incidents#post_incidents_incidentID_escalate)
  - [POST /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#post_incidents_incidentID_reopen)
  - [POST /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#post_incidents_incidentID_resolve)
  - [POST /incidents/{incidentID}/updates](https://upfour.io/docs/api/incidents#post_incidents_incidentID_updates)
  - [PUT /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#put_incidents_incidentID_acknowledge)
  - [PUT /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#put_incidents_incidentID_reopen)
  - [PUT /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#put_incidents_incidentID_resolve)
- documented
Request and response fields are now documented for 6 operations. This describes behavior that already existed and is not counted as a change.
Areas: [Incidents](https://upfour.io/docs/api/incidents.md)

### [2026-10-27](https://upfour.io/docs/api/changelog#d-2026-10-27)

- added
[POST /webhook-subscriptions/{subscriptionID}/rotate-secret](https://upfour.io/docs/api/webhook-subscriptions#post_webhook_subscriptions_subscriptionID_rotate_secret) Added (beta). Requires the `webhook.write` scope.
- documented
Request and response fields are now documented for 230 operations. This describes behavior that already existed and is not counted as a change.
Areas: [Health advisor](https://upfour.io/docs/api/advisor.md), [Client templates](https://upfour.io/docs/api/client-templates.md), [Clients (agency mode)](https://upfour.io/docs/api/clients.md), [Alert plans (escalation policies)](https://upfour.io/docs/api/escalation-policies.md), [Scheduled job groups](https://upfour.io/docs/api/heartbeat-groups.md), [Scheduled jobs (heartbeats)](https://upfour.io/docs/api/heartbeats.md), [Incidents](https://upfour.io/docs/api/incidents.md), [Invites](https://upfour.io/docs/api/invites.md), [Token introspection](https://upfour.io/docs/api/me.md), [Resource metadata](https://upfour.io/docs/api/metadata.md), [Monitor groups](https://upfour.io/docs/api/monitor-groups.md), [Monitors](https://upfour.io/docs/api/monitors.md), [Alert channels](https://upfour.io/docs/api/notification-channels.md), [On-call rotations](https://upfour.io/docs/api/oncall-schedules.md), [Organization](https://upfour.io/docs/api/organization.md), [Reports](https://upfour.io/docs/api/reports.md), [Playbooks (runbooks)](https://upfour.io/docs/api/runbooks.md), [Severities](https://upfour.io/docs/api/severities.md), [Severity groups](https://upfour.io/docs/api/severity-groups.md), [SLA policies](https://upfour.io/docs/api/sla-policies.md), [Status page design templates](https://upfour.io/docs/api/status-page-design-templates.md), [Status page update templates](https://upfour.io/docs/api/status-page-templates.md), [Status pages](https://upfour.io/docs/api/status-pages.md), [Teams](https://upfour.io/docs/api/teams.md), [Webhook subscriptions](https://upfour.io/docs/api/webhook-subscriptions.md)

### [2026-10-26](https://upfour.io/docs/api/changelog#d-2026-10-26)

- documented
Request and response fields are now documented for 5 operations. This describes behavior that already existed and is not counted as a change.
Areas: [Incidents](https://upfour.io/docs/api/incidents.md), [Status page design templates](https://upfour.io/docs/api/status-page-design-templates.md), [Status pages](https://upfour.io/docs/api/status-pages.md)

### [2026-10-22](https://upfour.io/docs/api/changelog#d-2026-10-22)

- added
[GET /status-pages/{pageID}/mail-preview](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_mail_preview) Added. Requires the `status_page.read` scope.

### [2026-10-18](https://upfour.io/docs/api/changelog#d-2026-10-18)

- added
[POST /monitors/export-details](https://upfour.io/docs/api/monitors#post_monitors_export_details) Added. Requires the `monitor.read` scope.

### [2026-10-16](https://upfour.io/docs/api/changelog#d-2026-10-16)

- added
[GET /incidents/{incidentID}/domain-case](https://upfour.io/docs/api/incidents#get_incidents_incidentID_domain_case) Added. Requires the `incident.read` scope.

### [2026-10-14](https://upfour.io/docs/api/changelog#d-2026-10-14)

- added
[GET /status-page-design-templates](https://upfour.io/docs/api/status-page-design-templates#get_status_page_design_templates) Added. Requires the `status_page.read` scope.
- added
[POST /status-page-design-templates](https://upfour.io/docs/api/status-page-design-templates#post_status_page_design_templates) Added. Requires the `status_page.write` scope.
- added
[GET /status-page-design-templates/{templateID}](https://upfour.io/docs/api/status-page-design-templates#get_status_page_design_templates_templateID) Added. Requires the `status_page.read` scope.
- added
[PUT /status-page-design-templates/{templateID}](https://upfour.io/docs/api/status-page-design-templates#put_status_page_design_templates_templateID) Added. Requires the `status_page.write` scope.
- added
[DELETE /status-page-design-templates/{templateID}](https://upfour.io/docs/api/status-page-design-templates#delete_status_page_design_templates_templateID) Added. Requires the `status_page.write` scope.
- added
[GET /status-page-design-templates/{templateID}/assets/{kind}](https://upfour.io/docs/api/status-page-design-templates#get_status_page_design_templates_templateID_assets_kind) Added. Requires the `status_page.read` scope.

### [2026-09-22](https://upfour.io/docs/api/changelog#d-2026-09-22)

- added
[POST /clients/logo-import](https://upfour.io/docs/api/clients#post_clients_logo_import) Added. Requires the `client.write` scope.

### [2026-09-21](https://upfour.io/docs/api/changelog#d-2026-09-21)

- added
[GET /escalation-policies/{policyID}/test-runs/latest](https://upfour.io/docs/api/escalation-policies#get_escalation_policies_policyID_test_runs_latest) Added. Requires the `escalation_policy.read` scope.
- added
[GET /escalation-policies/{policyID}/test-runs/{runID}](https://upfour.io/docs/api/escalation-policies#get_escalation_policies_policyID_test_runs_runID) Added. Requires the `escalation_policy.read` scope.
- added
[POST /status-pages/{pageID}/subscribers/resend-pending](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_subscribers_resend_pending) Added. Requires the `status_page.subscriber.write` scope.

### [2026-09-19](https://upfour.io/docs/api/changelog#d-2026-09-19)

- added
[POST /status-pages/feed-preview](https://upfour.io/docs/api/status-pages#post_status_pages_feed_preview) Added. Requires the `status_page.write` scope.
- added
[PUT /status-pages/{pageID}/assets/{kind}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_assets_kind) Added. Requires the `status_page.write` scope.
- added
[DELETE /status-pages/{pageID}/assets/{kind}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_assets_kind) Added. Requires the `status_page.write` scope.
- added
[POST /status-pages/{pageID}/duplicate](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_duplicate) Added. Requires the `status_page.write` scope.
- added
[GET /status-pages/{pageID}/subscribers/count](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_subscribers_count) Added. Requires the `status_page.read` scope.
- added
[GET /status-pages/{pageID}/updates/{updateID}/deliveries](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_updates_updateID_deliveries) Added. Requires the `status_page.read` scope.

### [2026-09-18](https://upfour.io/docs/api/changelog#d-2026-09-18)

- added
[GET /status-page-templates](https://upfour.io/docs/api/status-page-templates#get_status_page_templates) Added. Requires the `status_page.read` scope.
- added
[POST /status-page-templates](https://upfour.io/docs/api/status-page-templates#post_status_page_templates) Added. Requires the `status_page.write` scope.
- added
[PUT /status-page-templates/{templateID}](https://upfour.io/docs/api/status-page-templates#put_status_page_templates_templateID) Added. Requires the `status_page.write` scope.
- added
[DELETE /status-page-templates/{templateID}](https://upfour.io/docs/api/status-page-templates#delete_status_page_templates_templateID) Added. Requires the `status_page.write` scope.
- added
[GET /status-pages/{pageID}/updates/{updateID}](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_updates_updateID) Added. Requires the `status_page.read` scope.
- added
[PUT /status-pages/{pageID}/updates/{updateID}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_updates_updateID) Added. Requires the `status_page.write` scope.
- added
[POST /status-pages/{pageID}/updates/{updateID}/entries](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_updates_updateID_entries) Added. Requires the `status_page.write` scope.
- added
[PUT /status-pages/{pageID}/updates/{updateID}/entries/{entryID}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_updates_updateID_entries_entryID) Added. Requires the `status_page.write` scope.
- added
[DELETE /status-pages/{pageID}/updates/{updateID}/entries/{entryID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_updates_updateID_entries_entryID) Added. Requires the `status_page.write` scope.

### [2026-09-08](https://upfour.io/docs/api/changelog#d-2026-09-08)

- added
[GET /monitors/batch/history](https://upfour.io/docs/api/monitors#get_monitors_batch_history) Added. Requires the `monitor.write` scope.
- added
[POST /monitors/bulk](https://upfour.io/docs/api/monitors#post_monitors_bulk) Added. Requires the `monitor.write` scope.
- added
[GET /monitors/summary](https://upfour.io/docs/api/monitors#get_monitors_summary) Added. Requires the `monitor.read` scope.
- added
[GET /organization/report-branding](https://upfour.io/docs/api/organization#get_organization_report_branding) Added. Requires the `organization.read` scope.
- added
[PUT /organization/report-branding](https://upfour.io/docs/api/organization#put_organization_report_branding) Added. Requires the `organization.write` scope.
- added
[POST /reports/schedules/preview](https://upfour.io/docs/api/reports#post_reports_schedules_preview) Added. Requires the `report.read` scope.

### [2026-09-06](https://upfour.io/docs/api/changelog#d-2026-09-06)

- added
[GET /status-pages/platform](https://upfour.io/docs/api/status-pages#get_status_pages_platform) Added. Requires the `status_page.read` scope.

### [2026-09-02](https://upfour.io/docs/api/changelog#d-2026-09-02)

- breaking
Required scope changed. Keys that do not hold the new scope are refused.
7 operations

  - [DELETE /reports/schedules/{scheduleID}](https://upfour.io/docs/api/reports#delete_reports_schedules_scheduleID) `report.read` to `report.write`
  - [DELETE /reports/share-links/{linkID}](https://upfour.io/docs/api/reports#delete_reports_share_links_linkID) `report.read` to `report.write`
  - [GET /status-pages/{pageID}/subscribers](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_subscribers) `status_page.subscriber.write` to `status_page.read`
  - [POST /reports/schedules](https://upfour.io/docs/api/reports#post_reports_schedules) `report.read` to `report.write`
  - [POST /reports/schedules/{scheduleID}/run-now](https://upfour.io/docs/api/reports#post_reports_schedules_scheduleID_run_now) `report.read` to `report.write`
  - [POST /reports/{runID}/share](https://upfour.io/docs/api/reports#post_reports_runID_share) `report.read` to `report.write`
  - [PUT /reports/schedules/{scheduleID}](https://upfour.io/docs/api/reports#put_reports_schedules_scheduleID) `report.read` to `report.write`
- breaking
Removed from the public API reference.
3 operations

  - `GET /incidents/{incidentID}/escalations/{step}/acknowledge`
  - `GET /reports/verify/{hash}`
  - `GET /share/reports/{token}`
- changed
Required scope relaxed.
50 operations

  - [GET /clients](https://upfour.io/docs/api/clients#get_clients) `client.write` to `client.read`
  - [GET /clients/{clientID}](https://upfour.io/docs/api/clients#get_clients_clientID) `client.write` to `client.read`
  - [GET /clients/{clientID}/portal-settings](https://upfour.io/docs/api/clients#get_clients_clientID_portal_settings) `client.write` to `client.read`
  - [GET /clients/{clientID}/share-links](https://upfour.io/docs/api/clients#get_clients_clientID_share_links) `client.write` to `client.read`
  - [GET /escalation-policies](https://upfour.io/docs/api/escalation-policies#get_escalation_policies) `escalation_policy.write` to `escalation_policy.read`
  - [GET /escalation-policies/{policyID}](https://upfour.io/docs/api/escalation-policies#get_escalation_policies_policyID) `escalation_policy.write` to `escalation_policy.read`
  - [GET /heartbeat-groups](https://upfour.io/docs/api/heartbeat-groups#get_heartbeat_groups) `heartbeat.write` to `heartbeat.read`
  - [GET /heartbeat-groups/{groupID}](https://upfour.io/docs/api/heartbeat-groups#get_heartbeat_groups_groupID) `heartbeat.write` to `heartbeat.read`
  - [GET /heartbeats](https://upfour.io/docs/api/heartbeats#get_heartbeats) `heartbeat.write` to `heartbeat.read`
  - [GET /heartbeats/{heartbeatID}](https://upfour.io/docs/api/heartbeats#get_heartbeats_heartbeatID) `heartbeat.write` to `heartbeat.read`
  - [GET /incidents](https://upfour.io/docs/api/incidents#get_incidents) `incident.write` to `incident.read`
  - [GET /incidents/{incidentID}/attachments](https://upfour.io/docs/api/incidents#get_incidents_incidentID_attachments) `incident.write` to `incident.read`
  - [GET /incidents/{incidentID}/attachments/{attachmentID}](https://upfour.io/docs/api/incidents#get_incidents_incidentID_attachments_attachmentID) `incident.write` to `incident.read`
  - [GET /incidents/{incidentID}/comments](https://upfour.io/docs/api/incidents#get_incidents_incidentID_comments) `incident.write` to `incident.read`
  - [GET /invites](https://upfour.io/docs/api/invites#get_invites) `member.write` to `member.read`
  - [GET /metadata](https://upfour.io/docs/api/metadata#get_metadata) `metadata.write` to `metadata.read`
  - [GET /monitor-groups](https://upfour.io/docs/api/monitor-groups#get_monitor_groups) `monitor.write` to `monitor.read`
  - [GET /monitor-groups/{groupID}](https://upfour.io/docs/api/monitor-groups#get_monitor_groups_groupID) `monitor.delete` to `monitor.read`
  - [GET /monitors](https://upfour.io/docs/api/monitors#get_monitors) `monitor.write` to `monitor.read`
  - [GET /monitors/{monitorID}](https://upfour.io/docs/api/monitors#get_monitors_monitorID) `monitor.delete` to `monitor.read`
  - [GET /notification_channels](https://upfour.io/docs/api/notification-channels#get_notification_channels) `notification_channel.write` to `notification_channel.read`
  - [GET /notification_channels/{channelID}](https://upfour.io/docs/api/notification-channels#get_notification_channels_channelID) `notification_channel.write` to `notification_channel.read`
  - [GET /oncall-schedules](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules) `oncall.write` to `oncall.read`
  - [GET /oncall-schedules/{scheduleID}](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID) `oncall.write` to `oncall.read`
  - [GET /oncall-schedules/{scheduleID}/overrides](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID_overrides) `oncall.write` to `oncall.read`
  - [GET /organization](https://upfour.io/docs/api/organization#get_organization) `organization.write` to `organization.read`
  - [GET /organization/members/email/{email}](https://upfour.io/docs/api/organization#get_organization_members_email_email) `member.write` to `member.read`
  - [GET /organization/security](https://upfour.io/docs/api/organization#get_organization_security) `organization.write` to `organization.read`
  - [GET /runbooks](https://upfour.io/docs/api/runbooks#get_runbooks) `runbook.write` to `runbook.read`
  - [GET /runbooks/{runbookID}](https://upfour.io/docs/api/runbooks#get_runbooks_runbookID) `runbook.write` to `runbook.read`
  - [GET /status-pages](https://upfour.io/docs/api/status-pages#get_status_pages) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}](https://upfour.io/docs/api/status-pages#get_status_pages_pageID) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/access](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_access) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/reports](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_reports) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/sections](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_sections) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/sections/{sectionID}/resources](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_sections_sectionID_resources) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/structure](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_structure) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/translations](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_translations) `status_page.write` to `status_page.read`
  - [GET /status-pages/{pageID}/updates](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_updates) `status_page.write` to `status_page.read`
  - [GET /teams](https://upfour.io/docs/api/teams#get_teams) `team.write` to `team.read`
  - [GET /teams/{teamID}](https://upfour.io/docs/api/teams#get_teams_teamID) `team.write` to `team.read`
  - [GET /teams/{teamID}/clients](https://upfour.io/docs/api/teams#get_teams_teamID_clients) `team.write` to `team.read`
  - [GET /teams/{teamID}/members](https://upfour.io/docs/api/teams#get_teams_teamID_members) `member.write` to `member.read`
  - [GET /teams/{teamID}/members/email/{email}](https://upfour.io/docs/api/teams#get_teams_teamID_members_email_email) `member.write` to `member.read`
  - [GET /webhook-subscriptions](https://upfour.io/docs/api/webhook-subscriptions#get_webhook_subscriptions) `webhook.write` to `webhook.read`
  - [PATCH /monitors/{monitorID}](https://upfour.io/docs/api/monitors#patch_monitors_monitorID) `monitor.delete` to `monitor.write`
  - [POST /monitors/{monitorID}/notification_channels/{channelID}](https://upfour.io/docs/api/monitors#post_monitors_monitorID_notification_channels_channelID) `monitor.delete` to `monitor.write`
  - [PUT /monitor-groups/{groupID}](https://upfour.io/docs/api/monitor-groups#put_monitor_groups_groupID) `monitor.delete` to `monitor.write`
  - [PUT /monitors/{monitorID}](https://upfour.io/docs/api/monitors#put_monitors_monitorID) `monitor.delete` to `monitor.write`
  - [PUT /monitors/{monitorID}/escalation-policy](https://upfour.io/docs/api/monitors#put_monitors_monitorID_escalation_policy) `monitor.delete` to `monitor.write`
- documented
The required scope is now declared for 13 operations. This describes behavior that already existed and is not counted as a change.
Areas: [Health advisor](https://upfour.io/docs/api/advisor.md), [Client templates](https://upfour.io/docs/api/client-templates.md), [SLA policies](https://upfour.io/docs/api/sla-policies.md)

### [2026-08-27](https://upfour.io/docs/api/changelog#d-2026-08-27)

- added
[POST /client-templates/{templateID}/dry-run](https://upfour.io/docs/api/client-templates#post_client_templates_templateID_dry_run) Added.

### [2026-08-26](https://upfour.io/docs/api/changelog#d-2026-08-26)

- added
`GET /incidents/{incidentID}/escalations/{step}/acknowledge` Added (runtime).

### [2026-07-25](https://upfour.io/docs/api/changelog#d-2026-07-25)

- added
Added 19 operations.
Areas: [Health advisor](https://upfour.io/docs/api/advisor.md), [Incidents](https://upfour.io/docs/api/incidents.md), [Monitors](https://upfour.io/docs/api/monitors.md), [Organization](https://upfour.io/docs/api/organization.md), [Status pages](https://upfour.io/docs/api/status-pages.md)
19 operations

  - [DELETE /status-pages/{pageID}/access-token](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_access_token)
  - [DELETE /status-pages/{pageID}/custom-domain](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_custom_domain)
  - [GET /advisor](https://upfour.io/docs/api/advisor#get_advisor)
  - [GET /incidents/{incidentID}/ai](https://upfour.io/docs/api/incidents#get_incidents_incidentID_ai)
  - [GET /incidents/{incidentID}/group](https://upfour.io/docs/api/incidents#get_incidents_incidentID_group)
  - [GET /monitors/{monitorID}/certificates](https://upfour.io/docs/api/monitors#get_monitors_monitorID_certificates)
  - [GET /organization/ai-usage](https://upfour.io/docs/api/organization#get_organization_ai_usage)
  - [GET /status-pages/{pageID}/access](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_access)
  - [GET /status-pages/{pageID}/domain](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_domain)
  - [GET /status-pages/{pageID}/domain/events](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_domain_events)
  - [POST /advisor/apply](https://upfour.io/docs/api/advisor#post_advisor_apply)
  - [POST /incidents/{incidentID}/ai/postmortem](https://upfour.io/docs/api/incidents#post_incidents_incidentID_ai_postmortem)
  - [POST /incidents/{incidentID}/ai/summary](https://upfour.io/docs/api/incidents#post_incidents_incidentID_ai_summary)
  - [POST /status-pages/{pageID}/access-token](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_access_token)
  - [POST /status-pages/{pageID}/custom-domain/recheck](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_custom_domain_recheck)
  - [PUT /incidents/{incidentID}/ai/{kind}/rating](https://upfour.io/docs/api/incidents#put_incidents_incidentID_ai_kind_rating)
  - [PUT /organization/ai-quota](https://upfour.io/docs/api/organization#put_organization_ai_quota)
  - [PUT /status-pages/{pageID}/access](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_access)
  - [PUT /status-pages/{pageID}/custom-domain](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_custom_domain)

### [2026-07-21](https://upfour.io/docs/api/changelog#d-2026-07-21)

- added
[GET /clients/{clientID}/portal-settings](https://upfour.io/docs/api/clients#get_clients_clientID_portal_settings) Added. Requires the `client.write` scope.
- added
[PUT /clients/{clientID}/portal-settings](https://upfour.io/docs/api/clients#put_clients_clientID_portal_settings) Added. Requires the `client.write` scope.

### [2026-06-01](https://upfour.io/docs/api/changelog#d-2026-06-01)

- added
[GET /incidents/{incidentID}/attachments/{attachmentID}](https://upfour.io/docs/api/incidents#get_incidents_incidentID_attachments_attachmentID) Added. Requires the `incident.write` scope.

### [2026-05-12](https://upfour.io/docs/api/changelog#d-2026-05-12)

- added
Added 21 operations.
Areas: [Reports](https://upfour.io/docs/api/reports.md), share, [SLA policies](https://upfour.io/docs/api/sla-policies.md)
21 operations

  - [DELETE /reports/schedules/{scheduleID}](https://upfour.io/docs/api/reports#delete_reports_schedules_scheduleID)
  - [DELETE /reports/share-links/{linkID}](https://upfour.io/docs/api/reports#delete_reports_share_links_linkID)
  - [DELETE /sla-policies/{policyID}](https://upfour.io/docs/api/sla-policies#delete_sla_policies_policyID)
  - [GET /reports/downtime-ledger](https://upfour.io/docs/api/reports#get_reports_downtime_ledger)
  - [GET /reports/incidents](https://upfour.io/docs/api/reports#get_reports_incidents)
  - [GET /reports/response-time](https://upfour.io/docs/api/reports#get_reports_response_time)
  - [GET /reports/runs](https://upfour.io/docs/api/reports#get_reports_runs)
  - [GET /reports/schedules](https://upfour.io/docs/api/reports#get_reports_schedules)
  - [GET /reports/schedules/{scheduleID}](https://upfour.io/docs/api/reports#get_reports_schedules_scheduleID)
  - [GET /reports/share-links](https://upfour.io/docs/api/reports#get_reports_share_links)
  - [GET /reports/sla](https://upfour.io/docs/api/reports#get_reports_sla)
  - `GET /reports/verify/{hash}`
  - `GET /share/reports/{token}`
  - [GET /sla-policies](https://upfour.io/docs/api/sla-policies#get_sla_policies)
  - [GET /sla-policies/{policyID}](https://upfour.io/docs/api/sla-policies#get_sla_policies_policyID)
  - [POST /reports/schedules](https://upfour.io/docs/api/reports#post_reports_schedules)
  - [POST /reports/schedules/{scheduleID}/run-now](https://upfour.io/docs/api/reports#post_reports_schedules_scheduleID_run_now)
  - [POST /reports/{runID}/share](https://upfour.io/docs/api/reports#post_reports_runID_share)
  - [POST /sla-policies](https://upfour.io/docs/api/sla-policies#post_sla_policies)
  - [PUT /reports/schedules/{scheduleID}](https://upfour.io/docs/api/reports#put_reports_schedules_scheduleID)
  - [PUT /sla-policies/{policyID}](https://upfour.io/docs/api/sla-policies#put_sla_policies_policyID)

### [2026-05-11](https://upfour.io/docs/api/changelog#d-2026-05-11)

- added
[POST /heartbeat-groups/assign](https://upfour.io/docs/api/heartbeat-groups#post_heartbeat_groups_assign) Added. Requires the `heartbeat.write` scope.
- added
[GET /incidents/{incidentID}/runbook-progress](https://upfour.io/docs/api/incidents#get_incidents_incidentID_runbook_progress) Added. Requires the `incident.read` scope.
- added
[PUT /incidents/{incidentID}/runbook-steps/{stepID}/completion](https://upfour.io/docs/api/incidents#put_incidents_incidentID_runbook_steps_stepID_completion) Added. Requires the `incident.write` scope.
- added
[POST /monitor-groups/assign](https://upfour.io/docs/api/monitor-groups#post_monitor_groups_assign) Added. Requires the `monitor.write` scope.

### [2026-05-07](https://upfour.io/docs/api/changelog#d-2026-05-07)

- breaking
Removed from the public API reference.
5 operations

  - `DELETE /user/api-keys/{keyID}`
  - `GET /user/api-keys`
  - `POST /login`
  - `POST /register`
  - `POST /user/api-keys`
- added
Added 171 operations.
Areas: [Client templates](https://upfour.io/docs/api/client-templates.md), [Clients (agency mode)](https://upfour.io/docs/api/clients.md), [Alert plans (escalation policies)](https://upfour.io/docs/api/escalation-policies.md), [Scheduled job groups](https://upfour.io/docs/api/heartbeat-groups.md), [Scheduled jobs (heartbeats)](https://upfour.io/docs/api/heartbeats.md), [Incidents](https://upfour.io/docs/api/incidents.md), [Invites](https://upfour.io/docs/api/invites.md), [Token introspection](https://upfour.io/docs/api/me.md), [Resource metadata](https://upfour.io/docs/api/metadata.md), [Monitor groups](https://upfour.io/docs/api/monitor-groups.md), [Monitors](https://upfour.io/docs/api/monitors.md), [On-call rotations](https://upfour.io/docs/api/oncall-schedules.md), [Organization](https://upfour.io/docs/api/organization.md), [Reports](https://upfour.io/docs/api/reports.md), [Playbooks (runbooks)](https://upfour.io/docs/api/runbooks.md), [Severities](https://upfour.io/docs/api/severities.md), [Severity groups](https://upfour.io/docs/api/severity-groups.md), [Status pages](https://upfour.io/docs/api/status-pages.md), [Teams](https://upfour.io/docs/api/teams.md), [Webhook subscriptions](https://upfour.io/docs/api/webhook-subscriptions.md)
171 operations

  - [DELETE /client-templates/{templateID}](https://upfour.io/docs/api/client-templates#delete_client_templates_templateID)
  - [DELETE /clients/{clientID}/share-links/{linkID}](https://upfour.io/docs/api/clients#delete_clients_clientID_share_links_linkID)
  - [DELETE /escalation-policies/{policyID}](https://upfour.io/docs/api/escalation-policies#delete_escalation_policies_policyID)
  - [DELETE /heartbeat-groups/{groupID}](https://upfour.io/docs/api/heartbeat-groups#delete_heartbeat_groups_groupID)
  - [DELETE /heartbeats/{heartbeatID}](https://upfour.io/docs/api/heartbeats#delete_heartbeats_heartbeatID)
  - [DELETE /incidents/{incidentID}/attachments/{attachmentID}](https://upfour.io/docs/api/incidents#delete_incidents_incidentID_attachments_attachmentID)
  - [DELETE /incidents/{incidentID}/comments/{commentID}](https://upfour.io/docs/api/incidents#delete_incidents_incidentID_comments_commentID)
  - [DELETE /invites/{inviteID}](https://upfour.io/docs/api/invites#delete_invites_inviteID)
  - [DELETE /monitor-groups/{groupID}](https://upfour.io/docs/api/monitor-groups#delete_monitor_groups_groupID)
  - [DELETE /monitors/{monitorID}/escalation-policy](https://upfour.io/docs/api/monitors#delete_monitors_monitorID_escalation_policy)
  - [DELETE /monitors/{monitorID}/notification_channels/{channelID}](https://upfour.io/docs/api/monitors#delete_monitors_monitorID_notification_channels_channelID)
  - [DELETE /oncall-schedules/{scheduleID}](https://upfour.io/docs/api/oncall-schedules#delete_oncall_schedules_scheduleID)
  - [DELETE /oncall-schedules/{scheduleID}/overrides/{overrideID}](https://upfour.io/docs/api/oncall-schedules#delete_oncall_schedules_scheduleID_overrides_overrideID)
  - [DELETE /organization](https://upfour.io/docs/api/organization#delete_organization)
  - [DELETE /organization/members/email/{email}](https://upfour.io/docs/api/organization#delete_organization_members_email_email)
  - [DELETE /organization/members/{memberID}](https://upfour.io/docs/api/organization#delete_organization_members_memberID)
  - [DELETE /runbooks/{runbookID}](https://upfour.io/docs/api/runbooks#delete_runbooks_runbookID)
  - [DELETE /status-pages/{pageID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID)
  - [DELETE /status-pages/{pageID}/sections/{sectionID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_sections_sectionID)
  - [DELETE /status-pages/{pageID}/sections/{sectionID}/resources/{resourceID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_sections_sectionID_resources_resourceID)
  - [DELETE /status-pages/{pageID}/subscribers/{subscriberID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_subscribers_subscriberID)
  - [DELETE /status-pages/{pageID}/translations/{translationID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_translations_translationID)
  - [DELETE /status-pages/{pageID}/updates/{updateID}](https://upfour.io/docs/api/status-pages#delete_status_pages_pageID_updates_updateID)
  - [DELETE /teams/{teamID}](https://upfour.io/docs/api/teams#delete_teams_teamID)
  - [DELETE /teams/{teamID}/clients/{clientID}](https://upfour.io/docs/api/teams#delete_teams_teamID_clients_clientID)
  - [DELETE /teams/{teamID}/members/email/{email}](https://upfour.io/docs/api/teams#delete_teams_teamID_members_email_email)
  - [DELETE /teams/{teamID}/members/{memberID}](https://upfour.io/docs/api/teams#delete_teams_teamID_members_memberID)
  - [DELETE /webhook-subscriptions/{subscriptionID}](https://upfour.io/docs/api/webhook-subscriptions#delete_webhook_subscriptions_subscriptionID)
  - [GET /client-templates](https://upfour.io/docs/api/client-templates#get_client_templates)
  - [GET /client-templates/{templateID}](https://upfour.io/docs/api/client-templates#get_client_templates_templateID)
  - [GET /clients](https://upfour.io/docs/api/clients#get_clients)
  - [GET /clients/{clientID}](https://upfour.io/docs/api/clients#get_clients_clientID)
  - [GET /clients/{clientID}/share-links](https://upfour.io/docs/api/clients#get_clients_clientID_share_links)
  - [GET /clients/{clientID}/teams](https://upfour.io/docs/api/clients#get_clients_clientID_teams)
  - [GET /escalation-policies](https://upfour.io/docs/api/escalation-policies#get_escalation_policies)
  - [GET /escalation-policies/{policyID}](https://upfour.io/docs/api/escalation-policies#get_escalation_policies_policyID)
  - [GET /heartbeat-groups](https://upfour.io/docs/api/heartbeat-groups#get_heartbeat_groups)
  - [GET /heartbeat-groups/{groupID}](https://upfour.io/docs/api/heartbeat-groups#get_heartbeat_groups_groupID)
  - [GET /heartbeats](https://upfour.io/docs/api/heartbeats#get_heartbeats)
  - [GET /heartbeats/{heartbeatID}](https://upfour.io/docs/api/heartbeats#get_heartbeats_heartbeatID)
  - [GET /heartbeats/{heartbeatID}/availability](https://upfour.io/docs/api/heartbeats#get_heartbeats_heartbeatID_availability)
  - [GET /heartbeats/{heartbeatID}/pings](https://upfour.io/docs/api/heartbeats#get_heartbeats_heartbeatID_pings)
  - [GET /incidents](https://upfour.io/docs/api/incidents#get_incidents)
  - [GET /incidents/{incidentID}](https://upfour.io/docs/api/incidents#get_incidents_incidentID)
  - [GET /incidents/{incidentID}/attachments](https://upfour.io/docs/api/incidents#get_incidents_incidentID_attachments)
  - [GET /incidents/{incidentID}/comments](https://upfour.io/docs/api/incidents#get_incidents_incidentID_comments)
  - [GET /incidents/{incidentID}/timeline](https://upfour.io/docs/api/incidents#get_incidents_incidentID_timeline)
  - [GET /invites](https://upfour.io/docs/api/invites#get_invites)
  - [GET /me](https://upfour.io/docs/api/me#get_me)
  - [GET /metadata](https://upfour.io/docs/api/metadata#get_metadata)
  - [GET /monitor-groups](https://upfour.io/docs/api/monitor-groups#get_monitor_groups)
  - [GET /monitor-groups/{groupID}](https://upfour.io/docs/api/monitor-groups#get_monitor_groups_groupID)
  - [GET /monitors/{monitorID}/availability](https://upfour.io/docs/api/monitors#get_monitors_monitorID_availability)
  - [GET /monitors/{monitorID}/incidents](https://upfour.io/docs/api/monitors#get_monitors_monitorID_incidents)
  - [GET /monitors/{monitorID}/notification_channels](https://upfour.io/docs/api/monitors#get_monitors_monitorID_notification_channels)
  - [GET /monitors/{monitorID}/regions](https://upfour.io/docs/api/monitors#get_monitors_monitorID_regions)
  - [GET /monitors/{monitorID}/response_times](https://upfour.io/docs/api/monitors#get_monitors_monitorID_response_times)
  - [GET /monitors/{monitorID}/results](https://upfour.io/docs/api/monitors#get_monitors_monitorID_results)
  - [GET /oncall-schedules](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules)
  - [GET /oncall-schedules/current](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_current)
  - [GET /oncall-schedules/{scheduleID}](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID)
  - [GET /oncall-schedules/{scheduleID}/coverage](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID_coverage)
  - [GET /oncall-schedules/{scheduleID}/events](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID_events)
  - [GET /oncall-schedules/{scheduleID}/overrides](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID_overrides)
  - [GET /oncall-schedules/{scheduleID}/rotations](https://upfour.io/docs/api/oncall-schedules#get_oncall_schedules_scheduleID_rotations)
  - [GET /organization](https://upfour.io/docs/api/organization#get_organization)
  - [GET /organization/audit-logs](https://upfour.io/docs/api/organization#get_organization_audit_logs)
  - [GET /organization/members](https://upfour.io/docs/api/organization#get_organization_members)
  - [GET /organization/members/email/{email}](https://upfour.io/docs/api/organization#get_organization_members_email_email)
  - [GET /organization/security](https://upfour.io/docs/api/organization#get_organization_security)
  - [GET /organization/sso](https://upfour.io/docs/api/organization#get_organization_sso)
  - [GET /reports/agency-ribbon](https://upfour.io/docs/api/reports#get_reports_agency_ribbon)
  - [GET /reports/monitor-ribbon](https://upfour.io/docs/api/reports#get_reports_monitor_ribbon)
  - [GET /runbooks](https://upfour.io/docs/api/runbooks#get_runbooks)
  - [GET /runbooks/{runbookID}](https://upfour.io/docs/api/runbooks#get_runbooks_runbookID)
  - [GET /runbooks/{runbookID}/step-completions](https://upfour.io/docs/api/runbooks#get_runbooks_runbookID_step_completions)
  - [GET /severities](https://upfour.io/docs/api/severities#get_severities)
  - [GET /severity-groups](https://upfour.io/docs/api/severity-groups#get_severity_groups)
  - [GET /status-pages](https://upfour.io/docs/api/status-pages#get_status_pages)
  - [GET /status-pages/{pageID}](https://upfour.io/docs/api/status-pages#get_status_pages_pageID)
  - [GET /status-pages/{pageID}/report-updates](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_report_updates)
  - [GET /status-pages/{pageID}/reports](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_reports)
  - [GET /status-pages/{pageID}/sections](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_sections)
  - [GET /status-pages/{pageID}/sections/{sectionID}/resources](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_sections_sectionID_resources)
  - [GET /status-pages/{pageID}/structure](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_structure)
  - [GET /status-pages/{pageID}/subscribers](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_subscribers)
  - [GET /status-pages/{pageID}/translations](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_translations)
  - [GET /status-pages/{pageID}/updates](https://upfour.io/docs/api/status-pages#get_status_pages_pageID_updates)
  - [GET /teams](https://upfour.io/docs/api/teams#get_teams)
  - [GET /teams/{teamID}](https://upfour.io/docs/api/teams#get_teams_teamID)
  - [GET /teams/{teamID}/clients](https://upfour.io/docs/api/teams#get_teams_teamID_clients)
  - [GET /teams/{teamID}/members](https://upfour.io/docs/api/teams#get_teams_teamID_members)
  - [GET /teams/{teamID}/members/email/{email}](https://upfour.io/docs/api/teams#get_teams_teamID_members_email_email)
  - [GET /webhook-subscriptions](https://upfour.io/docs/api/webhook-subscriptions#get_webhook_subscriptions)
  - [GET /webhook-subscriptions/{subscriptionID}/deliveries](https://upfour.io/docs/api/webhook-subscriptions#get_webhook_subscriptions_subscriptionID_deliveries)
  - [PATCH /heartbeats/{heartbeatID}](https://upfour.io/docs/api/heartbeats#patch_heartbeats_heartbeatID)
  - [PATCH /monitors/{monitorID}](https://upfour.io/docs/api/monitors#patch_monitors_monitorID)
  - [POST /client-templates](https://upfour.io/docs/api/client-templates#post_client_templates)
  - [POST /clients](https://upfour.io/docs/api/clients#post_clients)
  - [POST /clients/{clientID}/archive](https://upfour.io/docs/api/clients#post_clients_clientID_archive)
  - [POST /clients/{clientID}/share-links](https://upfour.io/docs/api/clients#post_clients_clientID_share_links)
  - [POST /clients/{clientID}/unarchive](https://upfour.io/docs/api/clients#post_clients_clientID_unarchive)
  - [POST /escalation-policies](https://upfour.io/docs/api/escalation-policies#post_escalation_policies)
  - [POST /escalation-policies/{policyID}/test](https://upfour.io/docs/api/escalation-policies#post_escalation_policies_policyID_test)
  - [POST /heartbeat-groups](https://upfour.io/docs/api/heartbeat-groups#post_heartbeat_groups)
  - [POST /heartbeats](https://upfour.io/docs/api/heartbeats#post_heartbeats)
  - [POST /heartbeats/{heartbeatID}/pause](https://upfour.io/docs/api/heartbeats#post_heartbeats_heartbeatID_pause)
  - [POST /heartbeats/{heartbeatID}/resume](https://upfour.io/docs/api/heartbeats#post_heartbeats_heartbeatID_resume)
  - [POST /incidents](https://upfour.io/docs/api/incidents#post_incidents)
  - [POST /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#post_incidents_incidentID_acknowledge)
  - [POST /incidents/{incidentID}/attachments](https://upfour.io/docs/api/incidents#post_incidents_incidentID_attachments)
  - [POST /incidents/{incidentID}/comments](https://upfour.io/docs/api/incidents#post_incidents_incidentID_comments)
  - [POST /incidents/{incidentID}/escalate](https://upfour.io/docs/api/incidents#post_incidents_incidentID_escalate)
  - [POST /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#post_incidents_incidentID_reopen)
  - [POST /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#post_incidents_incidentID_resolve)
  - [POST /incidents/{incidentID}/updates](https://upfour.io/docs/api/incidents#post_incidents_incidentID_updates)
  - [POST /invites](https://upfour.io/docs/api/invites#post_invites)
  - [POST /invites/{inviteID}/resend](https://upfour.io/docs/api/invites#post_invites_inviteID_resend)
  - [POST /monitor-groups](https://upfour.io/docs/api/monitor-groups#post_monitor_groups)
  - [POST /monitors/{monitorID}/check](https://upfour.io/docs/api/monitors#post_monitors_monitorID_check)
  - [POST /monitors/{monitorID}/notification_channels/{channelID}](https://upfour.io/docs/api/monitors#post_monitors_monitorID_notification_channels_channelID)
  - [POST /monitors/{monitorID}/pause](https://upfour.io/docs/api/monitors#post_monitors_monitorID_pause)
  - [POST /monitors/{monitorID}/resume](https://upfour.io/docs/api/monitors#post_monitors_monitorID_resume)
  - [POST /monitors/{monitorID}/test-alert](https://upfour.io/docs/api/monitors#post_monitors_monitorID_test_alert)
  - [POST /oncall-schedules](https://upfour.io/docs/api/oncall-schedules#post_oncall_schedules)
  - [POST /oncall-schedules/{scheduleID}/overrides](https://upfour.io/docs/api/oncall-schedules#post_oncall_schedules_scheduleID_overrides)
  - [POST /organization](https://upfour.io/docs/api/organization#post_organization)
  - [POST /runbooks](https://upfour.io/docs/api/runbooks#post_runbooks)
  - [POST /status-pages](https://upfour.io/docs/api/status-pages#post_status_pages)
  - [POST /status-pages/{pageID}/reports](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_reports)
  - [POST /status-pages/{pageID}/sections](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_sections)
  - [POST /status-pages/{pageID}/sections/{sectionID}/resources](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_sections_sectionID_resources)
  - [POST /status-pages/{pageID}/subscribers](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_subscribers)
  - [POST /status-pages/{pageID}/subscribers/upload](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_subscribers_upload)
  - [POST /status-pages/{pageID}/subscribers/{subscriberID}/resend](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_subscribers_subscriberID_resend)
  - [POST /status-pages/{pageID}/translations](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_translations)
  - [POST /status-pages/{pageID}/updates](https://upfour.io/docs/api/status-pages#post_status_pages_pageID_updates)
  - [POST /teams](https://upfour.io/docs/api/teams#post_teams)
  - [POST /teams/{teamID}/clients](https://upfour.io/docs/api/teams#post_teams_teamID_clients)
  - [POST /teams/{teamID}/members](https://upfour.io/docs/api/teams#post_teams_teamID_members)
  - [POST /webhook-subscriptions](https://upfour.io/docs/api/webhook-subscriptions#post_webhook_subscriptions)
  - [POST /webhook-subscriptions/{subscriptionID}/redeliver/{deliveryID}](https://upfour.io/docs/api/webhook-subscriptions#post_webhook_subscriptions_subscriptionID_redeliver_deliveryID)
  - [POST /webhook-subscriptions/{subscriptionID}/test](https://upfour.io/docs/api/webhook-subscriptions#post_webhook_subscriptions_subscriptionID_test)
  - [PUT /client-templates/{templateID}](https://upfour.io/docs/api/client-templates#put_client_templates_templateID)
  - [PUT /clients/{clientID}](https://upfour.io/docs/api/clients#put_clients_clientID)
  - [PUT /escalation-policies/{policyID}](https://upfour.io/docs/api/escalation-policies#put_escalation_policies_policyID)
  - [PUT /heartbeat-groups/{groupID}](https://upfour.io/docs/api/heartbeat-groups#put_heartbeat_groups_groupID)
  - [PUT /heartbeats/{heartbeatID}](https://upfour.io/docs/api/heartbeats#put_heartbeats_heartbeatID)
  - [PUT /heartbeats/{heartbeatID}/pause](https://upfour.io/docs/api/heartbeats#put_heartbeats_heartbeatID_pause)
  - [PUT /heartbeats/{heartbeatID}/resume](https://upfour.io/docs/api/heartbeats#put_heartbeats_heartbeatID_resume)
  - [PUT /incidents/{incidentID}/acknowledge](https://upfour.io/docs/api/incidents#put_incidents_incidentID_acknowledge)
  - [PUT /incidents/{incidentID}/reopen](https://upfour.io/docs/api/incidents#put_incidents_incidentID_reopen)
  - [PUT /incidents/{incidentID}/resolve](https://upfour.io/docs/api/incidents#put_incidents_incidentID_resolve)
  - [PUT /metadata](https://upfour.io/docs/api/metadata#put_metadata)
  - [PUT /monitor-groups/{groupID}](https://upfour.io/docs/api/monitor-groups#put_monitor_groups_groupID)
  - [PUT /monitors/{monitorID}/escalation-policy](https://upfour.io/docs/api/monitors#put_monitors_monitorID_escalation_policy)
  - [PUT /oncall-schedules/{scheduleID}](https://upfour.io/docs/api/oncall-schedules#put_oncall_schedules_scheduleID)
  - [PUT /organization](https://upfour.io/docs/api/organization#put_organization)
  - [PUT /organization/members/{memberID}/role](https://upfour.io/docs/api/organization#put_organization_members_memberID_role)
  - [PUT /organization/security](https://upfour.io/docs/api/organization#put_organization_security)
  - [PUT /organization/sso/{provider}](https://upfour.io/docs/api/organization#put_organization_sso_provider)
  - [PUT /runbooks/{runbookID}](https://upfour.io/docs/api/runbooks#put_runbooks_runbookID)
  - [PUT /runbooks/{runbookID}/steps/{stepID}/completion](https://upfour.io/docs/api/runbooks#put_runbooks_runbookID_steps_stepID_completion)
  - [PUT /status-pages/{pageID}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID)
  - [PUT /status-pages/{pageID}/sections/{sectionID}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_sections_sectionID)
  - [PUT /status-pages/{pageID}/sections/{sectionID}/resources/{resourceID}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_sections_sectionID_resources_resourceID)
  - [PUT /status-pages/{pageID}/structure](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_structure)
  - [PUT /status-pages/{pageID}/translations/{translationID}](https://upfour.io/docs/api/status-pages#put_status_pages_pageID_translations_translationID)
  - [PUT /teams/{teamID}](https://upfour.io/docs/api/teams#put_teams_teamID)
  - [PUT /teams/{teamID}/members/{memberID}/role](https://upfour.io/docs/api/teams#put_teams_teamID_members_memberID_role)
  - [PUT /webhook-subscriptions/{subscriptionID}](https://upfour.io/docs/api/webhook-subscriptions#put_webhook_subscriptions_subscriptionID)
- documented
Required scope and stability are now declared for 17 operations. This describes behavior that already existed and is not counted as a change.
Areas: [Monitors](https://upfour.io/docs/api/monitors.md), [Alert channels](https://upfour.io/docs/api/notification-channels.md), [Reports](https://upfour.io/docs/api/reports.md)

### [2026-05-05](https://upfour.io/docs/api/changelog#d-2026-05-05)

- added
First version of the API reference, with 22 operations.

## How this log is made

A script reads every version of the OpenAPI file, groups the versions by the date they were committed and compares the end of each date with the end of the one before. A route that disappears and returns on the same date leaves no entry. Operator routes are not part of the public API and are not listed.

The reference was a route inventory until 2026-10-27: it listed operations, scopes and stability, but most request and response bodies were open objects and success statuses were estimates. For the time before that date the log reports added and removed operations, scopes and stability only. On 2026-10-27 the fields of the operations were documented; that is one documented entry, not a change. From the day after, parameters, status codes and fields are compared too.
