Uptime Beta
An instant up/down and true response-time check that does not mistake a bot challenge for an outage. The check is a direct GET with no proxy in the way, so the timing you get back is the site's real server response time. 2xx and 3xx count as up.
If the direct request comes back 202, 403, 429 or 503 — the classic bot-protection codes — the endpoint re-confirms through a real-browser fingerprint before ever calling a healthy site "down", and still reports the direct response time. The socket is pinned to the SSRF-validated IP, which closes the DNS-rebind window. The check times out after 10 seconds.
Authentication
Send your API key as an X-API-Key header, or as a key query parameter. Available on every plan, including Free — plans differ only in requests per day. This call costs one request against your daily quota, which is shared across every key on the account. See Authentication.
Query parameters
| Name | Type | Description |
|---|---|---|
url required | string | The URL to check. |
key optional | string | Your API key, if not sent as the X-API-Key header. |
Request
Response
- {
- "url": "https://example.com", "up": true, "statusCode": 200,
- "responseMs": 113, "error": null,
- "checkedVia": "direct", "checkedAt": "2026-09-02T11:04:22.118Z"
- }
Response fields
| Field | Type | Description |
|---|---|---|
up | boolean | true for a 2xx or 3xx response. |
statusCode | integer | null | The HTTP status, or null when the connection never completed. |
responseMs | number | null | The direct response time in milliseconds, even when the bot-protection fallback was used. |
error | string | null | A classified failure reason — "DNS lookup failed", "Connection refused", "SSL/TLS error", "Timed out (10s)" and similar. |
checkedVia | string | "direct", or "proxy" when the bot-protection fallback was used. |
checkedAt | string | ISO 8601 timestamp of the check. |
A down site is not an error response. A site that is unreachable still returns 200 with up: false and a classified error — so handle "down" by reading up, not by catching a non-200.
Errors
| Status | When |
|---|---|
401 | Missing or invalid API key. |
403 | The URL is a private, loopback or cloud-metadata address and was blocked by SSRF protection. |
429 | Burst rate limit (60 req/10s per IP, 30 req/10s per key) or your daily quota. See Rate limits. |
502 | The check itself could not be run. |
503 | The uptime engine is unavailable on this server. This check runs before authentication. |
Errors return { "error": "…" }; see Errors.