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.
Install the package (betteruptime
) with your favourite package manager:
# Bun.sh
bun install betteruptime.js
# NPM
npm install betteruptime.js
Currently most APIs are not typed, please consult the API documentation for the time being.
Partly or fully untyped APIs are marked with a *
.
- Monitor
- Monitor groups*
- Heartbeats*
- Heartbeat groups*
- On-call calendar*
- Escalation policies*
- Incidents*
- Comments*
- Status pages*
- Status page sections*
- Status page resources*
- Status page reports*
- Status page updates*
- Metadata*
- Incoming webhooks
- Email integrations
- New Relic
- Datadog
- AWS CloudWatch
- Azure
- Google Monitoring
- Grafana
- Prometheus
- Splunk On-Call integrations
- PagerDuty
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 { ... }, ... ]