Vercel uptime monitoring

Vercel does not request your production domain from outside on any plan, so uptime monitoring on Vercel means a health route that cannot be cached plus an external monitor that calls it every few minutes and alerts you when it stops answering 200.

What Vercel gives you

Vercel sees every request that reaches it. Observability shows function errors and latency per route, and on Pro with Observability Plus you can add alert rules for error anomalies and usage anomalies, measured over 5-minute windows and sent by email, Slack or webhook. Failed deploys get a notification too. Hobby has no alert rules at all.

All of it is measured from the inside, on traffic that already arrived. An anomaly needs a baseline and a minimum amount of activity before it fires, and Vercel sets those thresholds for you. A side project at 3am has neither. If the domain stops resolving, the database credentials expire, or the one route that matters starts returning 500 to the four people using it, nothing at Vercel requests your site on a schedule and notices.

Vercel SLA and uptime guarantee

Vercel publishes a 99.99% uptime SLA for Enterprise customers. Hobby and Pro have no contractual uptime guarantee. 99.99% allows about 4 minutes 23 seconds of downtime a month. Below it, the credit is 10% of the monthly fee down to 99.1%, 25% from 99% to 95%, and 50% under 95%, capped at half the bill and claimed within 30 days with a record of when the downtime happened. The SLA covers the platform serving your content, not the API or the CLI. An SLA is a refund policy. It does not tell you anything is down.

A health route Vercel cannot cache

app/api/health/route.ts
import { neon } from '@neondatabase/serverless';

const sql = neon(process.env.DATABASE_URL!);

// Run on every request, never from the build or the CDN.
export const dynamic = 'force-dynamic';

export async function GET() {
  const headers = { 'Cache-Control': 'no-store' };

  try {
    await sql`select 1`;
    return Response.json({ ok: true }, { headers });
  } catch {
    return Response.json({ ok: false, error: 'db' }, { status: 503, headers });
  }
}

force-dynamic keeps the route out of the build output and no-store keeps it out of the CDN, so every check reaches a function and the database. Request it twice with curl -sI and the x-vercel-cache header should never read HIT. A cached 200 is a monitor that stays green through the whole outage.

Point the monitor at your production domain, not a generated deployment URL like my-app-abc123.vercel.app. Standard Protection puts those behind Vercel Authentication, so a monitor aimed there checks the login wall instead of your app.

Three steps to an alert

  1. Add the URL Create a service in Logdash and give its monitor https://yourapp.com/api/health. Five services fit in the free plan, and every check records the status code and the response time.
  2. Pick the interval Every 5 minutes on the free plan, every minute on Builder, every 15 seconds on Pro. Any status outside 200 to 399, or no answer within 10 seconds, counts as down.
  3. Break it on purpose Change the password inside DATABASE_URL in the project settings and redeploy. The route returns 503, the next check flips the monitor to down, and a Telegram alert lands with the monitor name, the status code and the error. Put the password back and a second message tells you it is up.

Vercel uptime monitoring with Uptime Kuma

Uptime Kuma cannot run on Vercel. It is a long-running Node process that keeps its SQLite database in a persistent data directory, and Vercel functions start per request with no disk that survives. Kuma for a Vercel app means a VPS or a container somewhere else, which is a second machine to update and keep alive.

Logdash vs Vercel built-in alerts

FeatureLogdashVercel alerts
Requests your domain from outsideA GET every 5 minutes, 1 minute or 15 seconds by planNo, measures traffic that already arrived
Notices a dead app with no trafficYes, the check is the trafficNo baseline, so no anomaly
Coverage across routesOne monitored URL per serviceEvery route, 5xx by default, 4xx optional
Plan neededFree plan, five servicesPro with Observability Plus
Alert channelsTelegram and webhookEmail, Slack and webhook
SetupA URL and a Telegram chatA rule in team settings

When Vercel alerts is the better pick

  • You are already on Pro with Observability Plus and your traffic is steady. Anomaly rules watch every route, a monitor watches one URL.
  • Your team lives in Slack or email. Logdash sends Telegram messages and webhooks, nothing else.
  • You want the alert to arrive with the logs around it. Vercel Agent Investigation, in beta, summarises them for you.
Is there built-in Vercel uptime monitoring?
No. Vercel has error and usage anomaly alerts on Pro with Observability Plus, but nothing on any plan requests your domain on a schedule. Uptime monitoring on Vercel needs an external checker pointed at a route like /api/health.
Can I run Uptime Kuma on Vercel?
No. Kuma needs a process that stays up and a persistent data directory for its database, and Vercel functions have neither. Run Kuma on a VPS or another platform, or use a hosted monitor so there is nothing to keep alive.
What is the Vercel SLA?
99.99% monthly uptime, Enterprise only, with service credits of 10%, 25% or 50% of the monthly fee depending on how far it falls short, capped at 50% and claimed within 30 days. It excludes the API, the CLI and anything that does not serve your content.
Does Vercel have an uptime guarantee on Hobby or Pro?
No. The uptime guarantee is part of the Enterprise contract and is not sold as an add-on. On Hobby and Pro an outage earns no credit, so your own check history is the only record you will have of it.

Point it at your own URL and watch it for real.