Skip to main content
Connectors

Statuspage connector

Set up the Statuspage connector in Kaivo: authentication, configuration, the 7 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your Statuspage data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your data from Statuspage instead of moving it.

What is the Statuspage connector

Sync your Statuspage incident data into BigQuery with Kaivo to analyse uptime, incidents, and subscriber trends over time.

CategoryTech
AuthenticationAPI key
SetupSelf-service

Getting started with the Statuspage connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Statuspage account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating Statuspage

Authenticate with your API Key.

FieldDescription
API Key

Your API Key. See here.

Tables and columns synced from Statuspage

Kaivo syncs 7 tables from Statuspage into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
automation_emailSTRINGRequires a special feature flag to be enabled
created_atTIMESTAMP
descriptionSTRINGMore detailed description for component
groupBOOLIs this component a group
group_idSTRINGComponent Group identifier
idSTRINGIdentifier for component
nameSTRINGDisplay name for component
only_show_if_degradedBOOLRequires a special feature flag to be enabled
page_idSTRINGPage identifier
positionINT64Order the component will appear on the page
showcaseBOOLShould this component be showcased
start_dateDATEThe date this component started being used
statusSTRINGStatus of component
updated_atTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
bodySTRINGBody of the incident or maintenance update to be applied when selecting this template
group_idSTRINGIdentifier of Template Group this template belongs to
idSTRINGIncident Template Identifier
nameSTRINGName of the template, as shown in the list on the "Templates" tab of the "Incidents" page
should_send_notificationsBOOLWhether the "deliver notifications" checkbox should be selected when selecting this template
should_tweetBOOLWhether the "tweet update" checkbox should be selected when selecting this template
titleSTRINGTitle to be applied to the incident or maintenance when selecting this template
update_statusSTRINGThe status the incident or maintenance should transition to when selecting this template
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: incident_templates__components

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
automation_emailSTRINGRequires a special feature flag to be enabled
created_atTIMESTAMP
descriptionSTRINGMore detailed description for component
groupBOOLIs this component a group
group_idSTRINGComponent Group identifier
idSTRINGIdentifier for component
nameSTRINGDisplay name for component
only_show_if_degradedBOOLRequires a special feature flag to be enabled
page_idSTRINGPage identifier
positionINT64Order the component will appear on the page
showcaseBOOLShould this component be showcased
start_dateDATEThe date this component started being used
statusSTRINGStatus of component
updated_atTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
auto_transition_deliver_notifications_at_endBOOLControls whether send notification when scheduled maintenances auto transition to completed.
auto_transition_deliver_notifications_at_startBOOLControls whether send notification when scheduled maintenances auto transition to started.
auto_transition_to_maintenance_stateBOOLControls whether change components status to under_maintenance once scheduled maintenance is in progress.
auto_transition_to_operational_stateBOOLControls whether change components status to operational once scheduled maintenance completes.
created_atTIMESTAMPThe timestamp when the incident was created at.
idSTRINGIncident Identifier
impactSTRINGThe impact of the incident.
monitoring_atTIMESTAMPThe timestamp when incident entered monitoring state.
nameSTRINGIncident Name
page_idSTRINGIncident Page Identifier
postmortem_bodySTRINGBody of the Postmortem.
postmortem_body_last_updated_atTIMESTAMPThe timestamp when the incident postmortem body was last updated at.
postmortem_ignoredBOOLControls whether the incident will have postmortem.
postmortem_notified_subscribersBOOLIndicates whether subscribers are already notificed about postmortem.
postmortem_notified_twitterBOOLControls whether to decide if notify postmortem on twitter.
postmortem_published_atBOOLThe timestamp when the postmortem was published.
resolved_atTIMESTAMPThe timestamp when incident was resolved.
scheduled_auto_completedBOOLControls whether the incident is scheduled to automatically change to complete.
scheduled_auto_in_progressBOOLControls whether the incident is scheduled to automatically change to in progress.
scheduled_forTIMESTAMPThe timestamp the incident is scheduled for.
scheduled_remind_priorBOOLControls whether to remind subscribers prior to scheduled incidents.
scheduled_reminded_atTIMESTAMPThe timestamp when the scheduled incident reminder was sent at.
scheduled_untilTIMESTAMPThe timestamp the incident is scheduled until.
shortlinkSTRINGIncident Shortlink.
statusSTRINGThe incident status. For realtime incidents, valid values are investigating, identified, monitoring, and resolved. For scheduled incidents, valid values are scheduled, in_progress, verifying, and completed.
updated_atTIMESTAMPThe timestamp when the incident was updated at.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: incidents__components

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
automation_emailSTRINGRequires a special feature flag to be enabled
created_atTIMESTAMP
descriptionSTRINGMore detailed description for component
groupBOOLIs this component a group
group_idSTRINGComponent Group identifier
idSTRINGIdentifier for component
nameSTRINGDisplay name for component
only_show_if_degradedBOOLRequires a special feature flag to be enabled
page_idSTRINGPage identifier
positionINT64Order the component will appear on the page
showcaseBOOLShould this component be showcased
start_dateDATEThe date this component started being used
statusSTRINGStatus of component
updated_atTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: incidents__incident_updates

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
bodySTRINGIncident update body.
created_atTIMESTAMPThe timestamp when the incident update was created at.
custom_tweetSTRINGAn optional customized tweet message for incident postmortem.
deliver_notificationsBOOLControls whether to delivery notifications.
display_atTIMESTAMPTimestamp when incident update is happened.
idSTRINGIncident Update Identifier.
incident_idSTRINGIncident Identifier.
statusSTRINGThe incident status. For realtime incidents, valid values are investigating, identified, monitoring, and resolved. For scheduled incidents, valid values are scheduled, in_progress, verifying, and completed.
tweet_idSTRINGTweet identifier associated to this incident update.
twitter_updated_atTIMESTAMPThe timestamp when twitter updated at.
updated_atTIMESTAMPThe timestamp when the incident update is updated.
wants_twitter_updateBOOLControls whether to create twitter update.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: incidents__incident_updates__affected_components

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
backfill_percentageINT64
backfilledBOOL
created_atTIMESTAMP
decimal_placesINT64
displayBOOLShould the metric be displayed
idSTRINGMetric identifier
last_fetched_atTIMESTAMP
metric_identifierSTRINGMetric Display identifier used to look up the metric data from the provider
metrics_provider_idSTRINGMetric Provider identifier
most_recent_data_atTIMESTAMP
nameSTRINGName of metric
reference_nameSTRING
suffixSTRINGSuffix to describe the units on the graph
tooltip_descriptionSTRING
updated_atTIMESTAMP
y_axis_hiddenBOOLShould the values on the y axis be hidden on render
y_axis_maxFLOAT64
y_axis_minFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
activity_scoreFLOAT64
allow_email_subscribersBOOLCan your users choose to receive notifications via email
allow_incident_subscribersBOOLCan your users subscribe to notifications for a single incident
allow_page_subscribersBOOLCan your users subscribe to all notifications on the page
allow_rss_atom_feedsBOOLCan your users choose to access incident feeds via RSS/Atom (not functional on Audience-Specific pages)
allow_sms_subscribersBOOLCan your users choose to receive notifications via SMS
allow_webhook_subscribersBOOLCan your users choose to receive notifications via Webhooks
brandingSTRINGThe main template your statuspage will use
citySTRING
countrySTRING
created_atTIMESTAMPTimestamp the record was created
css_bluesSTRINGCSS Color
css_body_background_colorSTRINGCSS Color
css_border_colorSTRINGCSS Color
css_font_colorSTRINGCSS Color
css_graph_colorSTRINGCSS Color
css_greensSTRINGCSS Color
css_light_font_colorSTRINGCSS Color
css_link_colorSTRINGCSS Color
css_no_dataSTRINGCSS Color
css_orangesSTRINGCSS Color
css_redsSTRINGCSS Color
css_yellowsSTRINGCSS Color
domainSTRINGCNAME alias for your status page
headlineSTRING
hidden_from_searchBOOLShould your page hide itself from search engines
idSTRINGPage identifier
ip_restrictionsSTRING
nameSTRINGName of your page to be displayed
notifications_email_footerSTRINGAllows you to customize the footer appearing on your notification emails. Accepts Markdown for formatting
notifications_from_emailSTRINGAllows you to customize the email address your page notifications come from
page_descriptionSTRING
stateSTRING
subdomainSTRINGSubdomain at which to access your status page
support_urlSTRING
time_zoneSTRINGTimezone configured for your page
twitter_usernameSTRING
updated_atTIMESTAMPTimestamp the record was last updated
urlSTRINGWebsite of your page. Clicking on your statuspage image will link here.
viewers_must_be_team_membersBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
componentsSTRINGThe components for which the subscriber has elected to receive updates.
created_atTIMESTAMP
display_phone_numberSTRINGA formatted version of the phone_number and phone_country pair, nicely formatted for display.
emailSTRINGThe email address to use to contact the subscriber. Used for Email and Webhook subscribers.
endpointSTRINGThe URL where a webhook subscriber elects to receive updates.
idSTRINGSubscriber Identifier
modeSTRINGThe communication mode of the subscriber.
obfuscated_channel_nameSTRINGObfuscated slack channel name
page_access_user_idSTRINGThe Page Access user this subscriber belongs to (only for audience-specific pages).
phone_countrySTRINGThe two-character country code representing the country of which the phone_number is a part.
phone_numberSTRINGThe phone number used to contact an SMS subscriber
purge_atTIMESTAMPThe timestamp when a quarantined subscriber will be purged (unsubscribed).
quarantined_atTIMESTAMPThe timestamp when the subscriber was quarantined due to an issue reaching them.
skip_confirmation_notificationBOOLIf this is true, do not notify the user with changes to their subscription.
workspace_nameSTRINGThe workspace name of the slack subscriber.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
email__activeINT64The number of active subscribers found by the query.
email__quarantinedINT64The number of quarantined subscribers found by the query.
email__totalINT64The total number of subscribers found by the query.
email__unconfirmedINT64The number of unconfirmed subscribers found by the query.
integration_partner__activeINT64The number of active subscribers found by the query.
integration_partner__quarantinedINT64The number of quarantined subscribers found by the query.
integration_partner__totalINT64The total number of subscribers found by the query.
integration_partner__unconfirmedINT64The number of unconfirmed subscribers found by the query.
slack__activeINT64The number of active subscribers found by the query.
slack__quarantinedINT64The number of quarantined subscribers found by the query.
slack__totalINT64The total number of subscribers found by the query.
slack__unconfirmedINT64The number of unconfirmed subscribers found by the query.
sms__activeINT64The number of active subscribers found by the query.
sms__quarantinedINT64The number of quarantined subscribers found by the query.
sms__totalINT64The total number of subscribers found by the query.
sms__unconfirmedINT64The number of unconfirmed subscribers found by the query.
webhook__activeINT64The number of active subscribers found by the query.
webhook__quarantinedINT64The number of quarantined subscribers found by the query.
webhook__totalINT64The total number of subscribers found by the query.
webhook__unconfirmedINT64The number of unconfirmed subscribers found by the query.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Statuspage sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Statuspage supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for Statuspage?

It depends on how much history is in your Statuspage account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when Statuspage's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in Statuspage, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in Statuspage instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the Statuspage connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Statuspage data

Incident history

Use incidents to track frequency, duration, and affected components over time.

Component reliability

Join incidents with components to find which systems cause the most disruption.

Bring subscribers into BigQuery to see how your status audience grows.

Uptime reporting

Use metrics to report on uptime alongside your other reliability data.

Use Statuspage data in your AI and BI tools

Once Statuspage data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with Statuspage data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for Statuspage connector pricing and plan details.

  • Adform: Sync Adform to BigQuery.
  • Amplitude: Sync Amplitude to BigQuery.
  • Auth0: Sync Auth0 to BigQuery.
  • Convex: Sync Convex to BigQuery.
  • GitHub: Sync GitHub to BigQuery.
  • GitLab: Sync GitLab to BigQuery.

Was this helpful?

Still need help? Share an idea