---
title: Better Stack API Integration on Truto
slug: betterstack
category: Incident Management
canonical: "https://truto.one/integrations/detail/betterstack/"
---

# Better Stack API Integration on Truto



**Category:** Incident Management  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 96 tools for Better Stack that AI agents can call directly.

- **list_all_better_stack_monitors** — List all betterstack monitors. Returns a collection of monitor objects including their ids and configuration details.
- **get_single_better_stack_monitor_by_id** — Get a single betterstack monitor by id. Returns the full monitor object. Required: id.
- **create_a_better_stack_monitor** — Create a new betterstack monitor. Returns the created monitor object including its id.
- **update_a_better_stack_monitor_by_id** — Update an existing betterstack monitor by id. Returns the updated monitor object. Required: id.
- **delete_a_better_stack_monitor_by_id** — Delete a betterstack monitor by id. Returns an empty response on success. Required: id.
- **better_stack_monitors_availability** — Get SLA availability data for a betterstack monitor. Returns availability metrics for the specified monitor. Required: monitor_id.
- **better_stack_monitors_response_times** — Get response time data for a betterstack monitor. Returns response time metrics for the specified monitor. Required: monitor_id.
- **list_all_better_stack_monitor_groups** — List all monitor groups in betterstack. Returns a collection of monitor group objects.
- **get_single_better_stack_monitor_group_by_id** — Get a single betterstack monitor group by id. Returns the monitor group object. Required: id.
- **create_a_better_stack_monitor_group** — Create a new monitor group in betterstack. Returns the created monitor group object.
- **update_a_better_stack_monitor_group_by_id** — Update an existing betterstack monitor group by id. Returns the updated monitor group object. Required: id.
- **delete_a_better_stack_monitor_group_by_id** — Delete a betterstack monitor group by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_heartbeats** — List all betterstack heartbeats. Returns an array of heartbeat objects including their id, name, and status.
- **get_single_better_stack_heartbeat_by_id** — Get a single betterstack heartbeat by id. Returns the full heartbeat object including its id, name, and current status. Required: id.
- **create_a_better_stack_heartbeat** — Create a new betterstack heartbeat monitor. Returns the created heartbeat object including its id and name.
- **update_a_better_stack_heartbeat_by_id** — Update an existing betterstack heartbeat by id. Returns the updated heartbeat object. Required: id.
- **delete_a_better_stack_heartbeat_by_id** — Delete a betterstack heartbeat by id. Returns an empty response on success. Required: id.
- **better_stack_heartbeats_availability** — Get SLA availability data for a betterstack heartbeat. Returns availability metrics for the specified heartbeat. Required: heartbeat_id.
- **list_all_better_stack_heartbeat_groups** — List all heartbeat groups in BetterStack. Returns a collection of heartbeat group objects.
- **get_single_better_stack_heartbeat_group_by_id** — Get a single BetterStack heartbeat group by id. Returns the heartbeat group object. Required: id.
- **create_a_better_stack_heartbeat_group** — Create a new heartbeat group in BetterStack. Returns the created heartbeat group object including its id.
- **update_a_better_stack_heartbeat_group_by_id** — Update an existing BetterStack heartbeat group by id. Returns the updated heartbeat group object. Required: id.
- **delete_a_better_stack_heartbeat_group_by_id** — Delete a BetterStack heartbeat group by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_on_call_schedules** — List all on-call schedules in Betterstack. Returns a collection of on-call schedule objects.
- **get_single_better_stack_on_call_schedule_by_id** — Get a single Betterstack on-call schedule by id. Returns the full on-call schedule object. Required: id.
- **create_a_better_stack_on_call_schedule** — Create a new on-call schedule in Betterstack. Returns the created on-call schedule object including its id.
- **update_a_better_stack_on_call_schedule_by_id** — Update an existing Betterstack on-call schedule by id. Returns the updated on-call schedule object. Required: id.
- **delete_a_better_stack_on_call_schedule_by_id** — Delete a Betterstack on-call schedule by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_on_call_schedule_events** — List all on-call schedule events for a given schedule in Betterstack. Returns an array of events associated with the schedule. Required: schedule_id.
- **get_single_better_stack_on_call_schedule_event_by_id** — Get a single on-call schedule event by id in Betterstack. Returns the event object for the specified schedule. Required: schedule_id and id.
- **list_all_better_stack_on_call_schedule_rotations** — List all rotations for a BetterStack on-call schedule. Returns an array of rotation objects from the schedule's data. Required: schedule_id.
- **list_all_better_stack_escalation_policies** — List all escalation policies in Better Stack. Returns an array of escalation policy objects.
- **get_single_better_stack_escalation_policy_by_id** — Get a single Better Stack escalation policy by id. Returns the full escalation policy object. Required: id.
- **create_a_better_stack_escalation_policy** — Create a new escalation policy in Better Stack. Returns the created escalation policy object including its id.
- **update_a_better_stack_escalation_policy_by_id** — Update an existing Better Stack escalation policy by id. Returns the updated escalation policy object. Required: id.
- **delete_a_better_stack_escalation_policy_by_id** — Delete a Better Stack escalation policy by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_escalation_policy_groups** — List all escalation policy groups in BetterStack. Returns a collection of policy group objects from the /api/v2/policy-groups endpoint.
- **get_single_better_stack_escalation_policy_group_by_id** — Get a single BetterStack escalation policy group by id. Returns the policy group object. Required: id.
- **create_a_better_stack_escalation_policy_group** — Create a new escalation policy group in BetterStack. Returns the created policy group object.
- **update_a_better_stack_escalation_policy_group_by_id** — Update an existing BetterStack escalation policy group by id. Returns the updated policy group object. Required: id.
- **delete_a_better_stack_escalation_policy_group_by_id** — Delete a BetterStack escalation policy group by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_severities** — List all urgencies (severities) in Betterstack. Returns a collection of urgency objects.
- **get_single_better_stack_severity_by_id** — Get a single Betterstack urgency (severity) by id. Returns the urgency object. Required: id.
- **create_a_better_stack_severity** — Create a new urgency (severity) in Betterstack. Returns the created urgency object including its id.
- **update_a_better_stack_severity_by_id** — Update an existing Betterstack urgency (severity) by id. Returns the updated urgency object. Required: id.
- **delete_a_better_stack_severity_by_id** — Delete a Betterstack urgency (severity) by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_severity_groups** — List all severity groups in betterstack. Returns a collection of severity group objects.
- **get_single_better_stack_severity_group_by_id** — Get a single betterstack severity group by id. Returns the severity group object.
- **create_a_better_stack_severity_group** — Create a new severity group in betterstack. Returns the created severity group object.
- **update_a_better_stack_severity_group_by_id** — Update an existing betterstack severity group by id. Returns the updated severity group object. Required: id.
- **delete_a_better_stack_severity_group_by_id** — Delete a betterstack severity group by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_incidents** — List all incidents in BetterStack. Returns a collection of incident objects including their id, name, and status.
- **get_single_better_stack_incident_by_id** — Get a single BetterStack incident by id. Returns the full incident object including its id, name, and status. Required: id.
- **create_a_better_stack_incident** — Create a new incident in BetterStack. Returns the created incident object including its id, name, and status.
- **delete_a_better_stack_incident_by_id** — Delete a BetterStack incident by id. Returns an empty response on success. Required: id.
- **better_stack_incidents_acknowledge** — Acknowledge a BetterStack incident by incident_id, marking it as seen and under review. Returns the updated incident object. Required: incident_id.
- **better_stack_incidents_resolve** — Resolve a BetterStack incident by incident_id, marking it as closed. Returns the updated incident object. Required: incident_id.
- **better_stack_incidents_escalate** — Escalate a BetterStack incident by incident_id, promoting it to a higher severity or notifying additional responders. Returns the updated incident object. Required: incident_id.
- **list_all_better_stack_incident_timeline** — List timeline events for a specific Betterstack incident. Returns a collection of timeline data entries. Required: incident_id.
- **list_all_better_stack_incident_comments** — List all comments for a Betterstack incident. Returns a collection of comment objects belonging to the specified incident. Required: incident_id.
- **get_single_better_stack_incident_comment_by_id** — Get a single Betterstack incident comment by id. Returns the comment object for the specified incident. Required: incident_id, id.
- **create_a_better_stack_incident_comment** — Create a new comment on a Betterstack incident. Returns the created comment object. Required: incident_id.
- **delete_a_better_stack_incident_comment_by_id** — Delete a Betterstack incident comment by id. Returns an empty response on success. Required: incident_id, id.
- **list_all_better_stack_status_pages** — List all betterstack status pages. Returns a collection of status page objects.
- **get_single_better_stack_status_page_by_id** — Get a single betterstack status page by id. Returns the full status page object. Required: id.
- **create_a_better_stack_status_page** — Create a new betterstack status page. Returns the created status page object including its id.
- **update_a_better_stack_status_page_by_id** — Update an existing betterstack status page by id. Returns the updated status page object. Required: id.
- **delete_a_better_stack_status_page_by_id** — Delete a betterstack status page by id. Returns an empty response on success. Required: id.
- **list_all_better_stack_status_page_groups** — List all status page groups in betterstack. Returns an array of status page group objects.
- **get_single_better_stack_status_page_group_by_id** — Get a single betterstack status page group by id. Returns the status page group object. Required: id.
- **create_a_better_stack_status_page_group** — Create a new status page group in betterstack. Returns the created status page group object including its id.
- **update_a_better_stack_status_page_group_by_id** — Update an existing betterstack status page group by id. Returns the updated status page group object. Required: id.
- **delete_a_better_stack_status_page_group_by_id** — Delete a betterstack status page group by id. Returns an empty 204 response on success. Required: id.
- **list_all_better_stack_status_page_sections** — List all sections belonging to a betterstack status page. Returns an array of section objects. Required: status_page_id.
- **get_single_better_stack_status_page_section_by_id** — Get a single betterstack status page section by id. Returns the section object. Required: status_page_id, id.
- **create_a_better_stack_status_page_section** — Create a new section on a betterstack status page. Returns the created section object. Required: status_page_id.
- **update_a_better_stack_status_page_section_by_id** — Update an existing betterstack status page section by id. Returns the updated section object. Required: status_page_id, id.
- **delete_a_better_stack_status_page_section_by_id** — Delete a betterstack status page section by id. Returns an empty response on success. Required: status_page_id, id.
- **list_all_better_stack_status_page_resources** — List all resources associated with a betterstack status page. Returns an array of resource objects belonging to the specified status page. Required: status_page_id.
- **get_single_better_stack_status_page_resource_by_id** — Get a single betterstack status page resource by id. Returns the full resource object for the specified resource. Required: status_page_id, id.
- **create_a_better_stack_status_page_resource** — Create a new resource on a betterstack status page. Returns the created resource object. Required: status_page_id.
- **update_a_better_stack_status_page_resource_by_id** — Update an existing betterstack status page resource by id. Returns the updated resource object. Required: status_page_id, id.
- **delete_a_better_stack_status_page_resource_by_id** — Delete a betterstack status page resource by id. Returns an empty response on success. Required: status_page_id, id.
- **list_all_better_stack_status_page_reports** — List all status reports for a Betterstack status page. Returns a collection of status report objects. Required: status_page_id.
- **get_single_better_stack_status_page_report_by_id** — Get a single status report from a Betterstack status page by id. Returns the status report object. Required: status_page_id, id.
- **create_a_better_stack_status_page_report** — Create a new status report on a Betterstack status page. Returns the created status report object. Required: status_page_id.
- **update_a_better_stack_status_page_report_by_id** — Update an existing status report on a Betterstack status page by id. Returns the updated status report object. Required: status_page_id, id.
- **delete_a_better_stack_status_page_report_by_id** — Delete a status report from a Betterstack status page by id. Returns an empty response on success. Required: status_page_id, id.
- **list_all_better_stack_status_page_report_updates** — List all status updates belonging to a betterstack status page report. Returns an array of status update objects. Required: status_page_id, status_report_id.
- **get_single_better_stack_status_page_report_update_by_id** — Get a single status update for a betterstack status page report by id. Returns the status update object. Required: status_page_id, status_report_id, id.
- **create_a_better_stack_status_page_report_update** — Create a new status update for a betterstack status page report. Returns the created status update object. Required: status_page_id, status_report_id.
- **update_a_better_stack_status_page_report_update_by_id** — Update an existing status update for a betterstack status page report by id. Returns the updated status update object. Required: status_page_id, status_report_id, id.
- **delete_a_better_stack_status_page_report_update_by_id** — Delete a status update from a betterstack status page report by id. Returns an empty response on success. Required: status_page_id, status_report_id, id.
- **list_all_better_stack_metadata** — List metadata entries in Betterstack. Returns a collection of metadata objects from the Betterstack account.
- **create_a_better_stack_metadatum** — Create a new metadata entry in Betterstack. Returns the created metadata object.
- **delete_a_better_stack_metadatum_by_id** — Delete metadata entries in Betterstack. Returns an empty response on success.

