Better Stack website screenshot

Better Stack

Better Stack is a comprehensive infrastructure monitoring and observability platform that combines uptime monitoring, log management, incident management, status pages, and AI-powered site reliability tools. It helps teams identify and resolve website and server issues quickly by providing real-time alerting, detailed diagnostics, on-call scheduling, and public/private status pages.

1 APIs 10 Features
IncidentsLogsMonitoringPlatformStatusUptimeObservabilityOn-CallHeartbeats

APIs

Better Stack API

The Better Stack API provides programmatic access to uptime monitoring, heartbeat monitoring, incident management, status pages, escalation policies, and team management. It fol...

Collections

Pricing Plans

Rate Limits

Better Stack Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Uptime Monitoring

Monitor URLs, APIs, and services for availability with checks from multiple global regions every 30 seconds.

Heartbeat Monitoring

Monitor scheduled jobs, cron tasks, and background workers by pinging a unique URL on each run.

Incident Management

Automatically create and manage incidents when monitors detect downtime, with acknowledgement and resolution workflows.

On-Call Scheduling

Configure escalation policies with multi-step notification sequences via phone, SMS, email, and push.

Status Pages

Create public and private status pages with custom domains, branding, and real-time component status.

Log Management

Collect, search, and visualize logs across your entire infrastructure stack.

AI SRE

AI-powered root cause analysis that automatically investigates incidents and suggests resolutions.

Infrastructure Monitoring

OpenTelemetry-native monitoring with dashboards for metrics and infrastructure health.

Terraform Provider

Manage Better Stack resources as code using the official Terraform provider.

MCP Server

Model Context Protocol server for integrating Better Stack with AI tools and agents.

Use Cases

Website Uptime Monitoring

Monitor public websites and APIs for availability and alert on-call engineers when they go down.

API Health Checking

Continuously verify that REST APIs return expected status codes and response times.

Cron Job Monitoring

Use heartbeats to ensure scheduled tasks run on time and alert when they fail to check in.

Incident Response Automation

Automate incident creation, on-call notifications, and resolution workflows to reduce MTTR.

Customer-Facing Status Communication

Publish status pages that automatically reflect the real-time health of monitored services.

Infrastructure Observability

Aggregate logs, metrics, and traces in a single platform for full-stack observability.

Integrations

Slack

Receive incident alerts and status updates directly in Slack channels.

PagerDuty

Forward incidents to PagerDuty for existing on-call workflows.

Terraform

Manage monitors, status pages, and escalation policies as infrastructure as code.

OpenTelemetry

Send metrics, logs, and traces using OpenTelemetry-compatible exporters.

Sentry

Compatible with Sentry SDK for error tracking integration.

New Relic

Connect Better Stack monitoring data with New Relic dashboards.

Semantic Vocabularies

Better Stack Context

43 classes · 48 properties

JSON-LD

API Governance Rules

Better Stack API Rules

37 rules · 13 errors 17 warnings 7 info

SPECTRAL

JSON Structure

Better Stack Availability Response Structure

1 properties

JSON STRUCTURE

Better Stack Heartbeat Attributes Structure

12 properties

JSON STRUCTURE

Better Stack Heartbeat Object Structure

3 properties

JSON STRUCTURE

Better Stack Incident Attributes Structure

10 properties

JSON STRUCTURE

Better Stack Incident List Response Structure

2 properties

JSON STRUCTURE

Better Stack Incident Object Structure

3 properties

JSON STRUCTURE

Better Stack Monitor Attributes Structure

17 properties

JSON STRUCTURE

Better Stack Monitor Create Request Structure

11 properties

JSON STRUCTURE

Better Stack Monitor List Response Structure

2 properties

JSON STRUCTURE

Better Stack Monitor Object Structure

3 properties

JSON STRUCTURE

Better Stack Monitor Update Request Structure

8 properties

JSON STRUCTURE

Better Stack Pagination Structure

4 properties

JSON STRUCTURE

Better Stack Policy Attributes Structure

7 properties

JSON STRUCTURE

Better Stack Policy Create Request Structure

3 properties

JSON STRUCTURE

Better Stack Policy List Response Structure

2 properties

JSON STRUCTURE

Better Stack Policy Object Structure

3 properties

JSON STRUCTURE

Better Stack Policy Single Response Structure

1 properties

JSON STRUCTURE

Better Stack Policy Step Structure

2 properties

JSON STRUCTURE

Better Stack Policy Update Request Structure

3 properties

JSON STRUCTURE

Better Stack Status Page Attributes Structure

9 properties

JSON STRUCTURE

Better Stack Status Page Object Structure

3 properties

JSON STRUCTURE

Better Stack Team Member Attributes Structure

5 properties

JSON STRUCTURE

Better Stack Team Member Object Structure

3 properties

JSON STRUCTURE

Example Payloads

Resources

