API & endpoint monitoring

We check. You sleep.

Uptime checks every 30 seconds from 5 regions. Alerts via Slack, PagerDuty, email, or webhook. No dashboards you'll never look at.

Coming soon No credit card required.
All systems operational Last checked 12s ago
api.example.com/health 77ms UP
api.example.com/v2/users 89ms UP
payments.example.com/webhook 122ms UP
cdn.example.com/assets 45ms UP

This is what your dashboard looks like when nothing is on fire.

How it works

  1. Add your endpoints

    Paste a URL. Optionally set expected status code, response body match, or custom headers.

  2. We ping them

    Every 30 seconds (or 60s, or 5mins - your choice) from Oregon, Stockholm, Singapore, Melbourne, and Seoul.

  3. Something breaks

    We retry twice from different regions to avoid false positives. If it's really down, we'll let you know.

  4. You get paged

    Slack, PagerDuty, email, SMS, or raw webhook. Your choice. Configurable per-endpoint.

  5. It comes back up

    We send a recovery alert. You go back to sleep. Incident logged.

What we check

Check type What it does
HTTP(S) Status code, response time, body contains/matches, header presence, SSL expiry
TCP Port open/closed, connection time
DNS Record resolution, expected value match, propagation across resolvers
Ping (ICMP) Host reachable, round-trip time
SSL/TLS Certificate valid, expiry warning (30/14/7 days), chain issues

Assertions

Every check can have conditions. If any fail, the check fails.

# Response time under 500ms
response.time < 500

# Status code is 200 or 201
response.status in [200, 201]

# Body contains specific JSON
response.json.status == "healthy"

# Header exists
response.headers["X-Request-Id"] exists

# SSL cert expires in more than 14 days
ssl.days_until_expiry > 14

Pricing

Free Pro Team
Checks 5 50 Unlimited
Interval 5 min 30 sec 30 sec
Regions 1 5 5
Data retention 7 days 90 days 1 year
Status pages 1 (branded) 3 Unlimited
Team members 1 3 Unlimited
Integrations Email only All All + SSO
Price Coming soon Coming soon Coming soon

Annual billing gets 2 months free. Need more checks? Additional checks are $0.20/check/month on Pro and Team.

Integrations

Webhooks send JSON. Use them to integrate with anything: Zapier, n8n, custom scripts, whatever.

Webhook payload example
{
  "event": "check.down",
  "check": {
    "id": "chk_a1b2c3",
    "name": "Production API",
    "url": "https://api.example.com/health"
  },
  "incident": {
    "id": "inc_x9y8z7",
    "started_at": "2026-01-28T14:32:07Z",
    "region": "eu-north",
    "status_code": 503,
    "response_time_ms": 12847,
    "error": "timeout after 10s"
  }
}

Regions

We check from 5 locations. If one region can't reach you, we retry from another before alerting.

Region Location Provider
us-west Oregon, USA AWS
eu-north Stockholm, Sweden AWS
ap-singapore Singapore DigitalOcean
ap-melbourne Melbourne, Australia Vultr
ap-seoul Seoul, South Korea Linode

Status pages

Every account gets a public status page. Show your users what's up (or down). Custom domain support on Pro and Team.

status.yourcompany.com
All systems operational
APIOperational
DashboardOperational
WebhooksOperational
90-day uptime:
99.94%

About

We built napelo because existing uptime monitoring services are either too complex, too expensive, or both. napelo focuses on doing one thing well: letting you know when your APIs and endpoints are down, so you can get back to building stuff.

napelo runs on 5 servers (one per major region, plus a coordinator). No Kubernetes, no microservices, no AI. Just PostgreSQL, Go, and cron jobs.

FAQ

How do you avoid false positives?

If a check fails, we immediately retry from a different region. If that also fails, we try a third region. Only if 2+ regions report failure do we alert you. This catches most transient network issues.

What's your uptime?

99.99% over the last 12 months. Our status page is at status.napelo.com.

Can I monitor internal/private endpoints?

Not directly, as we can only reach public endpoints. If you need to monitor internal services, you'll need to expose a health endpoint or use something like Tailscale Funnel.

What happens if napelo goes down?

We have a separate monitoring service (recursive) that pages us via SMS if the coordinator goes unresponsive. We've also got automated failover for the check runners.

Can I self-host?

Not at the moment sorry! If you're after a self-hosted solution, check out Uptime Kuma. We think it's great.

Try it

Free tier will actually be free. No trial period, no credit card, no "contact sales."

Create account

1 SMS costs extra ($0.05/message) because Twilio charges us. Email and webhooks are always included.