## How it works

1. **Link your customer's Better Stack account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Better Stack.** The Proxy API is a 1-to-1 mapping of the Better Stack API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed incident response inside observability and APM tools** — Let your users trigger, acknowledge, and resolve Better Stack incidents directly from your alerting workflows. This closes the loop between detection in your platform and response coordination in Better Stack without context switching.
- **Automate status page updates from CI/CD and deployment platforms** — Deployment and infrastructure tools can post status page reports and toggle monitors during maintenance windows. Your users get hands-off communication to their customers whenever a release or migration ships.
- **Sync support tickets with active incidents in helpdesk software** — Let support agents link customer tickets to live Better Stack incidents and pull incident timeline updates into their helpdesk. Engineering and support stay aligned on impact and messaging during outages.
- **Surface uptime, SLA, and on-call data in internal developer portals** — Developer portals and service catalogs can embed live availability, response times, and current on-call rotations next to each service. Engineers get a single pane of glass without logging into Better Stack.
- **Provision and tear down monitors from load testing or onboarding flows** — Performance testing tools and customer onboarding platforms can spin up monitors and heartbeats programmatically, then clean them up when finished. Your users get instrumentation as a side-effect of using your product.

## What you can build

- **Incident lifecycle controls in your UI** — Let users create, acknowledge, resolve, and escalate Better Stack incidents from your app, with incident timeline and comments pulled in for context.
- **Automated status page publishing** — Programmatically create status page reports and post timeline updates so your users can broadcast maintenance, degradations, and resolutions without leaving your product.
- **Monitor and heartbeat provisioning** — Create, update, and delete uptime monitors, heartbeats, and their groups on behalf of users as part of your onboarding, deployment, or environment-management flows.
- **Live SLA and uptime widgets** — Pull monitor availability and response time analytics to render real-time SLA compliance and latency charts inside dashboards, customer portals, or internal tooling.
- **On-call and escalation visibility** — Show who is currently on duty using on-call schedules, schedule events, and rotations, and surface escalation policies so users can route work to the right responder.
- **Two-way incident comment sync** — Mirror comments between your app (e.g. support tickets or chat threads) and Better Stack incident comments so both sides see the same conversation in real time.

