Go beyond simple pings. Write queries against status codes, JSON bodies, HTML selectors, headers, cert expiry — everything your response contains.
{ "$and": [ { "status": { "$lt": 400 } }, { "$json": { "$.db.status": { "$eq": "ok" } } }, { "$certExpiry": { "$gt": 14 } } ] }
Most monitoring tools ping a URL and check if it returns 200. That tells you almost nothing. PingQL lets you query the entire response.
Powerful primitives, zero bloat.
Use $and, $or, $lt, $gt, $regex — a query language you already know.
Monitor any public page with no API. Use $css to extract text from HTML elements.
Drill into API responses with $json and JSONPath expressions. Assert on any nested field.
Built-in $certExpiry operator. Get alerted before your cert expires, not after.
Set thresholds on responseTime. Know when your API is slow, not just down.
No email required. Get an account key, start monitoring. Privacy first, always.
We built PingQL for developers who care about their data.
No tracking, no analytics, no ads
Zero third-party scripts. Zero cookies.
Account keys, not passwords
Be completely anonymous. No email required.
Emails hashed if provided
Optional email for recovery only. We hash it.
We never sell data
Your monitors, your data. Period.
Create monitors, query results, and manage everything from scripts, your terminal, or anywhere with HTTP.
$ curl -X POST https://pingql.com/api/monitors \ -H "X-Key: XXXX-XXXX-XXXX-XXXX" \ -d '{ "url": "https://api.example.com/health", "interval": 60, "query": { "status": { "$lt": 400 }, "$json": { "$.ok": { "$eq": true } } } }' // → 201 Created { "id": "mon_a1b2c3", "status": "active" }
$ curl https://pingql.com/api/monitors/mon_a1b2c3 \ -H "X-Key: XXXX-XXXX-XXXX-XXXX" { "id": "mon_a1b2c3", "url": "https://api.example.com/health", "status": "up", "lastCheck": "2024-01-15T10:30:00Z", "responseTime": 142, "uptime30d": 99.97 }
Start for free. No credit card required.