---
title: "PublicIncidentIncidentStatusUpdatedV2 Webhooks"
method: GET
path: "/x-webhooks/public_incident.incident_status_updated_v2"
tags: ["Webhooks"]
---

# PublicIncidentIncidentStatusUpdatedV2 Webhooks

`GET /x-webhooks/public_incident.incident_status_updated_v2`

## Request

- Base URL: `https:////api.incident.io`
- URL: `https:////api.incident.io/x-webhooks/public_incident.incident_status_updated_v2`
- Auth: none declared
- TypeScript: <https://skmtc.dev/incident/apis/incident-io/docs/x-webhooks/public_incident.incident_status_updated_v2/get.ts> (a function with typed inputs; its response is checked against the schema)

This webhook is emitted whenever an incident's status changes.

## Response `200`

OK response.

- WebhooksPublicIncidentIncidentStatusUpdatedV2ResponseBody
  - `event_type` 'public_incident.incident_created_v2' | 'private_incident.incident_created_v2' | 'public_incident.incident_updated_v2' | 'private_incident.incident_updated_v2' | 'public_incident.incident_status_updated_v2' | 'public_incident.follow_up_created_v1' | 'private_incident.follow_up_created_v1' | 'public_incident.follow_up_updated_v1' | 'private_incident.follow_up_updated_v1' | 'public_incident.action_created_v1' | 'private_incident.action_created_v1' | 'public_incident.action_updated_v1' | 'private_incident.action_updated_v1' | 'private_incident.membership_granted_v1' | 'private_incident.membership_revoked_v1', required: What type of event is this webhook for?
  - `public_incident.incident_status_updated_v2` IncidentWithStatusChangeV2, required
    - `incident` IncidentV2, required
      - `call_url` string: The call URL attached to this incident
      - `created_at` string, date-time, required: When the incident was created
      - `creator` ActorV2, required
        - `api_key` APIKeyV2
          - `id` string, required: Unique identifier for this API key
          - `name` string, required: The name of the API key, for the user's reference
        - `user` UserV2
          - `email` string: Email address of the user.
          - `id` string, required: Unique identifier of the user
          - `name` string, required: Name of the user
          - `role` 'viewer' | 'responder' | 'administrator' | 'owner' | 'unset', required: DEPRECATED: Role of the user as of March 9th 2023, this value is no longer updated.
          - `slack_user_id` string: Slack ID of the user
      - `custom_field_entries` CustomFieldEntryV2[], required: Custom field entries for this incident
        - `custom_field` CustomFieldTypeInfoV2, required
          - `description` string, required: Description of the custom field
          - `field_type` 'single_select' | 'multi_select' | 'text' | 'link' | 'numeric', required: Type of custom field
          - `id` string, required: Unique identifier for the custom field
          - `name` string, required: Human readable name for the custom field
          - `options` CustomFieldOptionV2[], required: What options are available for this custom field, if this field has options
            - `custom_field_id` string, required: ID of the custom field this option belongs to
            - `id` string, required: Unique identifier for the custom field option
            - `sort_key` integer, required: Sort key used to order the custom field options correctly
            - `value` string, required: Human readable name for the custom field option
        - `values` CustomFieldValueV2[], required: List of custom field values set on this entry
          - `value_catalog_entry` EmbeddedCatalogEntryV2
            - `aliases` string[]: Optional aliases that can be used to reference this entry
            - `external_id` string: An optional alternative ID for this entry, which is ensured to be unique for the type
            - `id` string, required: ID of this catalog entry
            - `name` string, required: Name is the human readable name of this entry
          - `value_link` string: If the custom field type is 'link', this will contain the value assigned.
          - `value_numeric` string: If the custom field type is 'numeric', this will contain the value assigned.
          - `value_option` CustomFieldOptionV2
            - `custom_field_id` string, required: ID of the custom field this option belongs to
            - `id` string, required: Unique identifier for the custom field option
            - `sort_key` integer, required: Sort key used to order the custom field options correctly
            - `value` string, required: Human readable name for the custom field option
          - `value_text` string: If the custom field type is 'text', this will contain the value assigned.
      - `duration_metrics` IncidentDurationMetricWithValueV2[]: Incident duration metrics and their measurements for this incident
        - `duration_metric` IncidentDurationMetricV2, required
          - `id` string, required: Unique ID of this incident duration metric
          - `name` string, required: Unique name of this duration metric
        - `value_seconds` integer: The calculated durations for this metric
      - `external_issue_reference` ExternalIssueReferenceV2
        - `issue_name` string, required: Human readable ID for the issue
        - `issue_permalink` string, required: URL linking directly to the action in the issue tracker
        - `provider` 'asana' | 'click_up' | 'linear' | 'jira' | 'jira_server' | 'github' | 'gitlab' | 'shortcut', required: ID of the issue tracker provider
      - `has_debrief` boolean: If this incident has a debrief attached
      - `id` string, required: Unique identifier for the incident
      - `incident_role_assignments` IncidentRoleAssignmentV2[], required: A list of who is assigned to each role for this incident
        - `assignee` UserV2
          - `email` string: Email address of the user.
          - `id` string, required: Unique identifier of the user
          - `name` string, required: Name of the user
          - `role` 'viewer' | 'responder' | 'administrator' | 'owner' | 'unset', required: DEPRECATED: Role of the user as of March 9th 2023, this value is no longer updated.
          - `slack_user_id` string: Slack ID of the user
        - `role` EmbeddedIncidentRoleV2, required
          - `created_at` string, date-time, required: When the role was created
          - `description` string, required: Describes the purpose of the role
          - `id` string, required: Unique identifier for the role
          - `instructions` string, required: Provided to whoever is nominated for the role. Note that this will be empty for the 'reporter' role.
          - `name` string, required: Human readable name of the incident role
          - `required` boolean: This field is deprecated.
          - `role_type` 'lead' | 'reporter' | 'custom', required: Type of incident role
          - `shortform` string, required: Short human readable name for Slack. Note that this will be empty for the 'reporter' role.
          - `updated_at` string, date-time, required: When the role was last updated
      - `incident_status` IncidentStatusV2, required
        - `category` 'triage' | 'declined' | 'merged' | 'canceled' | 'live' | 'learning' | 'closed' | 'paused', required: What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured
        - `created_at` string, date-time, required
        - `description` string, required: Rich text description of the incident status
        - `id` string, required: Unique ID of this incident status
        - `name` string, required: Unique name of this status
        - `rank` integer, required: Order of this incident status
        - `updated_at` string, date-time, required
      - `incident_timestamp_values` IncidentTimestampWithValueV2[]: Incident lifecycle events and when they occurred
        - `incident_timestamp` IncidentTimestampV2, required
          - `id` string, required: Unique ID of this incident timestamp
          - `name` string, required: Unique name of this timestamp
          - `rank` integer, required: Order in which this timestamp should be shown
        - `value` IncidentTimestampValueV2
          - `value` string, date-time: The current value of this timestamp, for this incident
      - `incident_type` IncidentTypeV2
        - `create_in_triage` 'always' | 'optional', required: Whether incidents of this must always, or can optionally, be created in triage
        - `created_at` string, date-time, required: When this resource was created
        - `description` string, required: What is this incident type for?
        - `id` string, required: Unique identifier for this Incident Type
        - `is_default` boolean, required: The default Incident Type is used when no other type is explicitly specified
        - `name` string, required: The name of this Incident Type
        - `private_incidents_only` boolean, required: Should all incidents created with this Incident Type be private?
        - `updated_at` string, date-time, required: When this resource was last updated
      - `mode` 'standard' | 'retrospective' | 'test' | 'tutorial', required: Whether the incident is real, a test, a tutorial, or importing as a retrospective incident
      - `name` string, required: Explanation of the incident
      - `permalink` string: A permanent link to the homepage for this incident
      - `postmortem_document_url` string: Description of the incident
      - `reference` string, required: Reference to this incident, as displayed across the product
      - `severity` SeverityV2
        - `created_at` string, date-time, required: When the action was created
        - `description` string, required: Description of the severity
        - `id` string, required: Unique identifier of the severity
        - `name` string, required: Human readable name of the severity
        - `rank` integer, required: Rank to help sort severities (lower numbers are less severe)
        - `updated_at` string, date-time, required: When the action was last updated
      - `slack_channel_id` string, required: ID of the Slack channel in the organisation Slack workspace. Note that the channel is sometimes created asynchronously, so may not be present when the incident is just created.
      - `slack_channel_name` string: Name of the slack channel
      - `slack_team_id` string, required: ID of the Slack team / workspace. This is only required if you are using a Slack Enterprise Grid with multiple teams.
      - `summary` string: Detailed description of the incident
      - `updated_at` string, date-time, required: When the incident was last updated
      - `visibility` 'public' | 'private', required: Whether the incident should be open to anyone in your Slack workspace (public), or invite-only (private). For more information on Private Incidents see our [help centre](https://help.incident.io/articles/5905558102-can-we-mark-incidents-as-sensitive-and-restrict-access).
      - `workload_minutes_late` number, double: Amount of time spent on the incident in late hours
      - `workload_minutes_sleeping` number, double: Amount of time spent on the incident in sleeping hours
      - `workload_minutes_total` number, double: Amount of time spent on the incident in total
      - `workload_minutes_working` number, double: Amount of time spent on the incident in working hours
    - `message` string: Message that explains the context behind the update
    - `new_status` IncidentStatusV2, required
      - `category` 'triage' | 'declined' | 'merged' | 'canceled' | 'live' | 'learning' | 'closed' | 'paused', required: What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured
      - `created_at` string, date-time, required
      - `description` string, required: Rich text description of the incident status
      - `id` string, required: Unique ID of this incident status
      - `name` string, required: Unique name of this status
      - `rank` integer, required: Order of this incident status
      - `updated_at` string, date-time, required
    - `previous_status` IncidentStatusV2, required
      - `category` 'triage' | 'declined' | 'merged' | 'canceled' | 'live' | 'learning' | 'closed' | 'paused', required: What category of status it is. All statuses apart from live (renamed in the app to Active) and learning (renamed in the app to Post-incident) are managed by incident.io and cannot be configured
      - `created_at` string, date-time, required
      - `description` string, required: Rich text description of the incident status
      - `id` string, required: Unique ID of this incident status
      - `name` string, required: Unique name of this status
      - `rank` integer, required: Order of this incident status
      - `updated_at` string, date-time, required

---

[API](https://skmtc.dev/incident/apis/incident-io.md) - [All operations](https://skmtc.dev/incident/apis/incident-io/llms.txt) - [OpenAPI document](https://skmtc.dev/incident/apis/incident-io/revisions/602fc25ddd76?raw)
