> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to incident.io

The incident.io connector lets your AI agent act in each user's incident.io account. Each user connects their own incident.io access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 111 tools.

**Authentication:** Bearer Token
**Categories:** Monitoring, Developer Tools
**Tools:** 111: 74 read, 37 write, 0 destructive
**Users sign in with:** Access token
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=INCIDENTIO)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the incident.io connection

   In **AgentKit > Connections**, create an incident.io connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'incidentio'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize incident.io:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'incidentio_actions_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "incidentio"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize incident.io:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="incidentio_actions_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their incident.io credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'incidentio_action_get',
  toolInput: {
    action_id: '<action_id>',
  },
  connector: 'incidentio',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="incidentio_action_get",
    tool_input={
        "action_id": "<action_id>",
    },
    connection_name="incidentio",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `incidentio_action_get`

Get Action · Read-only

Get one incident action by its ID.
Returns the action's description, status, assignee and incident ID.
Use incidentio_action_get when you have the action ID. Use incidentio_actions_list to find actions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action_id` (`string`, required): Unique identifier for the action. Example: 01FCNDV6P870EA6S7TK1DSYD5H

Example input: `{"action_id":"<action_id>"}`

### `incidentio_actions_list`

List Actions · Read-only

List incident actions (tasks to do while the incident is live), optionally for one incident, by incident mode or by creation and update dates.
Returns actions with id, incident ID, description, status and assignee.
Use incidentio_actions_list for in-incident tasks. Use incidentio_follow_ups_list for post-incident follow-ups.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An action's ID. This endpoint will return a list of actions after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `created_at_gte` (`string`, optional): Only return actions whose created at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `created_at_lte` (`string`, optional): Only return actions whose created at is on or before this date (YYYY-MM-DD). Example: 2026-01-31
- `incident_id` (`string`, optional): Find actions related to this incident. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `incident_mode` (`string`, optional): Filter to actions from incidents of the given mode. If not set, only actions from `standard` and `retrospective` incidents are returned. One of: standard, retrospective, test, tutorial, stream. Example: standard. One of: `standard`, `retrospective`, `test`, `tutorial`, `stream`.
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `updated_at_gte` (`string`, optional): Only return actions whose updated at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `updated_at_lte` (`string`, optional): Only return actions whose updated at is on or before this date (YYYY-MM-DD). Example: 2026-01-31

Example input: `{}`

### `incidentio_activity_log_entries_list`

List Incident Activity Log · Read-only

List the activity log of an incident: status and severity changes, role assignments, messages pinned and other system events.
Returns activity entries with id, type, timestamp, actor and content.
Use incidentio_activity_log_entries_list for the full audit of what happened. Use incidentio_timeline_items_list for curated timeline entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `incident_id` (`string`, required): Incident whose activity you want to list. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `after` (`string`, optional): An entry's ID. This endpoint returns the entries that follow it. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `id` (`array`, optional): Return only the activity entries with these IDs. Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{"incident_id":"<incident_id>"}`

### `incidentio_alert_get`

Get Alert · Read-only

Get one alert by its ID.
Returns the alert's title, description, status, alert source, deduplication key, attributes, tags and timestamps.
Use incidentio_alert_get when you have the alert ID. Use incidentio_alerts_list to find alerts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `alert_id` (`string`, required): Unique identifier for the alert. Example: 01FDAG4SAP5TYPT98WGR2N7W91

Example input: `{"alert_id":"<alert_id>"}`

### `incidentio_alert_note_get`

Get Alert Note · Read-only

Get one alert note by its ID.
Returns the note's markdown content, author, the alert or alert group it belongs to, and timestamps.
Use incidentio_alert_note_get when you have the note ID. Use incidentio_alert_notes_list to list notes on an alert.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `note_id` (`string`, required): Unique identifier for the alert note. Example: 01J1X9J85C7Y12G8P8W8K55Q5Y

Example input: `{"note_id":"<note_id>"}`

### `incidentio_alert_notes_list`

List Alert Notes · Read-only

List the notes left on an alert or an alert group. Provide exactly one of alert_id or alert_group_id.
Returns notes with id, markdown content, author and timestamps.
Use incidentio_alert_notes_list to read responder notes on an alert. Use incidentio_alert_note_create to add one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `alert_group_id` (`string`, optional): ID of the alert group to list notes for. Provide exactly one of alert_id or alert_group_id. Example: 01HB9Z8WANK6P870EA6S7TK1DS
- `alert_id` (`string`, optional): ID of the alert to list notes for. Provide exactly one of alert_id or alert_group_id. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_alert_tags_list`

List Alert Tags · Read-only

List the tags used on alerts, optionally filtered by a name search.
Returns tags with id and name.
Use incidentio_alert_tags_list to find existing tag names before tagging alerts or filtering incidentio_alerts_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): A tag's ID. This endpoint will return a list of tags after this ID in relation to the API response order. Example: 01GW2G3V0S59R238FAHPDS1R66
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `search` (`string`, optional): Filter to tags whose name contains this value (case-insensitive) Example: noisy

Example input: `{}`

### `incidentio_alerts_list`

List Alerts · Read-only

List alerts received from your alert sources, with optional filters on status, alert source, deduplication key, tags and dates.
Returns alerts with id, title, description, status (firing or resolved), alert source, deduplication key, attributes and timestamps.
Use incidentio_alerts_list to browse alerts. Use incidentio_alert_get for one alert and incidentio_incident_alerts_list to see which alerts are attached to an incident.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): If provided, pass this as the 'after' param to load the next page. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `alert_source_one_of` (`array`, optional): Only return alerts from one of these alert source IDs. Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `created_at_gte` (`string`, optional): Only return alerts whose created at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `created_at_lte` (`string`, optional): Only return alerts whose created at is on or before this date (YYYY-MM-DD). Example: 2026-01-31
- `deduplication_key` (`string`, optional): Only return alerts with exactly this deduplication key. Example: db-primary-cpu-high
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25. Default: `25`.
- `status_one_of` (`array`, optional): Only return alerts in one of these statuses: firing or resolved. Example: ["firing"]
- `tags_one_of` (`array`, optional): Only return alerts that have at least one of these tag names (see incidentio_alert_tags_list). Example: ["known issue"]
- `updated_at_gte` (`string`, optional): Only return alerts whose updated at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `updated_at_lte` (`string`, optional): Only return alerts whose updated at is on or before this date (YYYY-MM-DD). Example: 2026-01-31

Example input: `{}`

### `incidentio_catalog_entries_list`

List Catalog Entries · Read-only

List the entries of one catalog type, optionally matching an identifier (ID, external ID, name or alias).
Returns entries with id, name, external ID, aliases, rank and attribute values.
Use incidentio_catalog_entries_list to look up services, teams or customers. Use incidentio_catalog_entry_get when you have the entry ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `catalog_type_id` (`string`, required): ID of this catalog type. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `identifier` (`string`, optional): Only return entries matching this identifier: an entry ID, external ID or alias (and the name, if the catalog type uses names as identifiers). Example: payments-api
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25. Default: `25`.

Example input: `{"catalog_type_id":"<catalog_type_id>"}`

### `incidentio_catalog_entry_get`

Get Catalog Entry · Read-only

Get one catalog entry by its ID.
Returns the entry's name, external ID, aliases, rank and attribute values, plus its catalog type.
Use incidentio_catalog_entry_get when you have the entry ID. Use incidentio_catalog_entries_list to search a type's entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `catalog_entry_id` (`string`, required): ID of this catalog entry. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `expand` (`boolean`, optional): Whether to include details of all attribute links (forwards and backwards) within the response. Default behaviour (no query param) is to include only forward links. When expand is false, we only show attributes of the catalog entry itself.When expand is true, we show forward and backward links. Example: true

Example input: `{"catalog_entry_id":"<catalog_entry_id>"}`

### `incidentio_catalog_resources_list`

List Catalog Resources · Read-only

List the resource types that catalog attributes can hold, such as text, number, user or another catalog type.
Returns resources with type, label and description.
Use incidentio_catalog_resources_list when you need to know what values a catalog attribute accepts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_catalog_type_get`

Get Catalog Type · Read-only

Get one catalog type by its ID.
Returns the type's name, description and attribute schema.
Use incidentio_catalog_type_get to learn which attributes a type's entries carry. Use incidentio_catalog_types_list to list types.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `catalog_type_id` (`string`, required): ID of this catalog type. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"catalog_type_id":"<catalog_type_id>"}`

### `incidentio_catalog_types_list`

List Catalog Types · Read-only

List the catalog types in the account, such as services, teams or customers.
Returns catalog types with id, name, type name, description and attribute schema.
Use incidentio_catalog_types_list to get a catalog_type_id for incidentio_catalog_entries_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_custom_field_get`

Get Custom Field · Read-only

Get one custom field by its ID.
Returns the field's name, description, type and catalog settings.
Use incidentio_custom_field_get when you have the ID. Use incidentio_custom_fields_list to list them all.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `custom_field_id` (`string`, required): Unique identifier for the custom field. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"custom_field_id":"<custom_field_id>"}`

### `incidentio_custom_field_option_get`

Get Custom Field Option · Read-only

Get one custom field option by its ID.
Returns the option's value, sort key and custom field ID.
Use incidentio_custom_field_option_get when you have the option ID. Use incidentio_custom_field_options_list to list a field's options.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `option_id` (`string`, required): Unique identifier for the custom field option. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"option_id":"<option_id>"}`

### `incidentio_custom_field_options_list`

List Custom Field Options · Read-only

List the selectable options of a select-type custom field.
Returns options with id, value and sort key.
Use incidentio_custom_field_options_list to get value_option_id values for custom_field_entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `custom_field_id` (`string`, required): The custom field to list options for. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `after` (`string`, optional): A custom field option's ID. This endpoint will return a list of custom field options created after this option. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{"custom_field_id":"<custom_field_id>"}`

### `incidentio_custom_fields_list`

List Custom Fields · Read-only

List the incident custom fields configured in the account.
Returns custom fields with id, name, description and field type (single select, multi select, text, link, numeric and so on).
Use incidentio_custom_fields_list to get field IDs for custom_field_entries. Use incidentio_custom_field_options_list for a select field's options.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_escalation_get`

Get Escalation · Read-only

