Skip to main content

Incident.io

Incident.io is an incident management platform that provides on-call scheduling, status pages, and incident response tooling. This connector syncs data from the Incident.io API.

Prerequisites​

  • An Incident.io account with API access. You can sign up at incident.io.
  • An Incident.io API key. To create one, go to Settings → API keys in your Incident.io dashboard. When you create the key, choose which actions it can take. Keys can have account-level permissions, team-scoped permissions, or both. For this connector, the key needs read access to all resources you want to sync. To see which scope each stream needs, see API key scopes by stream. For example, the escalations stream requires the View data or Create and manage on-call resources permission. You can only grant permissions that you have yourself. To create or edit API keys, you need the Manage API keys permission. Incident.io shows the API key token only once, so store it somewhere safe.

For more information about the API, see the Incident.io API reference.

Set up the Incident.io source connector​

  1. Click Sources and then click + New source.
  2. On the Set up the source page, select Incident.io from the Source type dropdown.
  3. Enter a name for the source.
  4. For API Key, enter the API key you created in your Incident.io dashboard.
  5. (Optional) Set Start Date, Time window, and Number of concurrent workers. See Configuration for details.
  6. Click Set up source.

Supported sync modes​

The Incident.io source connector supports the following sync modes:

  • Full Refresh
  • Incremental (incidents, alerts, escalations, actions, follow-ups, on updated_at)

Incremental streams request updated_at in windows sized by the time_window option (default 30 days), resuming from the last synced timestamp with a small overlap so rows that commit slightly out of order are still captured. With the Append + Deduped destination sync mode those repeats are removed by primary key; with plain Append they are kept.

The start_date filter applies to these five streams in every sync mode, including Full Refresh. If you set a start_date later than the default, Full Refresh syncs of these streams don't return records last updated before that date.

Configuration​

InputTypeDescriptionDefault Value
api_keystringAPI Key. API key to use. Find it at https://app.incident.io/settings/api-keys
start_datestringStart Date. Only sync records updated on or after this UTC date-time, in the format YYYY-MM-DDTHH:MM:SSZ, for the incidents, alerts, escalations, actions, and follow-ups streams. Applies to both Full Refresh and Incremental syncs. The default predates all incident.io data. Streams read per incident, such as incident_attachments, follow the same scope and only cover incidents updated on or after this date.2020-01-01T00:00:00Z
time_windowstringTime window. Size of each date window requested from incident.io on incremental streams, in whole days as an ISO 8601 duration (for example P30D, P7D, P365D). The minimum is P1D because incidents and escalations filter by date. Smaller windows let more requests run in parallel on large accounts; larger windows mean fewer requests on small accounts. Defaults to P30D.P30D
num_workersintegerNumber of concurrent workers. Number of streams and partitions read in parallel, from 1 to 10. Higher values can speed up large syncs but use more of the incident.io rate limit (1,200 requests per minute per API key, 60 per minute on incidents).4

Streams​

Stream NameEndpointPrimary KeyPaginationSupports Full SyncSupports Incremental
actions/v3/actionsidDefaultPaginator✅✅
alert_attributes/v2/alert_attributesidNo pagination✅❌
alert_routes/v3/alert_routesidDefaultPaginator✅❌
alert_sources/v2/alert_sourcesidNo pagination✅❌
alerts/v2/alertsidDefaultPaginator✅✅
catalog_entries/v3/catalog_entriesidDefaultPaginator✅❌
catalog_resources/v3/catalog_resourcestypeNo pagination✅❌
catalog_types/v3/catalog_typesidNo pagination✅❌
custom_field_options/v1/custom_field_optionsidDefaultPaginator✅❌
custom_fields/v2/custom_fieldsidNo pagination✅❌
escalation_paths/v2/escalation_pathsidDefaultPaginator✅❌
escalations/v2/escalationsidDefaultPaginator✅✅
follow-ups/v3/follow_upsidDefaultPaginator✅✅
incident_alerts/v2/incident_alertsidDefaultPaginator✅❌
incident_attachments/v1/incident_attachmentsidNo pagination✅❌
incident_roles/v2/incident_rolesidNo pagination✅❌
incident_statuses/v1/incident_statusesidNo pagination✅❌
incident_timestamps/v2/incident_timestampsidNo pagination✅❌
incident_types/v1/incident_typesidNo pagination✅❌
incident_updates/v2/incident_updatesidDefaultPaginator✅❌
incidents/v2/incidentsidDefaultPaginator✅✅
schedules/v2/schedulesidDefaultPaginator✅❌
severities/v1/severitiesidNo pagination✅❌
users/v2/usersidDefaultPaginator✅❌
workflows/v2/workflowsidNo pagination✅❌

