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.
This is what your dashboard looks like when nothing is on fire.
How it works
-
Add your endpoints
Paste a URL. Optionally set expected status code, response body match, or custom headers.
-
We ping them
Every 30 seconds (or 60s, or 5mins - your choice) from Oregon, Stockholm, Singapore, Melbourne, and Seoul.
-
Something breaks
We retry twice from different regions to avoid false positives. If it's really down, we'll let you know.
-
You get paged
Slack, PagerDuty, email, SMS, or raw webhook. Your choice. Configurable per-endpoint.
-
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
- Slack
- PagerDuty
- Discord
- Microsoft Teams
- SMS1
- Webhook
- Telegram
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.
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 account1 SMS costs extra ($0.05/message) because Twilio charges us. Email and webhooks are always included.