Get one escalation by its ID.
Returns the escalation's title, status, escalation path, who was paged, any linked alerts and incidents, and its event history.
Use incidentio_escalation_get when you have the escalation ID. Use incidentio_escalations_list to find escalations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `escalation_id` (`string`, required): Unique ID of the escalation. Example: 01G0J1EXE7AXZ2C93K61WBPYEH

Example input: `{"escalation_id":"<escalation_id>"}`

### `incidentio_escalation_path_get`

Get Escalation Path · Read-only

Get one escalation path by its ID.
Returns the path's name, levels, targets, working hours and repeat settings.
Use incidentio_escalation_path_get when you have the ID. Use incidentio_escalation_paths_list to list them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `escalation_path_id` (`string`, required): Unique identifier for this escalation path. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"escalation_path_id":"<escalation_path_id>"}`

### `incidentio_escalation_paths_list`

List Escalation Paths · Read-only

List escalation paths, which define who gets paged and in what order.
Returns escalation paths with id, name, levels and targets.
Use incidentio_escalation_paths_list to find an escalation_path_id for incidentio_escalation_create.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_escalations_list`

List Escalations · Read-only

List escalations (pages sent to on-call responders), with optional filters on status, escalation path, alert, incident and dates.
Returns escalations with id, title, status, escalation path, linked alerts and incidents, and timestamps.
Use incidentio_escalations_list to see who has been paged. Use incidentio_escalation_get for one escalation.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An escalation's ID. This endpoint will return a list of escalations after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `alert_one_of` (`array`, optional): Only return escalations created by one of these alert IDs. Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `created_at_gte` (`string`, optional): Only return escalations whose created at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `created_at_lte` (`string`, optional): Only return escalations whose created at is on or before this date (YYYY-MM-DD). Example: 2026-01-31
- `escalation_path_one_of` (`array`, optional): Only return escalations triggered on one of these escalation path IDs. Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `incident_one_of` (`array`, optional): Only return escalations connected to one of these incident IDs. Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `status_one_of` (`array`, optional): Only return escalations in one of these statuses: pending, triggered, acked, resolved, expired, cancelled, snoozed, delayed, pending_repeat. Example: ["triggered"]
- `updated_at_gte` (`string`, optional): Only return escalations whose updated at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `updated_at_lte` (`string`, optional): Only return escalations whose updated at is on or before this date (YYYY-MM-DD). Example: 2026-01-31

Example input: `{}`

### `incidentio_follow_up_get`

Get Follow-up · Read-only

Get one follow-up by its ID.
Returns the follow-up's title, description, status, assignee, priority, labels, incident ID and linked external issue.
Use incidentio_follow_up_get when you have the follow-up ID. Use incidentio_follow_ups_list to find follow-ups.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `follow_up_id` (`string`, required): Unique identifier for the follow-up. Example: 01FCNDV6P870EA6S7TK1DSYD5H

Example input: `{"follow_up_id":"<follow_up_id>"}`

### `incidentio_follow_ups_list`

List Follow-ups · Read-only

List follow-ups (post-incident tasks), optionally for one incident or owning team, or by creation and update dates.
Returns follow-ups with id, incident ID, title, description, status, assignee, priority, labels and any linked external issue.
Use incidentio_follow_ups_list to browse follow-ups. Use incidentio_follow_up_get for one follow-up and incidentio_actions_list for in-incident actions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): A follow-up's ID. This endpoint will return a list of follow-ups after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `assignee_team_id` (`string`, optional): Filter follow-ups that are assigned to the given team. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `created_at_gte` (`string`, optional): Only return follow-ups whose created at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `created_at_lte` (`string`, optional): Only return follow-ups whose created at is on or before this date (YYYY-MM-DD). Example: 2026-01-31
- `incident_id` (`string`, optional): Find follow-ups related to this incident. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `incident_mode` (`string`, optional): Filter to follow-ups from incidents of the given mode. If not set, only follow-ups from `standard` and `retrospective` incidents are returned. One of: standard, retrospective, test, tutorial, stream. Example: standard. One of: `standard`, `retrospective`, `test`, `tutorial`, `stream`.
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `updated_at_gte` (`string`, optional): Only return follow-ups whose updated at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `updated_at_lte` (`string`, optional): Only return follow-ups whose updated at is on or before this date (YYYY-MM-DD). Example: 2026-01-31

Example input: `{}`

### `incidentio_identity_get`

Get API Key Identity · Read-only

Get the identity of the connected API key: its name, roles and dashboard URL.
Returns the key's name, roles and the organisation's dashboard URL.
Use incidentio_identity_get to check that the connection works and which permissions the key has.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_incident_alerts_list`

List Incident Alerts · Read-only

List the links between alerts and incidents, filtered by incident or by alert.
Returns incident alerts with id, the alert, the incident ID and when they were linked.
Use incidentio_incident_alerts_list to see which alerts belong to an incident or which incident an alert was attached to.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): If provided, pass this as the 'after' param to load the next page. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `alert_id` (`string`, optional): Alert that this incident alert refers to. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `incident_id` (`string`, optional): Incident that this incident alert is attached to. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25. Default: `25`.

Example input: `{}`

### `incidentio_incident_attachments_list`

List Incident Attachments · Read-only

List external resources attached to incidents, such as PagerDuty incidents, GitHub pull requests, Jira issues or Sentry issues, filtered by incident, external ID or resource type.
Returns attachments with id, incident ID and the external resource (type, ID, title, permalink).
Use incidentio_incident_attachments_list to see linked external items. Use incidentio_incident_attachment_create to add one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `external_id` (`string`, optional): ID of the resource in the external system. Example: 123
- `incident_id` (`string`, optional): Incident that this attachment is against. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `resource_type` (`string`, optional): E.g. PagerDuty: the external system that holds the resource. One of: pager_duty_incident, opsgenie_alert, datadog_monitor_alert, github_pull_request, gitlab_merge_request, sentry_issue, jira_issue, jsm_alert, atlassian_statuspage_incident, zendesk_ticket, google_calendar_event, outlook_calendar_event, slack_file, salesforce_case, pylon_issue, arbitrary_url, scrubbed, statuspage_incident. Example: pager_duty_incident. One of: `pager_duty_incident`, `opsgenie_alert`, `datadog_monitor_alert`, `github_pull_request`, `gitlab_merge_request`, `sentry_issue`, `jira_issue`, `jsm_alert`, `atlassian_statuspage_incident`, `zendesk_ticket`, `google_calendar_event`, `outlook_calendar_event`, `slack_file`, `salesforce_case`, `pylon_issue`, `arbitrary_url`, `scrubbed`, `statuspage_incident`.

Example input: `{}`

### `incidentio_incident_get`

Get Incident · Read-only

Get one incident by its ID.
Returns the full incident: reference, name, summary, severity, status, type, mode, visibility, role assignments, custom field values, timestamps, Slack channel and permalink.
Use incidentio_incident_get when you have the incident ID. Use incidentio_incidents_list to find incidents by status, severity or date.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `incident_id` (`string`, required): The incident's ID, or its numeric reference such as 123 for INC-123. Example: 01FDAG4SAP5TYPT98WGR2N7W91

Example input: `{"incident_id":"<incident_id>"}`

### `incidentio_incident_participants_list`

List Incident Participants · Read-only

List the people involved in an incident and how they took part (active responders or observers).
Returns participants with user and participant type.
Use incidentio_incident_participants_list to see who is working on an incident. Use incidentio_incident_get for role assignments.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `incident_id` (`string`, required): Find participants of this incident. Example: 01FCNDV6P870EA6S7TK1DSYD5H

Example input: `{"incident_id":"<incident_id>"}`

### `incidentio_incident_relationships_list`

List Related Incidents · Read-only

List incidents related to a given incident.
Returns relationships with the related incident and the relationship type.
Use incidentio_incident_relationships_list to find linked or duplicate incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `incident_id` (`string`, required): ID of the incident to find relationships for. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{"incident_id":"<incident_id>"}`

### `incidentio_incident_role_get`

Get Incident Role · Read-only

Get one incident role by its ID.
Returns the role's name, description, instructions and shortform.
Use incidentio_incident_role_get when you have the ID. Use incidentio_incident_roles_list to list them all.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `role_id` (`string`, required): Unique identifier for the role. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"role_id":"<role_id>"}`

### `incidentio_incident_roles_list`

List Incident Roles · Read-only

List the incident roles configured in the account, such as incident lead.
Returns roles with id, name, description, instructions and shortform.
Use incidentio_incident_roles_list to get role IDs for assigning people on incidentio_incident_create or incidentio_incident_edit.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_incident_status_get`

Get Incident Status · Read-only

Get one incident status by its ID.
Returns the status's name, description, category and rank.
Use incidentio_incident_status_get when you have the ID. Use incidentio_incident_statuses_list to list them all.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_id` (`string`, required): Unique ID of this incident status. Example: 01FCNDV6P870EA6S7TK1DSYD5H

Example input: `{"status_id":"<status_id>"}`

### `incidentio_incident_statuses_list`

List Incident Statuses · Read-only

List the incident statuses configured in the account.
Returns statuses with id, name, description, category (triage, live, learning, closed and so on) and rank.
Use incidentio_incident_statuses_list to get status IDs for creating, editing or filtering incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_incident_template_get`

Get Incident Template · Read-only

Get one incident template by its ID.
Returns the template's name and the incident fields it pre-fills.
Use incidentio_incident_template_get when you have the ID. Use incidentio_incident_templates_list to list them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `template_id` (`string`, required): The incident template's ID. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"template_id":"<template_id>"}`

### `incidentio_incident_templates_list`

List Incident Templates · Read-only

List incident templates, which pre-fill fields such as severity, type and custom fields when declaring an incident.
Returns templates with id, name and the values they set.
Use incidentio_incident_templates_list to find a template. Use incidentio_incident_template_get for one template.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An incident template's ID. This endpoint returns a list of templates after this ID in relation to the API response order. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_incident_timestamp_get`

Get Incident Timestamp · Read-only

Get one incident timestamp definition by its ID.
Returns the timestamp's name and rank.
Use incidentio_incident_timestamp_get when you have the ID. Use incidentio_incident_timestamps_list to list them all.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `timestamp_id` (`string`, required): Unique ID of this incident timestamp. Example: 01FCNDV6P870EA6S7TK1DSYD5H

Example input: `{"timestamp_id":"<timestamp_id>"}`

### `incidentio_incident_timestamps_list`