🔗
LinkedIn
LinkedIn
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
🔑
Authentication
Authentication
💰
Pricing
Pricing
🟢
StatusPage
StatusPage
📰
Blog
Blog
📄
ChangeLog
ChangeLog
👥
GitHubOrganization
GitHubOrganization
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Better Stack API
  version: v2
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Monitors
    type: folder
  items:
  - info:
      name: Better Stack List Monitors
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/monitors
      params:
      - name: team_name
        value: my-team
        type: query
        description: Filter monitors belonging to a specified team when using a global API token.
      - name: url
        value: https://example.com
        type: query
        description: Filter monitors by target URL.
      - name: pronounceable_name
        value: Production API
        type: query
        description: Filter monitors by pronounceable name.
    docs: Returns a paginated list of all monitors for the authenticated team.
  - info:
      name: Better Stack Create Monitor
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/monitors
      body:
        type: json
        data: '{}'
    docs: Creates a new uptime monitor.
  - info:
      name: Better Stack Get Monitor
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/monitors/:id
      params:
      - name: id
        value: '500123'
        type: path
        description: The unique identifier of the monitor.
    docs: Returns a single monitor by ID.
  - info:
      name: Better Stack Update Monitor
      type: http
    http:
      method: PATCH
      url: https://uptime.betterstack.com/api/v2/monitors/:id
      params:
      - name: id
        value: '500123'
        type: path
        description: The unique identifier of the monitor.
      body:
        type: json
        data: '{}'
    docs: Updates an existing monitor.
  - info:
      name: Better Stack Delete Monitor
      type: http
    http:
      method: DELETE
      url: https://uptime.betterstack.com/api/v2/monitors/:id
      params:
      - name: id
        value: '500123'
        type: path
        description: The unique identifier of the monitor.
    docs: Deletes an existing monitor.
  - info:
      name: Better Stack Get Monitor Response Times
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/monitors/:id/response-times
      params:
      - name: id
        value: '500123'
        type: path
        description: The unique identifier of the monitor.
    docs: Returns response time metrics for a specific monitor.
  - info:
      name: Better Stack Get Monitor Availability
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/monitors/:id/availability
      params:
      - name: id
        value: '500123'
        type: path
        description: The unique identifier of the monitor.
    docs: Returns availability summary for a specific monitor.
- info:
    name: Heartbeats
    type: folder
  items:
  - info:
      name: Better Stack List Heartbeats
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/heartbeats
      params:
      - name: team_name
        value: my-team
        type: query
        description: Filter heartbeats belonging to a specified team when using a global API token.
    docs: Returns a paginated list of all heartbeat monitors.
  - info:
      name: Better Stack Create Heartbeat
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/heartbeats
      body:
        type: json
        data: '{}'
    docs: Creates a new heartbeat monitor.
  - info:
      name: Better Stack Get Heartbeat
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/heartbeats/:id
      params:
      - name: id
        value: '100200'
        type: path
        description: The unique identifier of the heartbeat.
    docs: Returns a single heartbeat monitor by ID.
  - info:
      name: Better Stack Update Heartbeat
      type: http
    http:
      method: PATCH
      url: https://uptime.betterstack.com/api/v2/heartbeats/:id
      params:
      - name: id
        value: '100200'
        type: path
        description: The unique identifier of the heartbeat.
      body:
        type: json
        data: '{}'
    docs: Updates an existing heartbeat monitor.
  - info:
      name: Better Stack Delete Heartbeat
      type: http
    http:
      method: DELETE
      url: https://uptime.betterstack.com/api/v2/heartbeats/:id
      params:
      - name: id
        value: '100200'
        type: path
        description: The unique identifier of the heartbeat.
    docs: Deletes an existing heartbeat monitor.
  - info:
      name: Better Stack Get Heartbeat Availability
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/heartbeats/:id/availability
      params:
      - name: id
        value: '100200'
        type: path
        description: The unique identifier of the heartbeat.
    docs: Returns availability summary for a specific heartbeat monitor.
