← Blog

Uptime monitoring for Cloudflare Workers

Cloudflare Workers run JavaScript at the edge — fast and global, but a green tab on your laptop is not proof for integrators. Customers still need confirmation that your API or worker route answers on the public internet when they wire you up or when an incident starts.

StillOnline probes your HTTPS health URL from outside Cloudflare’s network, hosts a status page for subscribers, and sends owner alerts through the StillOnline Telegram bot, Slack, or email. You keep Workers; StillOnline only needs a public GET route.

Quick answer

Deploy a Worker route such as GET /health returning JSON and HTTP 200. Add that production URL to StillOnline for scheduled external checks, an automatic status page at /en/s/{id}, and downtime notifications via the StillOnline Telegram bot, Slack webhook, or email. Free includes one URL per project — pick the hostname API clients actually use.

Minimal Worker health route

Start with a path that does not depend on KV or D1 unless “up” must mean your data plane is reachable. Bind the worker to your-worker.workers.dev or your custom domain.

export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === "/health") {
      return Response.json(
        { status: "ok", edge: true },
        { status: 200 },
      );
    }
    // ... your app routes
  },
};

After deploy, verify from your laptop:

curl -sS https://api.yourproduct.com/health

Workers + Pages: health can live on the Worker in front of Pages or on a dedicated api. subdomain — pick one canonical URL and document it (health endpoint design).

Register in StillOnline

External monitoring does not run inside your Worker isolate. Register the same HTTPS URL you just curled.

  1. Create account.
  2. Project + HTTP check → Worker HTTPS URL, GET, 200, five-minute interval on Free.
  3. Share the status page URL with customers in docs or onboarding — public status page guide.

Owner alerts at the edge

Cloudflare analytics and Workers logs help you debug; they do not DM you at 3 a.m. Link Telegram (StillOnline bot) or Slack in settings. Free: one owner channel; Pro / Ultimate: email, Telegram, and Slack together (pricing).

Edge-specific notes

Edge stacks add anti-bot rules, cron triggers, and optional storage in health. StillOnline uses a single external HTTP probe — choose the URL that best represents customer-visible availability.

TopicGuidance
KV / D1 in healthPing only if “up” must mean “data plane ok”
Cron triggersSeparate from HTTP probe — optional second check on Pro
Anti-bot on root /Monitor /health, not marketing /
Multiple regionsStillOnline uses external HTTP — one URL represents global reach

Related guides

FAQ

Does StillOnline run inside my Cloudflare Worker?

No. Probes run from StillOnline’s external network, not inside your Worker isolate. You only publish a public GET /health route — health check quickstart.

Should StillOnline monitor workers.dev or my custom domain on Workers?

Use the same HTTPS hostname API clients use in production. Changing hostnames later breaks bookmarks and checks — pick one canonical URL in health endpoint design.

Which URL should StillOnline check for Workers plus Pages?

Monitor whichever URL returns your health JSON with 200 — often a Worker in front of Pages or a dedicated api. subdomain. One Free project includes one URL.

Can agents read StillOnline Worker uptime without the dashboard?

On Pro, use public JSON or MCP get_public_statusREST guide. Customers still use the hosted status page.