List Incident Timestamps · Read-only

List the incident timestamps configured in the account, such as impact started or fixed at.
Returns timestamps with id, name and rank.
Use incidentio_incident_timestamps_list to get timestamp IDs for incidentio_incident_create and incidentio_incident_edit.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_incident_type_get`

Get Incident Type · Read-only

Get one incident type by its ID.
Returns the type's name, description and settings.
Use incidentio_incident_type_get when you have the ID. Use incidentio_incident_types_list to list them all.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `incident_type_id` (`string`, required): Unique identifier for this Incident Type. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"incident_type_id":"<incident_type_id>"}`

### `incidentio_incident_types_list`

List Incident Types · Read-only

List the incident types configured in the account.
Returns incident types with id, name, description and whether they are the default or private by default.
Use incidentio_incident_types_list to get type IDs for creating or filtering incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_incident_updates_list`

List Incident Updates · Read-only

List the written status updates posted on incidents, optionally for a single incident.
Returns updates with id, incident ID, message, the new status and severity, who posted it and when.
Use incidentio_incident_updates_list to read the update history. Use incidentio_timeline_items_list for custom timeline entries and incidentio_activity_log_entries_list for the full activity log.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `incident_id` (`string`, optional): Incident whose updates you want to list. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_incidents_list`

List Incidents · Read-only

List incidents in the incident.io account, newest first by default, with optional filters on status, status category, severity, type, mode and dates.
Returns incidents with id, reference (e.g. INC-123), name, summary, severity, status, type, role assignments, custom field values, timestamps and permalink, plus pagination metadata.
Use incidentio_incidents_list to browse or filter incidents. Use incidentio_incident_get when you already have the incident ID.
Status, severity and type filters take IDs from incidentio_incident_statuses_list, incidentio_severities_list and incidentio_incident_types_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An incident's ID. This endpoint will return a list of incidents after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `created_at_gte` (`string`, optional): Only return incidents whose created at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `created_at_lte` (`string`, optional): Only return incidents whose created at is on or before this date (YYYY-MM-DD). Example: 2026-01-31
- `filter_mode` (`string`, optional): How to combine the filters: 'all' combines them with AND logic (all must match), 'any' combines them with OR logic (any can match). Defaults to 'all'. One of: all, any. Example: all. One of: `all`, `any`.
- `incident_type_one_of` (`array`, optional): Only return incidents of one of these incident type IDs (from incidentio_incident_types_list). Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `mode_one_of` (`array`, optional): Only return incidents in one of these modes: standard, retrospective, test, tutorial. If unset, incident.io returns standard and retrospective incidents. Example: ["standard"]
- `page_size` (`integer`, optional): Integer number of records to return. Maximum 500. Example: 25
- `severity_gte` (`string`, optional): Only return incidents at or above this severity ID's rank. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `severity_one_of` (`array`, optional): Only return incidents with one of these severity IDs (from incidentio_severities_list). Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `sort_by` (`string`, optional): What order to return results in. One of: created_at_newest_first, created_at_oldest_first. Example: created_at_newest_first. One of: `created_at_newest_first`, `created_at_oldest_first`.
- `status_category_not_in` (`array`, optional): Exclude incidents whose status is in any of these categories (triage, declined, merged, canceled, live, learning, closed, paused). Example: ["closed"]
- `status_category_one_of` (`array`, optional): Only return incidents whose status is in one of these categories: triage, declined, merged, canceled, live, learning, closed or paused. incident.io's own example uses 'active' for all open incidents. Example: ["live"]
- `status_not_in` (`array`, optional): Exclude incidents in any of these incident status IDs. Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `status_one_of` (`array`, optional): Only return incidents in one of these incident status IDs (from incidentio_incident_statuses_list). Example: ["01FCNDV6P870EA6S7TK1DSYDG0"]
- `updated_at_gte` (`string`, optional): Only return incidents whose updated at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `updated_at_lte` (`string`, optional): Only return incidents whose updated at is on or before this date (YYYY-MM-DD). Example: 2026-01-31

Example input: `{}`

### `incidentio_maintenance_window_get`

Get Maintenance Window · Read-only

Get one alert maintenance window by its ID.
Returns the window's name, lead, start and end times, alert conditions and notification settings.
Use incidentio_maintenance_window_get when you have the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `maintenance_window_id` (`string`, required): Unique identifier of the maintenance window. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"maintenance_window_id":"<maintenance_window_id>"}`

### `incidentio_maintenance_windows_list`

List Maintenance Windows · Read-only

List alert maintenance windows (periods when matching alerts are suppressed or rerouted), optionally by status: active, upcoming or past.
Returns maintenance windows with id, name, lead, start and end times and alert conditions.
Use incidentio_maintenance_windows_list for internal alert suppression. Use incidentio_status_page_maintenances_list for public status page notices.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): The ID of the last maintenance window on the previous page. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `status` (`string`, optional): Filter by window status: active (start_at <= now < end_at), upcoming (now < start_at), or past (end_at <= now) One of: active, upcoming, past. Example: active. One of: `active`, `upcoming`, `past`.

Example input: `{}`

### `incidentio_notification_pause_get`

Get On-call Notification Pause · Read-only

Get one on-call notification pause by its ID.
Returns the pause's user, start and end times and reason.
Use incidentio_notification_pause_get when you have the ID. Use incidentio_notification_pauses_list to list pauses.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pause_id` (`string`, required): The pause's ID. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"pause_id":"<pause_id>"}`

### `incidentio_notification_pauses_list`

List On-call Notification Pauses · Read-only

List on-call notification pauses (periods when users won't be paged) in a time window. By default only active and future pauses are returned.
Returns pauses with id, user, start and end times and reason.
Use incidentio_notification_pauses_list to check who has paused paging.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): A pause's ID. This endpoint will return a list of pauses after this ID in relation to the API response order. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `from` (`string`, optional): Only return pauses that end after this time. Defaults to now, so by default only active and upcoming pauses are returned. ISO 8601 timestamp. Example: 2021-08-17T00:00:00Z
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `to` (`string`, optional): Only return pauses that start before this time. ISO 8601 timestamp. Example: 2021-08-24T00:00:00Z

Example input: `{}`

### `incidentio_postmortem_document_content_get`

Get Post-mortem Content · Read-only

Get the full content of a post-mortem document rendered as markdown.
Returns one markdown string with headings, timeline, custom fields and follow-ups as they appear in incident.io.
Use incidentio_postmortem_document_content_get to read or summarise a post-mortem. Use incidentio_postmortem_document_get for its status and metadata.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `postmortem_id` (`string`, required): Unique identifier for the post-mortem document. Example: 01GDZEW57FDA1K4S63MGMQ5DS9

Example input: `{"postmortem_id":"<postmortem_id>"}`

### `incidentio_postmortem_document_get`

Get Post-mortem · Read-only

Get one post-mortem document's details by its ID.
Returns the post-mortem's name, status, incident ID, document URL and timestamps (not the body).
Use incidentio_postmortem_document_get for metadata. Use incidentio_postmortem_document_content_get for the document text.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `postmortem_id` (`string`, required): Unique identifier for the post-mortem document. Example: 01GDZEW57FDA1K4S63MGMQ5DS9

Example input: `{"postmortem_id":"<postmortem_id>"}`

### `incidentio_postmortem_documents_list`

List Post-mortems · Read-only

List post-mortem documents, optionally for one incident.
Returns post-mortems with id, incident ID, name, status, document URL and timestamps.
Use incidentio_postmortem_documents_list to find post-mortems. Use incidentio_postmortem_document_content_get to read one as markdown.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): A post-mortem document's ID. This endpoint will return a list of post-mortem documents after this ID. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `incident_id` (`string`, optional): Filter to only return post-mortem documents for the given incident. Example: 01GBA8J19SMXQWPJMX3P2ESCVG
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `sort_by` (`string`, optional): Controls the order that results are returned in. One of: created_at_newest_first, created_at_oldest_first. Example: created_at_oldest_first. One of: `created_at_newest_first`, `created_at_oldest_first`.

Example input: `{}`

### `incidentio_schedule_entries_list`

List Schedule Entries · Read-only

List the on-call shifts for a schedule within a time window, including overrides.
Returns final, scheduled and override entries with user, start and end times.
Use incidentio_schedule_entries_list to answer 'who is on call'. Use incidentio_schedule_overrides_list for overrides only.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `schedule_id` (`string`, required): The ID of the schedule to get entries for. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `entry_window_end` (`string`, optional): The end of the window to get entries for. ISO 8601 timestamp. Example: 2021-01-01T00:00:00Z
- `entry_window_start` (`string`, optional): The start of the window to get entries for. May also carry an opaque pagination cursor previously returned in `pagination_meta.after` — pass it back here unchanged to fetch the next page (leave `entry_window_end` unchanged from the original request). Example: 2021-01-01T00:00:00Z

Example input: `{"schedule_id":"<schedule_id>"}`

### `incidentio_schedule_get`

Get Schedule · Read-only

Get one on-call schedule by its ID.
Returns the schedule's name, timezone, rotations, layers, handover times and current shifts.
Use incidentio_schedule_get for a schedule's configuration. Use incidentio_schedule_entries_list for the actual shifts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `schedule_id` (`string`, required): Unique internal ID of the schedule. Example: 01G0J1EXE7AXZ2C93K61WBPYEH

Example input: `{"schedule_id":"<schedule_id>"}`

### `incidentio_schedule_override_get`

Get Schedule Override · Read-only

Get one schedule override by its ID.
Returns the override's user, schedule, rotation, layer, start and end times.
Use incidentio_schedule_override_get when you have the override ID. Use incidentio_schedule_overrides_list to find overrides.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `override_id` (`string`, required): The override ID to get. Example: 01FDAG4SAP5TYPT98WGR2N7W91

Example input: `{"override_id":"<override_id>"}`

### `incidentio_schedule_overrides_list`

List Schedule Overrides · Read-only

List the overrides on a schedule, optionally for one rotation or layer.
Returns overrides with id, user, rotation, layer, start and end times.
Use incidentio_schedule_overrides_list to see cover arrangements. Use incidentio_schedule_entries_list for the resulting shifts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `schedule_id` (`string`, required): The ID of the schedule to get overrides for. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `after` (`string`, optional): An override's ID. This endpoint will return a list of overrides after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `layer_id` (`string`, optional): If set, only return overrides on this layer. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `rotation_id` (`string`, optional): If set, only return overrides on this rotation. Example: 01FDAG4SAP5TYPT98WGR2N7W91