The incidents stream includes incidents in every status category, including declined, canceled and merged, which the API leaves out by default.

By default, the Incident.io API only returns standard and retrospective incidents and the records that belong to them. The incidents, actions, and follow-ups streams request every incident mode: standard, retrospective, test, tutorial, and stream. The /v2/incidents endpoint doesn't document the stream mode, so incidents contains stream incidents only if Incident.io returns them. To exclude test, tutorial, or stream incidents, filter incidents on its mode field. For actions and follow-ups, join on incident_id to incidents, then filter on mode.

The users stream includes deactivated and not-yet-active users. Use the is_active field to filter them.

The incident_alerts stream links alerts to the incidents they're attached to. Each record contains the alert, the incident, and the alert_route_id of the alert route that created the link. Use it to join the alerts stream to the incidents stream. This stream reads every link in your account, so start_date doesn't apply to it.

The alert_sources stream doesn't include each alert source's secret_token. The connector removes this field before it emits records.

The connector reads three streams once for each record of a parent stream:

  • catalog_entries reads the entries of each catalog type returned by catalog_types.
  • custom_field_options reads the options of each custom field returned by custom_fields.
  • incident_attachments reads the attachments of each incident returned by incidents, so it only covers incidents last updated on or after start_date.

Limitations and troubleshooting​

The Incident.io API allows 1,200 requests per minute per API key, and the incidents endpoint has a lower limit of 60 requests per minute. The connector paces itself within both limits and, if the API still returns a rate-limit response, waits for the interval the API asks for before retrying.

  • Invalid API key (HTTP 401): The sync fails if the API key is invalid or has been revoked. Create a new key in Incident.io under Settings → API keys and update the source configuration.
  • Missing permission (HTTP 403): The sync fails with Incident.io's error message, which names the missing permission. Edit the API key in Incident.io under Settings → API keys to add that permission, or deselect the affected stream in your connection. You don't need to create a new key or update the source configuration.
  • Transient errors (HTTP 408 and 5xx): The connector retries these requests automatically.
  • Slow syncs with incident_attachments: On every sync, this stream reads the incidents endpoint from start_date, which allows only 60 requests per minute, and then sends one request per incident. This happens even if you sync the incidents stream incrementally. On accounts with many incidents, this can add significant time to each sync. If you don't need attachments, deselect this stream. If someone deletes an incident during a sync, the connector skips its attachments instead of failing.

API key scopes by stream​

If a sync fails with HTTP 403, use this table to find the streams that need the missing scope. The scopes come from the Incident.io API reference. The API reference doesn't list a scope for the incident_timestamps endpoint.

ScopeStreams
actions.viewactions, follow-ups
alert_routes.viewalert_routes
alert_schema.viewalert_attributes
alert_sources.viewalert_sources
alerts.viewalerts, incident_alerts
attachments.viewincident_attachments
catalog_entries.viewcatalog_entries
catalog_types.viewcatalog_resources, catalog_types
custom_fields.viewcustom_field_options, custom_fields
escalation_paths.viewescalation_paths
escalations.viewescalations
incident_roles.viewincident_roles
incident_statuses.viewincident_statuses
incident_types.viewincident_types
incidents.viewincident_updates, incidents
schedules.viewschedules
severities.viewseverities
users.viewusers
workflows.viewworkflows

IP allow list​

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference​

Config fields reference

Field
Type
Property name
string
api_key
integer
num_workers
string
start_date
string
time_window

Changelog​