- info:
    name: Incidents
    type: folder
  items:
  - info:
      name: Better Stack List Incidents
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/incidents
      params:
      - name: team_name
        value: my-team
        type: query
        description: Filter incidents by team name when using a global API token.
      - name: from
        value: '2026-01-01'
        type: query
        description: Filter incidents starting from this date (YYYY-MM-DD).
      - name: to
        value: '2026-04-19'
        type: query
        description: Filter incidents up to this date (YYYY-MM-DD).
      - name: monitor_id
        value: '500123'
        type: query
        description: Filter incidents by monitor ID.
      - name: heartbeat_id
        value: '100200'
        type: query
        description: Filter incidents by heartbeat ID.
      - name: resolved
        value: 'false'
        type: query
        description: Filter by resolved status.
      - name: acknowledged
        value: 'false'
        type: query
        description: Filter by acknowledged status.
    docs: Returns a paginated list of all incidents. Uses API v3.
  - info:
      name: Better Stack Create Incident
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/incidents
      body:
        type: json
        data: '{}'
    docs: Creates a new manual incident.
  - info:
      name: Better Stack Get Incident
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/incidents/:id
      params:
      - name: id
        value: '900100'
        type: path
        description: The unique identifier of the incident.
    docs: Returns a single incident by ID.
  - info:
      name: Better Stack Delete Incident
      type: http
    http:
      method: DELETE
      url: https://uptime.betterstack.com/api/v2/incidents/:id
      params:
      - name: id
        value: '900100'
        type: path
        description: The unique identifier of the incident.
    docs: Deletes an existing incident.
  - info:
      name: Better Stack Acknowledge Incident
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/incidents/:id/acknowledge
      params:
      - name: id
        value: '900100'
        type: path
        description: The unique identifier of the incident.
    docs: Acknowledges an active incident.
  - info:
      name: Better Stack Resolve Incident
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/incidents/:id/resolve
      params:
      - name: id
        value: '900100'
        type: path
        description: The unique identifier of the incident.
    docs: Resolves an active incident.
- info:
    name: Status Pages
    type: folder
  items:
  - info:
      name: Better Stack List Status Pages
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/status-pages
      params:
      - name: team_name
        value: my-team
        type: query
        description: Filter by team name when using a global API token.
    docs: Returns a paginated list of all status pages.
  - info:
      name: Better Stack Create Status Page
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/status-pages
      body:
        type: json
        data: '{}'
    docs: Creates a new status page.
  - info:
      name: Better Stack Get Status Page
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/status-pages/:id
      params:
      - name: id
        value: '700010'
        type: path
        description: The unique identifier of the status page.
    docs: Returns a single status page by ID.
  - info:
      name: Better Stack Update Status Page
      type: http
    http:
      method: PATCH
      url: https://uptime.betterstack.com/api/v2/status-pages/:id
      params:
      - name: id
        value: '700010'
        type: path
        description: The unique identifier of the status page.
      body:
        type: json
        data: '{}'
    docs: Updates an existing status page.
  - info:
      name: Better Stack Delete Status Page
      type: http
    http:
      method: DELETE
      url: https://uptime.betterstack.com/api/v2/status-pages/:id
      params:
      - name: id
        value: '700010'
        type: path
        description: The unique identifier of the status page.
    docs: Deletes an existing status page.
- info:
    name: Escalation Policies
    type: folder
  items:
  - info:
      name: Better Stack List Escalation Policies
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/policies
      params:
      - name: team_name
        value: my-team
        type: query
        description: Filter policies by team name when using a global API token.
    docs: Returns a paginated list of all escalation policies. Uses API v3.
  - info:
      name: Better Stack Create Escalation Policy
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/policies
      body:
        type: json
        data: '{}'
    docs: Creates a new escalation policy.
  - info:
      name: Better Stack Get Escalation Policy
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/policies/:id
      params:
      - name: id
        value: '300010'
        type: path
        description: The unique identifier of the escalation policy.
    docs: Returns a single escalation policy by ID.
  - info:
      name: Better Stack Update Escalation Policy
      type: http
    http:
      method: PATCH
      url: https://uptime.betterstack.com/api/v2/policies/:id
      params:
      - name: id
        value: '300010'
        type: path
        description: The unique identifier of the escalation policy.
      body:
        type: json
        data: '{}'
    docs: Updates an existing escalation policy.
  - info:
      name: Better Stack Delete Escalation Policy
      type: http
    http:
      method: DELETE
      url: https://uptime.betterstack.com/api/v2/policies/:id
      params:
      - name: id
        value: '300010'
        type: path
        description: The unique identifier of the escalation policy.
    docs: Deletes an existing escalation policy.
- info:
    name: Team Members
    type: folder
  items:
  - info:
      name: Better Stack List Team Members
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/team-members
      params:
      - name: team_name
        value: my-team
        type: query
        description: Filter by team name when using a global API token.
      - name: email
        value: jsmith@example.com
        type: query
        description: Filter by member email address.
    docs: Returns a list of team members and pending invitations.
  - info:
      name: Better Stack Invite Team Member
      type: http
    http:
      method: POST
      url: https://uptime.betterstack.com/api/v2/team-members
      body:
        type: json
        data: '{}'
    docs: Invites a new member to the team.
  - info:
      name: Better Stack Get Team Member
      type: http
    http:
      method: GET
      url: https://uptime.betterstack.com/api/v2/team-members/:id
      params:
      - name: id
        value: '200001'
        type: path
        description: The unique identifier of the team member.
    docs: Returns a single team member by ID.
  - info:
      name: Better Stack Delete Team Member
      type: http
    http:
      method: DELETE
      url: https://uptime.betterstack.com/api/v2/team-members/:id
      params:
      - name: id
        value: '200001'
        type: path
        description: The unique identifier of the team member.
    docs: Removes a team member by ID.
bundled: true