Example input: `{"schedule_id":"<schedule_id>"}`

### `incidentio_schedules_list`

List Schedules · Read-only

List on-call schedules.
Returns schedules with id, name, timezone, rotations and layers, current shifts and (for page sizes of 25 or less) next shifts.
Use incidentio_schedules_list to find a schedule. Use incidentio_schedule_entries_list to see who is on call in a time window.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): A schedule's ID. This endpoint will return a list of schedules after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_severities_list`

List Severities · Read-only

List the severities configured in the account.
Returns severities with id, name, description and rank.
Use incidentio_severities_list to get severity IDs for creating, editing or filtering incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_severity_get`

Get Severity · Read-only

Get one severity by its ID.
Returns the severity's name, description and rank.
Use incidentio_severity_get when you have the ID. Use incidentio_severities_list to list all severities.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `severity_id` (`string`, required): Unique identifier of the severity. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"severity_id":"<severity_id>"}`

### `incidentio_status_page_component_availability_get`

Get Component Availability · Read-only

Get the availability (uptime) of a status page component over a time window.
Returns the availability percentage and the outages that affected it in that window.
Use incidentio_status_page_component_availability_get for uptime reporting.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `component_id` (`string`, required): ID of the component. You can find this by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `end_at` (`string`, required): End of the availability window. ISO 8601 timestamp. Example: 2026-02-01T00:00:00Z
- `start_at` (`string`, required): Start of the availability window. ISO 8601 timestamp. Example: 2026-01-01T00:00:00Z
- `status_page_id` (`string`, required): ID of the status page. You can find this by calling the ListStatusPages endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"component_id":"<component_id>","end_at":"<end_at>","start_at":"<start_at>","status_page_id":"<status_page_id>"}`

### `incidentio_status_page_component_get`

Get Status Page Component · Read-only

Get one status page component by its ID.
Returns the component's name and description.
Use incidentio_status_page_component_get when you have the component ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `component_id` (`string`, required): Unique identifier of the status page component. Example: 01FCNDV6P870EA6S7TK1DSYDG1

Example input: `{"component_id":"<component_id>"}`

### `incidentio_status_page_components_list`

List Status Page Components · Read-only

List the status page components in the account.
Returns components with id, name and description.
Use incidentio_status_page_components_list to browse components. Use incidentio_status_page_structure_get to see how one page groups them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_status_page_get`

Get Status Page · Read-only

Get one status page by its ID.
Returns the page's name, public URL and settings.
Use incidentio_status_page_get for page details. Use incidentio_status_page_structure_get for its components.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_page_id` (`string`, required): ID of the status page. You can find this by calling the ListStatusPages endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"status_page_id":"<status_page_id>"}`

### `incidentio_status_page_incident_get`

Get Status Page Incident · Read-only

Get one status page incident by its ID.
Returns its name, current status, affected components and the published updates.
Use incidentio_status_page_incident_get when you have the ID. Use incidentio_status_page_incidents_list to find one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_page_incident_id` (`string`, required): ID of the status page incident. Example: 01FCNDV6P870EA6S7TK1DSYDG1

Example input: `{"status_page_incident_id":"<status_page_incident_id>"}`

### `incidentio_status_page_incidents_list`

List Status Page Incidents · Read-only

List the incidents published on a status page, optionally filtered by component, component group, sub-page or time window.
Returns status page incidents with id, name, status, affected components and updates.
Use incidentio_status_page_incidents_list for public-facing incidents. Use incidentio_incidents_list for internal incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_page_id` (`string`, required): ID of the status page. You can find this by calling the ListStatusPages endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `component_id` (`string`, optional): Filter status page incidents to only those that impacted the specified component. This ID may be found by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `end_at` (`string`, optional): Filter status page incidents to only those that had impacts during or before this time. ISO 8601 timestamp. Example: 2021-08-17T13:28:57.801578Z
- `group_id` (`string`, optional): Filter status page incidents to only those that impacted components in the specified group. This ID may be found by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG2
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `start_at` (`string`, optional): Filter status page incidents to only those that had impacts during or after this time. ISO 8601 timestamp. Example: 2021-08-17T13:28:57.801578Z
- `sub_page_id` (`string`, optional): Filter status page incidents to only those that impacted the specified sub-page. This ID may be found by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG3

Example input: `{"status_page_id":"<status_page_id>"}`

### `incidentio_status_page_maintenance_get`

Get Status Page Maintenance · Read-only

Get one status page maintenance window by its ID.
Returns its name, status, start and end times, affected components and updates.
Use incidentio_status_page_maintenance_get when you have the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_page_maintenance_id` (`string`, required): ID of the status page maintenance window. Example: 01FCNDV6P870EA6S7TK1DSYDG1

Example input: `{"status_page_maintenance_id":"<status_page_maintenance_id>"}`

### `incidentio_status_page_maintenances_list`

List Status Page Maintenances · Read-only

List the maintenance windows published on a status page, optionally filtered by component, group, sub-page or time window.
Returns maintenances with id, name, status, start and end times, affected components and updates.
Use incidentio_status_page_maintenances_list for public maintenance notices. Use incidentio_maintenance_windows_list for internal alert-suppression windows.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_page_id` (`string`, required): ID of the status page. You can find this by calling the ListStatusPages endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `component_id` (`string`, optional): Filter status page maintenance windows to only those that impacted the specified component. This ID may be found by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `end_at` (`string`, optional): Filter status page maintenance windows to only those that had impacts during or before this time. ISO 8601 timestamp. Example: 2021-08-17T13:28:57.801578Z
- `group_id` (`string`, optional): Filter status page maintenance windows to only those that impacted components in the specified group. This ID may be found by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG2
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `start_at` (`string`, optional): Filter status page maintenance windows to only those that had impacts during or after this time. ISO 8601 timestamp. Example: 2021-08-17T13:28:57.801578Z
- `sub_page_id` (`string`, optional): Filter status page maintenance windows to only those that impacted the specified sub-page. This ID may be found by calling the ShowStatusPageStructure endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG3

Example input: `{"status_page_id":"<status_page_id>"}`

### `incidentio_status_page_structure_get`

Get Status Page Structure · Read-only

Get the component structure of a status page: its groups and components in display order.
Returns groups and components with their IDs and names.
Use incidentio_status_page_structure_get to find component IDs for status page incidents and maintenance.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status_page_id` (`string`, required): ID of the status page. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"status_page_id":"<status_page_id>"}`

### `incidentio_status_pages_list`

List Status Pages · Read-only

List the status pages in the account.
Returns status pages with id, name, public URL and settings.
Use incidentio_status_pages_list to get a status_page_id for status page incidents and maintenance.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_team_get`

Get Team · Read-only

Get one team by its ID.
Returns the team's name and members.
Use incidentio_team_get when you have the team ID. Use incidentio_teams_list to list teams.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `team_id` (`string`, required): Unique ID of the team. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"team_id":"<team_id>"}`

### `incidentio_teams_list`

List Teams · Read-only

List teams in the incident.io account.
Returns teams with id, name and members.
Use incidentio_teams_list to find a team ID for follow-up assignment or team access to private incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{}`

### `incidentio_timeline_items_list`

List Timeline Items · Read-only

List the custom timeline items on an incident's timeline.
Returns timeline items with id, title, description, timestamp and creator, plus pagination metadata.
Use incidentio_timeline_items_list to read the incident timeline. Use incidentio_activity_log_entries_list for system-generated activity.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `incident_id` (`string`, required): Incident whose timeline you want to list. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `after` (`string`, optional): A timeline item's ID. This endpoint returns the items that follow it. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25

Example input: `{"incident_id":"<incident_id>"}`

### `incidentio_user_get`

Get User · Read-only

Get one user by their incident.io user ID.
Returns the user's name, email, Slack user ID and roles.
Use incidentio_user_get when you have the user ID. Use incidentio_users_list to find a user by email.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`string`, required): Unique identifier of the user. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"user_id":"<user_id>"}`

### `incidentio_users_list`

List Users · Read-only

List users in the incident.io account, optionally filtered by email or Slack user ID.
Returns users with id, name, email, role, Slack user ID and base role.
Use incidentio_users_list to look up a user ID by email. Use incidentio_user_get when you have the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): An record's ID. This endpoint will return a list of records after this ID in relation to the API response order. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `email` (`string`, optional): Filter by email address. Example: john.doe@incident.io
- `include_inactive` (`boolean`, optional): Include deactivated or not-yet-active users (defaults to false). Useful for resolving users who have since been offboarded. Example: true
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `slack_user_id` (`string`, optional): Filter by Slack user ID. Example: U12345678

Example input: `{}`

### `incidentio_workflow_get`

Get Workflow · Read-only

Get one workflow by its ID.
Returns the workflow's name, trigger, conditions, steps and state.
Use incidentio_workflow_get when you have the workflow ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workflow_id` (`string`, required): Unique identifier for the workflow. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `skip_step_upgrades` (`boolean`, optional): Skips workflow step upgrades, when the parameters for an existing workflow step change. Example: false

Example input: `{"workflow_id":"<workflow_id>"}`

### `incidentio_workflow_run_get`

Get Workflow Run · Read-only

Get one workflow run by its ID.
Returns the run's workflow, incident, status, step results and timestamps.
Use incidentio_workflow_run_get to see why a workflow run succeeded or failed.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workflow_run_id` (`string`, required): Unique identifier for the workflow run. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"workflow_run_id":"<workflow_run_id>"}`

### `incidentio_workflow_runs_list`

List Workflow Runs · Read-only

List workflow runs, optionally for one workflow, one incident or a creation date range.
Returns runs with id, workflow, incident, status and timestamps.
Use incidentio_workflow_runs_list to check whether an automation ran on an incident. Use incidentio_workflow_run_get for one run.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `after` (`string`, optional): A workflow run's ID. This endpoint will return a list of workflow runs after this ID in relation to the API response order. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `created_at_gte` (`string`, optional): Only return workflow runs whose created at is on or after this date (YYYY-MM-DD). Example: 2026-01-01
- `created_at_lte` (`string`, optional): Only return workflow runs whose created at is on or before this date (YYYY-MM-DD). Example: 2026-01-31
- `incident_id` (`string`, optional): Unique identifier for the incident to filter by. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `page_size` (`integer`, optional): Number of records to return per page. Example: 25
- `workflow_id` (`string`, optional): Unique identifier for the workflow to filter by. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{}`

