betteruptime.js

betteruptime.js

Unofficial API wrapper for BetterStack's Uptime API.

Built with TypeScript, strongly typed* and JSDoc'd. Documentation

* = This project is still work-in-progress, and some APIs are not fully typed yet. See more in the API Support section.

Installation

Install the package (betteruptime) with your favourite package manager:

# Bun.sh
bun install betteruptime.js
# NPM
npm install betteruptime.js

API Support

Currently most APIs are not typed, please consult the API documentation for the time being.

Partly or fully untyped APIs are marked with a *.

Monitors API

  • Monitor
  • Monitor groups*
  • Heartbeats*
  • Heartbeat groups*

On-call & Incidents API

  • On-call calendar*
  • Escalation policies*
  • Incidents*
  • Comments*

Status pages API

  • Status pages*
  • Status page sections*
  • Status page resources*
  • Status page reports*
  • Status page updates*

Other API

  • Metadata*

Integrations API (low priority)

  • Incoming webhooks
  • Email integrations
  • New Relic
  • Datadog
  • AWS CloudWatch
  • Azure
  • Google Monitoring
  • Grafana
  • Prometheus
  • Splunk On-Call integrations
  • PagerDuty

Getting started

const uptime = new BetterUptime("your-api-key");

// Creates a new "status" (2XX status code) monitor for google.com
const monitor = await api.monitors.create({
monitor_type: "status",
url: "https://google.com",
});

console.log(monitor); // -> Monitor { id: '123', type: 'monitor', attributes: { ... } }

// Pause the google.com monitor
await monitor.pause();

// Only ping from EU
monitor.attributes.regions = ["eu"];
await monitor.save(); // Saves the changes made to attributes manually

// Get all monitors
const monitors = await api.monitors.getAll();

console.log(monitors); // -> [ Monitor { ... }, Monitor { ... }, Monitor { ... }, ... ]

Generated using TypeDoc