Skip to content

Incident Management

Better Stack
API integration

Ship Incident Management features without building the integration. Full Better Stack API access via Proxy and 90+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Better Stack

Use Cases

Why integrate with Better Stack

Common scenarios for SaaS companies building Better Stack integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Better Stack

Concrete product features your team can ship faster by leveraging Truto’s Better Stack integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Better Stack AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Better Stack

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Better Stack in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Better Stack account

Use Truto’s frontend SDK to connect your customer’s Better Stack account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Better Stack

Truto’s Proxy API is a 1-to-1 mapping of the Better Stack API. You call us, we call Better Stack, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Better Stack’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Better Stack on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Better Stack

Get Better Stack integrated into your app

Our team understands what it takes to make a Better Stack integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us