### `incidentio_workflows_list`

List Workflows · Read-only

List the automation workflows configured in the account.
Returns workflows with id, name, trigger, state and conditions.
Use incidentio_workflows_list to see which automations exist. Use incidentio_workflow_runs_list to see when they ran.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `incidentio_action_create`

Create Action · Write

Create an action on an incident, optionally assigned to a user.
Returns the created action.
Use incidentio_action_create for a task to do during the incident. Use incidentio_follow_up_create for post-incident work.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `description` (`string`, required): Description of the action. Supports Markdown. Example: Call the fire brigade
- `incident_id` (`string`, required): Unique identifier of the incident the action belongs to. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `assignee_id` (`string`, optional): ID of the user this action is assigned to. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"description":"<description>","incident_id":"<incident_id>"}`

### `incidentio_action_update`

Update Action · Write

Replace an action's description, status and assignee. Description and status are always required.
Returns the updated action.
Use incidentio_action_update to complete or reassign an action. Get current values with incidentio_action_get first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action_id` (`string`, required): Unique identifier for the action. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `description` (`string`, required): Description of the action. Supports Markdown. Example: Call the fire brigade
- `status` (`string`, required): Status of the action. Setting this to `deleted` is not allowed; use the delete endpoint instead. One of: outstanding, completed, deleted, not_doing. Example: outstanding. One of: `outstanding`, `completed`, `deleted`, `not_doing`.
- `assignee_id` (`string`, optional): ID of the user this action is assigned to. Set to null to unassign. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"action_id":"<action_id>","description":"<description>","status":"outstanding"}`

### `incidentio_alert_note_create`

Create Alert Note · Write

Add a markdown note to an alert or an alert group. Provide exactly one of alert_id or alert_group_id.
Returns the created note.
Use incidentio_alert_note_create to record context on an alert, such as known causes.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `content` (`string`, required): Markdown body of the note. Example: Customer reports **checkout 500s** starting ~14:32 UTC. Investigating `payments-api`.

- Error rate: ~12% on `/checkout`
- Region: `eu-west-1`
- See [dashboard](https://grafana.example.com/d/abc)
- `alert_group_id` (`string`, optional): ID of the alert group to add the note to. Provide exactly one of alert_id or alert_group_id. Example: 01HB9Z8WANK6P870EA6S7TK1DS
- `alert_id` (`string`, optional): ID of the alert to add the note to. Provide exactly one of alert_id or alert_group_id. Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"content":"<content>"}`

### `incidentio_alert_note_update`

Update Alert Note · Write

Replace the markdown content of an alert note.
Returns the updated note.
Use incidentio_alert_note_update to correct a note. Use incidentio_alert_note_create to add a new one.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `content` (`string`, required): Markdown body of the note. Example: Customer reports **checkout 500s** starting ~14:32 UTC. Investigating `payments-api`.

- Error rate: ~12% on `/checkout`
- Region: `eu-west-1`
- See [dashboard](https://grafana.example.com/d/abc)
- `note_id` (`string`, required): ID of the alert note. Example: 01J1X9J85C7Y12G8P8W8K55Q5Y

Example input: `{"content":"<content>","note_id":"<note_id>"}`

### `incidentio_alert_resolve`

Resolve Alert · Write

Resolve a firing alert so it stops paging and is marked resolved.
Returns the resolved alert.
Use incidentio_alert_resolve to close out an alert. Use incidentio_escalation_cancel to stop a page without resolving the alert.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `alert_id` (`string`, required): Unique identifier for the alert. Example: 01FDAG4SAP5TYPT98WGR2N7W91

Example input: `{"alert_id":"<alert_id>"}`

### `incidentio_alert_tags_add`

Add Alert Tags · Write

Add one or more tags to an alert, keeping its existing tags.
Returns the alert with its updated tags.
Use incidentio_alert_tags_add to label an alert. Use incidentio_alert_tags_set to replace all tags and incidentio_alert_tags_remove to drop some.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `alert_id` (`string`, required): Unique identifier for the alert. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `tags` (`array`, required): Tag names to add to this alert. Example: ["known issue", "customer impacting"]

Example input: `{"alert_id":"<alert_id>","tags":["known issue","customer impacting"]}`

### `incidentio_alert_tags_remove`

Remove Alert Tags · Write

Remove one or more tags from an alert.
Returns the alert with its updated tags.
Use incidentio_alert_tags_remove to drop specific tags. Use incidentio_alert_tags_set to replace the whole set.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `alert_id` (`string`, required): Unique identifier for the alert. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `tags` (`array`, required): Tag names to remove from this alert. Example: ["known issue", "customer impacting"]

Example input: `{"alert_id":"<alert_id>","tags":["known issue","customer impacting"]}`

### `incidentio_alert_tags_set`

Set Alert Tags · Write

Replace all tags on an alert with the given set. An empty list clears every tag.
Returns the alert with its updated tags.
Use incidentio_alert_tags_set to define the exact tag set. Use incidentio_alert_tags_add to add without removing others.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `alert_id` (`string`, required): Unique identifier for the alert. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `tags` (`array`, required): The complete set of tag names for this alert. Example: ["known issue", "customer impacting"]

Example input: `{"alert_id":"<alert_id>","tags":["known issue","customer impacting"]}`

### `incidentio_catalog_entry_create`

Create Catalog Entry · Write

Create an entry in a catalog type, with a name, attribute values and optional external ID, aliases and rank.
Returns the created catalog entry.
Use incidentio_catalog_entry_create to add a service, team or customer. Check the type's attributes with incidentio_catalog_type_get first.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attribute_values` (`object`, required): Attribute values keyed by attribute ID. Each value holds either a single literal value or an array_value list for multi-value attributes. Get the attribute IDs from incidentio_catalog_type_get. Example: {"01GW2G3V0S59R238FAHPDS1R66": {"value": {"literal": "Payments"}}}
- `catalog_type_id` (`string`, required): ID of this catalog type. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `name` (`string`, required): Name is the human readable name of this entry. Example: Primary On-call
- `aliases` (`array`, optional): Optional aliases that can be used to reference this entry. Example: ["lawrence@incident.io", "lawrence"]
- `external_id` (`string`, optional): An optional alternative ID for this entry, which is ensured to be unique for the type. Example: 761722cd-d1d7-477b-ac7e-90f9e079dc33
- `rank` (`integer`, optional): When catalog type is ranked, this is used to help order things. Example: 3

Example input: `{"attribute_values":{},"catalog_type_id":"<catalog_type_id>","name":"<name>"}`

### `incidentio_catalog_entry_update`

Update Catalog Entry · Write

Replace a catalog entry's name, attribute values, external ID, aliases and rank. Set update_attributes to change only some attributes.
Returns the updated catalog entry.
Use incidentio_catalog_entry_update to edit an entry. Get its current values with incidentio_catalog_entry_get first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `attribute_values` (`object`, required): Attribute values keyed by attribute ID. Each value holds either a single literal value or an array_value list for multi-value attributes. Unless update_attributes is set, attributes you leave out are cleared. Example: {"01GW2G3V0S59R238FAHPDS1R66": {"value": {"literal": "Payments"}}}
- `catalog_entry_id` (`string`, required): ID of this catalog entry. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `name` (`string`, required): Name is the human readable name of this entry. Example: Primary On-call
- `aliases` (`array`, optional): Optional aliases that can be used to reference this entry. Example: ["lawrence@incident.io", "lawrence"]
- `external_id` (`string`, optional): An optional alternative ID for this entry, which is ensured to be unique for the type. Example: 761722cd-d1d7-477b-ac7e-90f9e079dc33
- `rank` (`integer`, optional): When catalog type is ranked, this is used to help order things. Example: 3
- `update_attributes` (`array`, optional): Attribute IDs to update. When set, only these attributes change and every other attribute keeps its value; any listed attribute missing from attribute_values is cleared. Leave unset to replace all attribute values. Example: ["01GW2G3V0S59R238FAHPDS1R66"]

Example input: `{"attribute_values":{},"catalog_entry_id":"<catalog_entry_id>","name":"<name>"}`

### `incidentio_escalation_cancel`

Cancel Escalation · Write

Cancel an escalation so it stops paging; it won't advance to further levels or repeat. Works on escalations that are still paging or snoozed.
Returns the cancelled escalation.
Use incidentio_escalation_cancel to silence a page that is no longer needed. Resolved or expired escalations can't be cancelled.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `escalation_id` (`string`, required): Unique ID of the escalation. Example: 01G0J1EXE7AXZ2C93K61WBPYEH

Example input: `{"escalation_id":"<escalation_id>"}`

### `incidentio_escalation_create`

Create Escalation · Write

Page people by creating an escalation, either along an escalation path or directly to specific users, optionally linked to an incident.
Returns the created escalation.
Use incidentio_escalation_create to page on-call responders. Provide escalation_path_id or user_ids (one of the two is needed); find paths with incidentio_escalation_paths_list and users with incidentio_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `idempotency_key` (`string`, required): A unique string you choose to de-duplicate this request. If you retry with the same key, incident.io returns the original result instead of creating a duplicate. Example: sk-2026-10-14-db-outage-1
- `title` (`string`, required): The title of the escalation. This message will be included in all notifications about this escalation. Example: Production database experiencing high CPU
- `description` (`string`, optional): Additional details about the escalation. Example: Database CPU has been above 90% for 5 minutes
- `escalation_path_id` (`string`, optional): ID of the escalation path to follow. Example: 01H0J1EXE7AXZ2C93K61WBPYEH
- `incident_id` (`string`, optional): ID of an incident to associate with this escalation. The linked incident will appear in the escalation's related_incidents field. Example: 01H0J1EXE7AXZ2C93K61WBPYEH
- `user_ids` (`array`, optional): IDs of users to escalate directly to. Example: ["01H0J1EXE7AXZ2C93K61WBPYEH", "01H0J1EXE7AXZ2C93K61WBPYEI"]

Example input: `{"idempotency_key":"<idempotency_key>","title":"<title>"}`

### `incidentio_escalation_reassign`

Reassign Escalation · Write

Hand an escalation over to a different escalation path or to specific users, creating a new escalation and by default resolving the original.
Returns the new escalation.
Use incidentio_escalation_reassign when the wrong people were paged. Provide escalation_path_id or user_ids.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `escalation_id` (`string`, required): The ID of the escalation to reassign. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `description` (`string`, optional): Additional details about the new escalation. Defaults to the original's description. Example: Database CPU has been above 90% for 5 minutes
- `escalation_path_id` (`string`, optional): ID of the escalation path to reassign to. Example: 01H0J1EXE7AXZ2C93K61WBPYEH
- `resolve_original` (`boolean`, optional): Whether to resolve the original escalation, stopping it paging its targets. Defaults to true. Example: true
- `title` (`string`, optional): The title of the new escalation. Defaults to the original's title. Example: Production database experiencing high CPU
- `user_ids` (`array`, optional): IDs of users to reassign directly to. Example: ["01H0J1EXE7AXZ2C93K61WBPYEH", "01H0J1EXE7AXZ2C93K61WBPYEI"]

Example input: `{"escalation_id":"<escalation_id>"}`

### `incidentio_escalation_respond`

Respond to Escalation · Write

Acknowledge or snooze an escalation on behalf of the API key.
Returns the escalation after the response.
Use incidentio_escalation_respond to ack a page or snooze it until a set time. Declining (nack) isn't available to an API key.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `escalation_id` (`string`, required): The ID of the escalation. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `response` (`string`, required): How to respond: ack to acknowledge the page, or snooze to pause it until snooze_details.snooze_until. Declining (nack) is not available to an API key. Example: ack. One of: `ack`, `snooze`.
- `snooze_details` (`object`, optional): Required when response is snooze: the time to snooze until (ISO 8601) and an optional reason. Example: {"snooze_until": "2026-10-14T15:00:00Z", "reason": "Investigating after standup"}

Example input: `{"escalation_id":"<escalation_id>","response":"ack"}`

### `incidentio_follow_up_create`

Create Follow-up · Write

Create a follow-up task on an incident, optionally assigning it to a user or team with a priority, category and labels.
Returns the created follow-up.
Use incidentio_follow_up_create for post-incident work. Use incidentio_action_create for a task to do during the incident.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): Unique identifier of the incident the follow-up belongs to. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `title` (`string`, required): Title of the follow-up. Example: Add alerting on replica lag
- `assignee_id` (`string`, optional): ID of the user this follow-up is assigned to. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `assignee_team_id` (`string`, optional): ID of the team this follow-up is assigned to. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `description` (`string`, optional): Description of the follow-up. Supports Markdown. Example: Call the fire brigade
- `external_issue_reference_id` (`string`, optional): If this follow-up is related to an external issue, the ID of that issue. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `follow_up_category_id` (`string`, optional): ID of the category for this follow-up. Example: 01GNW4BAQ7XRMFF6FHKNXDFPRW
- `follow_up_priority_option_id` (`string`, optional): ID of the priority for this follow-up. Example: 01GNW4BAQ7XRMFF6FHKNXDFPRW
- `labels` (`array`, optional): Labels associated with this follow-up. Example: ["bug", "urgent"]