## FAQs

### How do end users authenticate their Better Stack account?

Better Stack uses API token-based authentication. Truto handles credential capture, secure storage, and injection into every request, so your users only paste their token once and your app never touches the secret directly.

### Which Better Stack resources can we read and write through Truto?

Monitors, monitor groups, heartbeats, heartbeat groups, incidents (including acknowledge, resolve, escalate), incident timeline and comments, on-call schedules, schedule events and rotations, escalation policies and groups, severities, and full status page management (pages, groups, sections, resources, reports, and report updates) are all supported.

### Can we get analytics like uptime and response times?

Yes. Dedicated endpoints expose monitor availability, monitor response times, and heartbeat availability, which you can use to render SLA, uptime percentage, and latency metrics natively in your product.

### How fresh is the data — is it polling or real-time?

Reads happen on demand against the Better Stack API, so data is as fresh as your last call. For event-driven flows, you can poll the incidents and incident timeline endpoints on a schedule that fits your SLA needs.

### Do we have to handle pagination, rate limits, and retries ourselves?

No. Truto normalizes pagination across list endpoints and manages rate limit handling and retries on Better Stack's API, so your integration code stays focused on product logic.

### Can our users connect multiple Better Stack workspaces?

Yes. Truto models each connected account independently, so a single tenant in your product can link one or many Better Stack workspaces and you can route API calls to the right connection per request.
