- Fivetran: a managed connector, with nothing to run yourself.
- Singer tap: our open-source exporter, which you run on your own infrastructure.
- Your own pipeline: read the API directly, when you want incremental syncs or control over exactly what you load.
Fivetran
Fivetran’s incident.io connector loads your incident.io data into any Fivetran destination. It re-imports every table on each sync, so it picks up changes and deletions without any extra setup. Create an API key for it, and follow Fivetran’s setup guide.Singer tap
Our Singer tap exports your incident.io data to any Singer target, including BigQuery, Snowflake, and Redshift. You run it yourself, on a schedule or from CI, and it exports everything on each run. See the tap’s documentation for configuration.Build your own pipeline
What to sync
Each of these list endpoints supports anupdated_at filter, so after an initial import you only fetch what changed:
Use an API key with the View data permission. Add the View all incident data permission to include private incidents.
Initial import
Page through each endpoint with the largestpage_size it allows:
after value from pagination_meta to fetch the next page. Stop when a page returns fewer records than your page_size. Don’t wait for after to disappear, because the incidents endpoint can return an after value on its last page.
Incremental syncs
From then on, fetch only what changed since your last sync:- Treat every row as an upsert, keyed on
id. An incremental sync can return records you’ve already loaded. - Filter by the day of your last sync, not the time. The incidents and escalations endpoints take a date, so
updated_at[gte]=2026-10-01returns everything updated since the start of that day. Follow-ups, actions, and alerts also accept a full timestamp. Set it a few minutes before your last sync, so you don’t miss a record that was being written as it ran. - Run an occasional full re-sync to catch anything an incremental window missed.
Which incidents are included
The incidents endpoint leaves out test and tutorial incidents by default, along with incidents that were declined, canceled, or merged. To load those as well, filter on them explicitly withmode and status_category. See Which incidents are counted.