Example input: `{"incident_id":"<incident_id>","title":"<title>"}`

### `incidentio_follow_up_update`

Update Follow-up · Write

Replace a follow-up's title, status, description, assignee, priority, category and labels. Title and status are always required.
Returns the updated follow-up.
Use incidentio_follow_up_update to complete, reassign or rename a follow-up. Get the current values with incidentio_follow_up_get first so you don't clear fields you didn't mean to change.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `follow_up_id` (`string`, required): Unique identifier for the follow-up. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `status` (`string`, required): Status of the follow-up. Setting this to `deleted` is not allowed; use the delete endpoint instead. One of: outstanding, completed, deleted, not_doing. Example: outstanding. One of: `outstanding`, `completed`, `deleted`, `not_doing`.
- `title` (`string`, required): Title of the follow-up. Example: Add alerting on replica lag
- `assignee_id` (`string`, optional): ID of the user this follow-up is assigned to. Set to null to unassign. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `assignee_team_id` (`string`, optional): ID of the team this follow-up is assigned to. Set to null to unassign. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `description` (`string`, optional): Description of the follow-up. Supports Markdown. Example: Call the fire brigade
- `follow_up_category_id` (`string`, optional): ID of the category for this follow-up. Example: 01GNW4BAQ7XRMFF6FHKNXDFPRW
- `follow_up_priority_option_id` (`string`, optional): ID of the priority for this follow-up. Example: 01GNW4BAQ7XRMFF6FHKNXDFPRW
- `labels` (`array`, optional): Labels associated with this follow-up. Example: ["bug", "urgent"]

Example input: `{"follow_up_id":"<follow_up_id>","status":"outstanding","title":"<title>"}`

### `incidentio_incident_alert_create`

Attach Alert to Incident · Write

Attach an existing alert to an incident.
Returns the created incident alert link.
Use incidentio_incident_alert_create to group a related alert into an incident. Set re_relate to attach an alert someone previously marked as unrelated.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `alert_id` (`string`, required): Alert to attach to the incident. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `incident_id` (`string`, required): Incident to attach the alert to. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `re_relate` (`boolean`, optional): Relate the alert again even though someone previously marked it unrelated to this incident. Defaults to false, which preserves that decision and returns a 422. Example: false

Example input: `{"alert_id":"<alert_id>","incident_id":"<incident_id>"}`

### `incidentio_incident_attachment_create`

Attach External Resource · Write

Attach an external resource, such as a GitHub pull request, Jira issue, Sentry issue or any URL, to an incident.
Returns the created attachment.
Use incidentio_incident_attachment_create to link evidence or related work to an incident.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): ID of the incident to add an attachment to. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `resource` (`object`, required): The external resource to attach: its type (for example github_pull_request, jira_issue, sentry_issue, pager_duty_incident or arbitrary_url) and its ID or URL in that system, with an optional emoji. Example: {"resource_type": "github_pull_request", "external_id": "https://github.com/acme/api/pull/123"}

Example input: `{"incident_id":"<incident_id>","resource":{"resource_type":"github_pull_request","external_id":"https://github.com/acme/api/pull/123"}}`

### `incidentio_incident_create`

Create Incident · Write

Declare a new incident in incident.io, optionally setting severity, status, type, roles, custom fields and timestamps.
Returns the created incident with its ID, reference and permalink.
Use incidentio_incident_create to open a new incident. Use incidentio_incident_edit to change an existing one and incidentio_incident_update_create to post a status update.
Severity, status, type, role and custom field IDs come from the matching list tools (e.g. incidentio_severities_list).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `idempotency_key` (`string`, required): A unique string you choose to de-duplicate this request. If you retry with the same key, incident.io returns the original result instead of creating a duplicate. Example: sk-2026-10-14-db-outage-1
- `visibility` (`string`, 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 [docs](https://docs.incident.io/incidents/sensitive-incidents). One of: public, private. Example: public. One of: `public`, `private`.
- `custom_field_entries` (`array`, optional): Custom field values to set. Each entry names a custom field by its ID and gives the list of values for it; a value is a selected option ID, a catalog entry ID, free text, a number, a link or a timestamp depending on the field type. Pass an empty values list to clear a field. Look up field IDs and their options with incidentio_custom_fields_list and incidentio_custom_field_options_list. Example: [{"custom_field_id": "01FCNDV6P870EA6S7TK1DSYDG0", "values": [{"value_option_id": "01FCNDV6P870EA6S7TK1DSYDG1"}]}]
- `incident_role_assignments` (`array`, optional): People to assign to incident roles. Each item names a role by its ID and the assignee by user ID, email or Slack user ID. Find role IDs with incidentio_incident_roles_list. The reporter role can only be set when creating an incident. Example: [{"incident_role_id": "01FH5TZRWMNAFB0DZ23FD1TV96", "assignee": {"email": "bob@example.com"}}]
- `incident_status_id` (`string`, optional): Incident status to assign to the incident. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `incident_timestamp_values` (`array`, optional): Incident timestamps to set, such as when impact started. Each item names a timestamp by its ID and gives an ISO 8601 value. Find timestamp IDs with incidentio_incident_timestamps_list. Example: [{"incident_timestamp_id": "01FCNDV6P870EA6S7TK1DSYD5H", "value": "2026-10-14T13:28:57Z"}]
- `incident_type_id` (`string`, optional): Incident type to create this incident as. Example: 01FH5TZRWMNAFB0DZ23FD1TV96
- `mode` (`string`, optional): Whether the incident is real, a test, a tutorial, or importing as a retrospective incident. One of: standard, retrospective, test, tutorial. Example: standard. One of: `standard`, `retrospective`, `test`, `tutorial`.
- `name` (`string`, optional): Explanation of the incident. Example: Our database is sad
- `retrospective_incident_options` (`object`, optional): Extra settings used only when mode is retrospective: an existing Slack channel ID to attach, a post-mortem document URL, and an external ID (the 123 in INC-123, only after agreeing it with incident.io). Example: {"postmortem_document_url": "https://docs.google.com/document/d/abc", "slack_channel_id": "C02AW36C1M5"}
- `severity_id` (`string`, optional): Severity to create incident as. Example: 01FH5TZRWMNAFB0DZ23FD1TV96
- `slack_channel_name_override` (`string`, optional): Name of the Slack channel to create for this incident. Example: inc-123-database-down
- `slack_team_id` (`string`, optional): Slack Team to create the incident in. Example: T02A1FSLE8J
- `summary` (`string`, optional): Detailed description of the incident. Example: Our database is really really sad, and we don't know why yet.

Example input: `{"idempotency_key":"<idempotency_key>","visibility":"public"}`

### `incidentio_incident_edit`

Edit Incident · Write

Edit an existing incident's name, summary, severity, status, call URL, Slack channel name, role assignments, custom fields or timestamps. Only the fields you provide change.
Returns the updated incident.
Use incidentio_incident_edit to change incident properties. Use incidentio_incident_update_create to post a written update to responders, which can also move status or severity.
The API key needs the matching per-field permission (e.g. update severity) for each property it changes.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): The ID of the incident to edit. Example: 01G18REBY9AYH6CMWCJ2CVCYCH
- `notify_incident_channel` (`boolean`, required): Should we send Slack channel notifications to inform responders of this update? Note that this won't work if the Slack channel has already been archived. Example: true
- `call_url` (`string`, optional): The call URL attached to this incident. Example: https://zoom.us/foo
- `custom_field_entries` (`array`, optional): Custom field values to set. Each entry names a custom field by its ID and gives the list of values for it; a value is a selected option ID, a catalog entry ID, free text, a number, a link or a timestamp depending on the field type. Pass an empty values list to clear a field. Look up field IDs and their options with incidentio_custom_fields_list and incidentio_custom_field_options_list. Example: [{"custom_field_id": "01FCNDV6P870EA6S7TK1DSYDG0", "values": [{"value_option_id": "01FCNDV6P870EA6S7TK1DSYDG1"}]}]
- `incident_role_assignments` (`array`, optional): People to assign to incident roles. Each item names a role by its ID and the assignee by user ID, email or Slack user ID. Find role IDs with incidentio_incident_roles_list. The reporter role can only be set when creating an incident. Example: [{"incident_role_id": "01FH5TZRWMNAFB0DZ23FD1TV96", "assignee": {"email": "bob@example.com"}}]
- `incident_status_id` (`string`, optional): Incident status to move the incident to. Allowed transitions are: - Moving between statuses within the same category (e.g. between active statuses) - Resolving an incident by moving from active/triage to a post-incident or closed status - Closing an incident from a post-incident status When resolving to a post-incident status, the incident enters the post-incident flow and tasks are created. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `incident_timestamp_values` (`array`, optional): Incident timestamps to set, such as when impact started. Each item names a timestamp by its ID and gives an ISO 8601 value. Find timestamp IDs with incidentio_incident_timestamps_list. Example: [{"incident_timestamp_id": "01FCNDV6P870EA6S7TK1DSYD5H", "value": "2026-10-14T13:28:57Z"}]
- `name` (`string`, optional): Explanation of the incident. Example: Our database is sad
- `severity_id` (`string`, optional): The ID of the current severity of this incident. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `slack_channel_name_override` (`string`, optional): Override the name of the incident Slack channel. Example: inc-123-database-down
- `summary` (`string`, optional): Detailed description of the incident. Example: Our database is really really sad, and we don't know why yet.

Example input: `{"incident_id":"<incident_id>","notify_incident_channel":true}`

### `incidentio_incident_membership_create`

Grant Incident Access · Write

Give a user access to a private incident.
Returns the created incident membership.
Use incidentio_incident_membership_create for private incidents only. Use incidentio_incident_membership_revoke to remove access.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): The incident to make the user a member of. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `user_id` (`string`, required): ID of the user to give access to (from incidentio_users_list). Example: 01G0J1EXE7AXZ2C93K61WBPYEH