Expand to review
VersionDatePull RequestSubject
1.0.12026-10-1488962Declare filter_by, fixed_filter and helptext_catalog_attribute_id on custom fields; update the base image
1.0.02026-10-1488437Type timestamp fields, move catalog_types and alert_routes to /v3, sync all incident modes. See the migration guide
0.4.22026-10-1388435Declare external_issue_reference on incidents and holidays_public_config on schedules
0.4.12026-10-1388663Update dependencies
0.4.02026-10-0988418Add five alerting and escalation path streams
0.3.02026-10-0988416Add five incident and catalog streams
0.2.02026-10-0888150Migrate actions and follow-ups to /v3; add incremental sync, rate limiting, clearer errors, time_window and num_workers options, and sync incidents in every status category
0.1.422026-10-0687912Update dependencies
0.1.412026-09-2987212Update dependencies
0.1.402026-09-2286668Update dependencies
0.1.392026-09-1586108Update dependencies
0.1.382026-09-0885534Update dependencies
0.1.372026-08-1884609Update dependencies
0.1.362026-08-1183968Update dependencies
0.1.352026-08-0483515Update dependencies
0.1.342026-07-2882950Update dependencies
0.1.332026-07-2182451Update dependencies
0.1.322026-07-1481861Update dependencies
0.1.312026-06-3081093Update dependencies
0.1.302026-06-2380512Update dependencies
0.1.292026-06-1679887Update dependencies
0.1.282026-06-0979368Update dependencies
0.1.272026-06-0378426Add external_issue_reference field to the follow-ups stream
0.1.262026-06-0278742Update dependencies
0.1.252026-04-2877315Update dependencies
0.1.242026-04-2176661Update dependencies
0.1.232026-03-1775081Update dependencies
0.1.222026-03-1074503Update dependencies
0.1.212026-02-2674072Migrate to incident_roles v2 endpoint and add escalations stream
0.1.202026-02-2473520Update dependencies
0.1.192026-02-1073089Update dependencies
0.1.182026-02-0372760Update dependencies
0.1.172026-01-2071981Update dependencies
0.1.162026-01-1471413Update dependencies
0.1.152025-12-1870511Update dependencies
0.1.142025-11-2570182Update dependencies
0.1.132025-11-1869504Update dependencies
0.1.122025-10-2968778Update dependencies
0.1.112025-10-2168531Update dependencies
0.1.102025-10-1467973Update dependencies
0.1.92025-10-0767363Update dependencies
0.1.82025-09-3066802Update dependencies
0.1.72025-09-0966041Update dependencies
0.1.62025-09-0565966Update to CDK v7.0.0
0.1.52025-08-2365332Update dependencies
0.1.42025-08-0964591Update dependencies
0.1.32025-08-0264299Update dependencies
0.1.22025-07-2663825Update dependencies
0.1.12025-07-1963480Update dependencies
0.1.02025-07-1563304Add new stream alerts
0.0.292025-07-1263128Update dependencies
0.0.282025-07-0562591Update dependencies
0.0.272025-06-2862168Update dependencies
0.0.262025-06-2161830Update dependencies
0.0.252025-06-1461149Update dependencies
0.0.242025-05-2460668Update dependencies
0.0.232025-05-1059803Update dependencies
0.0.222025-05-0359231Update dependencies
0.0.212025-04-2658787Update dependencies
0.0.202025-04-1958204Update dependencies
0.0.192025-04-1257724Update dependencies
0.0.182025-04-0557094Update dependencies
0.0.172025-03-2956650Update dependencies
0.0.162025-03-2256006Update dependencies
0.0.152025-03-0855475Update dependencies
0.0.142025-03-0154780Update dependencies
0.0.132025-02-2254316Update dependencies
0.0.122025-02-1553844Update dependencies
0.0.112025-02-0853299Update dependencies
0.0.102025-02-0152718Update dependencies
0.0.92025-01-2552221Update dependencies
0.0.82025-01-1851782Update dependencies
0.0.72025-01-1151186Update dependencies
0.0.62024-12-2850648Update dependencies
0.0.52024-12-2150137Update dependencies
0.0.42024-12-1449218Update dependencies
0.0.32024-12-1148989Use a rootless Docker image (requires Airbyte 0.64 or later)
0.0.22024-11-0447842Update dependencies
0.0.12024-10-03Initial release by @aazam-gh via Connector Builder