Uptime + synthetic monitoring

Know when your app breaks before users do.

UpButler does uptime monitoring for websites and APIs, plus synthetic monitoring with JavaScript and Playwright. Get alerts in Slack, Discord, email, or webhooks the moment something fails.

HTTPS monitoring Playwright tests Script tests Status pages Notifications
No credit card
5 monitors free forever
Live in ~60 seconds
Product Tour

Know what's happening, at a glance

A quick tour of the core workflows: monitors, incidents, alert routing, and status pages.

Monitors

API (Production)

142ms • 1m interval

Checkout Flow

Script • 2.1s

API (Production)

5xx spike • 2m ago

Incident created
Alert sent to Slack

Slack

#oncall

Enabled

Discord

#alerts

Enabled

Acme Cloud Status

3 monitors • 124 subscribers

Status

All operational

30d uptime

99.99%

Synthetic monitoring

JavaScript synthetic monitoring (beyond uptime)

Don’t just ask “is it up?”, check “does it work?” with deterministic scripts for APIs and pages. That’s synthetic monitoring: assertions you control, on a schedule.

Vitest-powered Jest-style matchers Cheerio-powered HTML

Helpers available

fetch(), expect() ▾ , and $() ▾ (HTML parsing).

Assertions first

Fail the monitor when the response is wrong, not just when the server is down.

Examples

Script monitor

// API health + business assertion
const res = await fetch('https://api.example.com/health');
expect(res.status).toBe(200);

const json = await res.json();
expect(json.ok).toBe(true);
expect(json.version).toBeDefined();

Checks

Status + JSON

Output

Pass ✓

// HTML parsing + content check
const res = await fetch('https://example.com/pricing');
expect(res.status).toBe(200);

const html = await res.text();
const $page = $(html);
expect($page.find('[data-plan="pro"]').length).toBeGreaterThan(0);

Checks

DOM + selectors

Output

Pass ✓

Browser monitors

Playwright browser monitoring

Run real user flows (login, checkout, onboarding) with page.*. Each run records steps and screenshots.

Example

Login flow

// Playwright-style script (auto-detected)
await page.goto('https://example.com/login');
await page.fill('#email', '[email protected]');
await page.fill('#password', 'test-password');
await page.click('button[type=submit]');

await expect(page.locator('[data-testid="dashboard"]')).toBeVisible();
Step timeline Screenshots Action-by-action status

Run output

Step timeline (goto, click, fill, assertions)

Screenshots attached to each step

Alerts when the flow fails

Test real user journeys

Login flows, checkout, onboarding. If it breaks, you'll know before your users do.

Set up in 60 seconds

No setup drama. Create a monitor, choose alerts, and get back to building.

1

Create a monitor

Add a URL for website/API uptime monitoring, or write a JavaScript script for deeper checks.

2

Add alert channels

Connect Slack, Discord, email, or webhooks. Route alerts to whoever is on call.

3

Relax

Checks run 24/7. You’ll hear about failures early, and you’ll get the recovery message too.

FAQ

Frequently asked questions

Quick answers about how UpButler works.

What is Synthetic Monitoring?

Synthetic monitoring means running scripted, deterministic checks on a schedule. In UpButler, that’s JavaScript script tests (API + HTML assertions) and Playwright browser flows.

Can I monitor both websites and APIs?

Yes. Use HTTP monitoring for simple endpoints, and synthetic monitoring scripts when you need deeper checks (JSON shape, DOM content, business rules).

Do you support browser monitoring?

Yes. If your script uses page.*, it runs as a Playwright browser check. It’s ideal for login flows, checkout, and any “real user journey” you want to validate.

How do alerts work?

When a check fails, you can notify Slack, Discord, email, or webhooks. You get fast signal when something breaks, and a clear paper trail when it recovers.

What happens when something goes down?

UpButler tracks failures as incidents with a timeline. You can see what failed, when it started, and when it recovered. No digging through logs.

Can I share a status page with users?

Yes. Status pages roll up monitors into a clean, shareable view. Use them for transparency during incidents and to reduce inbound support load.

Simple, transparent pricing

Start free. Upgrade when you outgrow it.

Free

Perfect for side projects

$0 /month
  • Up to 5 monitors
  • 5-minute check interval
  • Email & webhook alerts
  • 1 status page
Get Started
Popular

Pro

For serious teams

$19 /month
  • Unlimited monitors
  • 1-minute check interval
  • Slack & Discord alerts
  • Unlimited status pages
  • Custom test scripts
  • Priority support
Go Pro

Ready to stop worrying about downtime?

Create your first uptime monitor in under 60 seconds. No credit card required.