Example input: `{"incident_id":"<incident_id>","user_id":"<user_id>"}`

### `incidentio_incident_membership_revoke`

Revoke Incident Access · Write

Remove a user's access to a private incident.
Returns an empty response on success.
Use incidentio_incident_membership_revoke to take a user off a private incident. Use incidentio_incident_membership_create to grant access.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): Revoke memberships to incident. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `user_id` (`string`, required): ID of the user whose access to remove (from incidentio_users_list). Example: 01G0J1EXE7AXZ2C93K61WBPYEH

Example input: `{"incident_id":"<incident_id>","user_id":"<user_id>"}`

### `incidentio_incident_team_membership_create`

Grant Team Incident Access · Write

Give a team access to a private incident.
Returns the created team membership.
Use incidentio_incident_team_membership_create to share a private incident with a whole team. Use incidentio_incident_membership_create for one user.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): ID of the private incident to share. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `team_id` (`string`, required): ID of the team to give access to (from incidentio_teams_list). Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"incident_id":"<incident_id>","team_id":"<team_id>"}`

### `incidentio_incident_team_membership_revoke`

Revoke Team Incident Access · Write

Remove a team's access to a private incident.
Returns an empty response on success.
Use incidentio_incident_team_membership_revoke to unshare a private incident from a team.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): Revoke team access to this incident. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `team_id` (`string`, required): ID of the team whose access to remove (from incidentio_teams_list). Example: 01FCNDV6P870EA6S7TK1DSYDG0

Example input: `{"incident_id":"<incident_id>","team_id":"<team_id>"}`

### `incidentio_incident_update_create`

Post Incident Update · Write

Post a written update on an incident, optionally moving it to a new status or severity at the same time.
Returns the created incident update.
Use incidentio_incident_update_create to tell responders what changed. Use incidentio_incident_edit to change fields without posting an update.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `idempotency_key` (`string`, required): A unique string you choose to de-duplicate this request. If you retry with the same key, incident.io returns the original result instead of creating a duplicate. Example: sk-2026-10-14-db-outage-1
- `incident_id` (`string`, required): The incident you want to update. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `message` (`string`, optional): Message that explains the context behind the update, in markdown. Example: We're working on a fix, hoping to ship in the next 30 minutes
- `to_incident_status_id` (`string`, optional): Move the incident to this status. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `to_severity_id` (`string`, optional): Move the incident to this severity. Example: 01FH5TZRWMNAFB0DZ23FD1TV96

Example input: `{"idempotency_key":"<idempotency_key>","incident_id":"<incident_id>"}`

### `incidentio_postmortem_document_attach`

Attach External Post-mortem · Write

Link an externally hosted post-mortem document (for example in Confluence, Notion or Google Docs) to an incident.
Returns the created post-mortem document record.
Use incidentio_postmortem_document_attach when the post-mortem lives outside incident.io. Only one external post-mortem can be attached per incident, and not if the incident already has an in-app one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `incident_id` (`string`, required): The unique identifier of the incident to attach the post-mortem document to. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `permalink` (`string`, required): A URL pointing to the externally-hosted post-mortem document. Example: https://www.notion.so/INC-123-database-is-sad
- `document_provider` (`string`, optional): The provider hosting the document. This is informational only: the document is always stored as a link to the permalink. One of: confluence, google_docs, notion, sharepoint, incident_io, copy_paste_basecamp, copy_paste_confluence, copy_paste_github_wiki, copy_paste_google_docs, copy_paste_notion, copy_paste_quip. Example: notion. One of: `confluence`, `google_docs`, `notion`, `sharepoint`, `incident_io`, `copy_paste_basecamp`, `copy_paste_confluence`, `copy_paste_github_wiki`, `copy_paste_google_docs`, `copy_paste_notion`, `copy_paste_quip`.

Example input: `{"incident_id":"<incident_id>","permalink":"<permalink>"}`

### `incidentio_postmortem_document_status_update`

Update Post-mortem Status · Write

Set a post-mortem document's status to in progress, in review or completed.
Returns the updated post-mortem document.
Use incidentio_postmortem_document_status_update to move a post-mortem through review.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `postmortem_id` (`string`, required): Unique identifier for the post-mortem document. Example: 01GDZEW57FDA1K4S63MGMQ5DS9
- `status` (`string`, required): The new status to set the post-mortem document to. One of: in_progress, in_review, completed. Example: completed. One of: `in_progress`, `in_review`, `completed`.

Example input: `{"postmortem_id":"<postmortem_id>","status":"in_progress"}`

### `incidentio_schedule_override_create`

Create Schedule Override · Write

Put a user on call in place of the scheduled person for a period, on a specific schedule rotation and layer.
Returns the created override.
Use incidentio_schedule_override_create to arrange cover. Get rotation and layer IDs from incidentio_schedule_get.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `end_at` (`string`, required): End time of the override. ISO 8601 timestamp. Example: 2021-08-17T14:00:00.000000Z
- `layer_id` (`string`, required): The layer this override applies to. Example: 01G0J1EXE7AXZ2C93K61WBPYNH
- `rotation_id` (`string`, required): The rotation this override applies to. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `schedule_id` (`string`, required): The schedule this override applies to. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `start_at` (`string`, required): Start time of the override. ISO 8601 timestamp. Example: 2021-08-17T13:00:00.000000Z
- `user` (`object`, required): The user to put on call for this override. Identify them by incident.io user ID, email or Slack user ID (one is enough). Example: {"email": "bob@example.com"}

Example input: `{"end_at":"<end_at>","layer_id":"<layer_id>","rotation_id":"<rotation_id>","schedule_id":"<schedule_id>","start_at":"<start_at>","user":{"email":"bob@example.com"}}`

### `incidentio_schedule_override_update`

Update Schedule Override · Write

Replace an override's user, rotation, layer, start and end times.
Returns the updated override.
Use incidentio_schedule_override_update to change existing cover. Use incidentio_schedule_override_create to add new cover.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end_at` (`string`, required): End time of the override. ISO 8601 timestamp. Example: 2021-08-17T14:00:00.000000Z
- `layer_id` (`string`, required): The layer this override applies to. Example: 01G0J1EXE7AXZ2C93K61WBPYNH
- `override_id` (`string`, required): The override ID to update. Example: 01FDAG4SAP5TYPT98WGR2N7W91
- `rotation_id` (`string`, required): The rotation this override applies to. Example: 01G0J1EXE7AXZ2C93K61WBPYEH
- `start_at` (`string`, required): Start time of the override. ISO 8601 timestamp. Example: 2021-08-17T13:00:00.000000Z
- `user` (`object`, required): The user to put on call for this override. Identify them by incident.io user ID, email or Slack user ID (one is enough). Example: {"email": "bob@example.com"}

Example input: `{"end_at":"<end_at>","layer_id":"<layer_id>","override_id":"<override_id>","rotation_id":"<rotation_id>","start_at":"<start_at>","user":{"email":"bob@example.com"}}`

### `incidentio_status_page_incident_create`

Create Status Page Incident · Write

Publish a new incident on a status page with an initial message, status and affected components.
Returns the created status page incident.
Use incidentio_status_page_incident_create to tell customers about an ongoing problem. Use incidentio_status_page_incident_post_update for later updates.
Get the status page ID from incidentio_status_pages_list and component IDs from incidentio_status_page_structure_get.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `idempotency_key` (`string`, required): A unique string you choose to de-duplicate this request. If you retry with the same key, incident.io returns the original result instead of creating a duplicate. Example: sk-2026-10-14-db-outage-1
- `incident_status` (`string`, required): Current status for this status page incident. One of: investigating, identified, monitoring, resolved. Example: investigating. One of: `investigating`, `identified`, `monitoring`, `resolved`.
- `message` (`string`, required): Markdown initial update on this status page incident. Example: We are currently investigating reports of elevated error rates affecting our API.
- `name` (`string`, required): A title for the incident. Example: Elevated API latency
- `notify_subscribers` (`boolean`, required): Whether to notify subscribers about this status page incident. This will not work if your status page has more than 1000 subscribers. Example: true
- `status_page_id` (`string`, required): ID of the status page. You can find this by calling the ListStatusPages endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `component_statuses` (`array`, optional): Current status of each affected status page component. Each item pairs a component ID with a status: operational, degraded_performance, partial_outage or full_outage. Find component IDs with incidentio_status_page_structure_get. Example: [{"component_id": "01FCNDV6P870EA6S7TK1DSYDG1", "component_status": "degraded_performance"}]

