---
title: "Vercel uptime monitoring | Logdash"
description: "Vercel has no outside-in uptime checks on any plan and its 99.99% SLA is Enterprise only. An uncached health route, a monitor and a Telegram alert in 3 steps."
url: https://logdash.io/monitor/vercel
---

# 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 

```typescript
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

| Feature                            | Logdash                                               | Vercel alerts                             |
| ---------------------------------- | ----------------------------------------------------- | ----------------------------------------- |
| Requests your domain from outside  | A GET every 5 minutes, 1 minute or 15 seconds by plan | No, measures traffic that already arrived |
| Notices a dead app with no traffic | Yes, the check is the traffic                         | No baseline, so no anomaly                |
| Coverage across routes             | One monitored URL per service                         | Every route, 5xx by default, 4xx optional |
| Plan needed                        | Free plan, five services                              | Pro with Observability Plus               |
| Alert channels                     | Telegram and webhook                                  | Email, Slack and webhook                  |
| Setup                              | A URL and a Telegram chat                             | A 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.

## Keep reading

[All platforms](https://logdash.io/monitor): One page per platform, each with what it already monitors, the gap, and a Telegram alert in three steps.

[Railway uptime monitoring](https://logdash.io/monitor/railway): Railway calls your healthcheckPath only while a new deploy goes live and never after, so uptime monitoring on Railway means an external monitor that requests your public domain every few minutes and alerts you when it fails.

[Render uptime monitoring](https://logdash.io/monitor/render): Render health-checks each instance and can email or Slack you when a service turns unhealthy, but nothing at Render requests your public URL from outside, so uptime monitoring on Render means an external monitor on a /health route.

[Fly.io monitoring](https://logdash.io/monitor/fly-io): Fly.io gives you health checks that steer traffic between machines and Grafana dashboards of your metrics, but nothing that tells you when the app goes down, so pair the fly.toml check with an outside HTTP monitor that sends you a Telegram message.

[Uptime monitoring](https://logdash.io/features/monitoring): HTTP checks as often as every 15 seconds. When one fails, Telegram tells you before your users do.