Example input: `{"idempotency_key":"<idempotency_key>","incident_status":"investigating","message":"<message>","name":"<name>","notify_subscribers":true,"status_page_id":"<status_page_id>"}`

### `incidentio_status_page_incident_post_update`

Post Status Page Incident Update · Write

Publish an update on a status page incident, optionally changing its status and component statuses.
Returns the created update.
Use incidentio_status_page_incident_post_update to keep customers informed or to resolve the incident. Use incidentio_status_page_incident_update to rename it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `message` (`string`, required): Markdown update on what's changed about this status page incident. Example: The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.
- `notify_subscribers` (`boolean`, required): Whether to notify subscribers about this incident update. This will not work if your status page has more than 1000 subscribers. Example: true
- `status_page_incident_id` (`string`, required): ID of the status page incident. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `component_statuses` (`array`, optional): Current status of each affected status page component. Each item pairs a component ID with a status: operational, degraded_performance, partial_outage or full_outage. Find component IDs with incidentio_status_page_structure_get. Example: [{"component_id": "01FCNDV6P870EA6S7TK1DSYDG1", "component_status": "degraded_performance"}]
- `incident_status` (`string`, optional): Optional new status for this status page incident. If not provided, the status will remain unchanged. Setting to "resolved" will end the incident and all component statuses will update to "operational". One of: investigating, identified, monitoring, resolved. Example: investigating. One of: `investigating`, `identified`, `monitoring`, `resolved`.

Example input: `{"message":"<message>","notify_subscribers":true,"status_page_incident_id":"<status_page_incident_id>"}`

### `incidentio_status_page_incident_update`

Rename Status Page Incident · Write

Change the title of a published status page incident.
Returns the updated status page incident.
Use incidentio_status_page_incident_update only to rename. Use incidentio_status_page_incident_post_update to change status or post a message.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `name` (`string`, required): A title for the incident. Example: Elevated API latency
- `status_page_incident_id` (`string`, required): ID of the status page incident. Example: 01FCNDV6P870EA6S7TK1DSYDG1

Example input: `{"name":"<name>","status_page_incident_id":"<status_page_incident_id>"}`

### `incidentio_status_page_maintenance_create`

Create Status Page Maintenance · Write

Publish a maintenance window on a status page with affected components, start and end times and an initial message.
Returns the created maintenance window.
Use incidentio_status_page_maintenance_create to announce planned work. Use incidentio_status_page_maintenance_post_update to start, update or complete it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `affected_component_ids` (`array`, required): An array of IDs of component affected by the maintenance window. Example: ["01FCNDV6P870EA6S7TK1DSYDG2"]
- `end_at` (`string`, required): The time the maintenance window ends. ISO 8601 timestamp. Example: 2025-01-28T12:00:00Z
- `idempotency_key` (`string`, required): A unique string you choose to de-duplicate this request. If you retry with the same key, incident.io returns the original result instead of creating a duplicate. Example: sk-2026-10-14-db-outage-1
- `maintenance_status` (`string`, required): Current status for this status page maintenance window. One of: maintenance_scheduled, maintenance_in_progress, maintenance_complete. Example: maintenance_scheduled. One of: `maintenance_scheduled`, `maintenance_in_progress`, `maintenance_complete`.
- `message` (`string`, required): Markdown initial update on this status page maintenance window. Example: Planned maintenance has been scheduled to upgrade our infrastructure. We expect minimal disruption, but some features may be briefly unavailable.
- `name` (`string`, required): A title for the maintenance window. Example: Routine infrastructure upgrade
- `notify_subscribers` (`boolean`, required): Whether to notify subscribers about this status page maintenance. This will not work if your status page has more than 1000 subscribers. Example: true
- `start_at` (`string`, required): The time the maintenance window starts. ISO 8601 timestamp. Example: 2025-01-28T10:00:00Z
- `status_page_id` (`string`, required): ID of the status page. You can find this by calling the ListStatusPages endpoint. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `automate_maintenance_status` (`boolean`, optional): Whether to publish updates automatically, moving this maintenance window to in progress at start_at and to complete at end_at. Defaults to false, which means you publish those updates yourself. When notify_subscribers is true, the automated updates notify subscribers too. Publishing your own update that sets maintenance_status turns automation off. Example: true

Example input: `{"affected_component_ids":["01FCNDV6P870EA6S7TK1DSYDG2"],"end_at":"<end_at>","idempotency_key":"<idempotency_key>","maintenance_status":"maintenance_scheduled","message":"<message>","name":"<name>","notify_subscribers":true,"start_at":"<start_at>","status_page_id":"<status_page_id>"}`

### `incidentio_status_page_maintenance_post_update`

Post Status Page Maintenance Update · Write

Publish an update on a status page maintenance window, optionally moving it to in progress or complete and setting component statuses.
Returns the created update.
Use incidentio_status_page_maintenance_post_update to start, update or finish planned maintenance.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `message` (`string`, required): Markdown update on what's changed about this status page maintenance window. Example: Scheduled maintenance is underway for our database infrastructure. Some services may experience brief interruptions during this window.
- `notify_subscribers` (`boolean`, required): Whether to notify subscribers about this status page maintenance update. This will not work if your status page has more than 1000 subscribers. Example: true
- `status_page_maintenance_id` (`string`, required): ID of the status page maintenance window. Example: 01FCNDV6P870EA6S7TK1DSYDG1
- `component_statuses` (`array`, optional): Status of each component under maintenance. Each item pairs a component ID with a status such as under_maintenance or operational. Leave unset when moving the window to complete. Example: [{"component_id": "01FCNDV6P870EA6S7TK1DSYDG1", "component_status": "under_maintenance"}]
- `maintenance_status` (`string`, optional): Optional new status for this status page maintenance window. If not provided, the status will remain unchanged. Setting to "maintenance_complete" will end the maintenance window and all component statuses will update to "operational". One of: maintenance_scheduled, maintenance_in_progress, maintenance_complete. Example: maintenance_scheduled. One of: `maintenance_scheduled`, `maintenance_in_progress`, `maintenance_complete`.

Example input: `{"message":"<message>","notify_subscribers":true,"status_page_maintenance_id":"<status_page_maintenance_id>"}`

### `incidentio_status_page_maintenance_update`

Update Status Page Maintenance · Write

Change a status page maintenance window's title, start and end times.
Returns the updated maintenance window.
Use incidentio_status_page_maintenance_update to reschedule or rename. Use incidentio_status_page_maintenance_post_update to change its status or post a message.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end_at` (`string`, required): The time the maintenance window ends. ISO 8601 timestamp. Example: 2025-01-28T12:00:00Z
- `name` (`string`, required): A title for the maintenance window. Example: Routine infrastructure upgrade
- `start_at` (`string`, required): The time the maintenance window starts. ISO 8601 timestamp. Example: 2025-01-28T10:00:00Z
- `status_page_maintenance_id` (`string`, required): ID of the status page maintenance window. Example: 01FCNDV6P870EA6S7TK1DSYDG1

Example input: `{"end_at":"<end_at>","name":"<name>","start_at":"<start_at>","status_page_maintenance_id":"<status_page_maintenance_id>"}`

### `incidentio_timeline_item_create`

Create Timeline Item · Write

Add a custom item to an incident's timeline, such as a deploy or a customer report, at the time it happened.
Returns the created timeline item.
Use incidentio_timeline_item_create to record an event on the timeline. Use incidentio_incident_update_create to post a status update instead.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `idempotency_key` (`string`, required): A unique string you choose to de-duplicate this request. If you retry with the same key, incident.io returns the original result instead of creating a duplicate. Example: sk-2026-10-14-db-outage-1
- `incident_id` (`string`, required): Incident to add this item to. Example: 01FCNDV6P870EA6S7TK1DSYD5H
- `timestamp` (`string`, required): When the thing this item describes happened. This is where the item sits on the timeline, and can be in the past. ISO 8601 timestamp. Example: 2026-09-01T15:30:00Z
- `title` (`string`, required): Title of the timeline item. Example: Rolled back payments-api
- `description` (`string`, optional): Description of the timeline item, in markdown. Example: Rolled back **payments-api** to v411 after error rate hit 12%.

Example input: `{"idempotency_key":"<idempotency_key>","incident_id":"<incident_id>","timestamp":"<timestamp>","title":"<title>"}`

### `incidentio_timeline_item_update`

Update Timeline Item · Write

Edit a timeline item's title, description or timestamp. Only the fields you provide change; the timestamp can only be edited on custom items.
Returns the updated timeline item.
Use incidentio_timeline_item_update to correct an existing entry. Use incidentio_timeline_item_create to add a new one.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `timeline_item_id` (`string`, required): Timeline item to edit. Example: 01FCNDV6P870EA6S7TK1DSYDG0
- `description` (`string`, optional): Description of the timeline item, in markdown. Send an empty string to remove it. Example: Rolled back **payments-api** to v411 after error rate hit 12%.
- `timestamp` (`string`, optional): When the thing this item describes happened. Only editable on a custom item. ISO 8601 timestamp. Example: 2026-09-01T15:30:00Z
- `title` (`string`, optional): Title of the timeline item. Example: Rolled back payments-api

Example input: `{"timeline_item_id":"<timeline_item_id>"}`

## Related

Other Monitoring connectors ([all 29](/agentkit/connectors/?category=monitoring)):

- [Microsoft Entra ID](/agentkit/connectors/microsoftentraid/): Scalekit connector, OAuth, 82 tools
- [Datadog](/agentkit/connectors/datadog/): Scalekit connector, API key, 105 tools
- [1Password](/agentkit/connectors/onepassword/): Scalekit connector, Access token, 4 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
