Network & DNS
/api/v1/is-site-downPacketFlo Is My Site Down API
Check whether a public website responds from PacketFlo's server, with its HTTP status, response time, redirects and failure stage. Costs 2 credits per check.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Absolute public HTTP or HTTPS URL, including the scheme. Credentials and private network targets are rejected. |
Website Up (200 OK)
Target server responds with a successful HTTP status code.
Example request
curl "https://packetflo.io/api/v1/is-site-down?url=https://example.com&api_key=YOUR_API_KEY"
Example response
{ "ok": true, "data": { "requestedUrl": "https://example.com", "finalUrl": "https://example.com/", "status": "up", "statusCode": 200, "statusText": "OK", "responseTime": 184, "reason": null, "failedStage": null, "redirectHops": null, "cloudflareBlocked": false }, "meta": { "tool": "is-site-down", "version": "v1" } }
Website Down (DNS / Connect failure)
Target fails to resolve or connect. The check returns ok: true with diagnostic failure details.
Example request
curl "https://packetflo.io/api/v1/is-site-down?url=https://nonexistent-domain-test.org&api_key=YOUR_API_KEY"
Example response
{ "ok": true, "data": { "requestedUrl": "https://nonexistent-domain-test.org", "finalUrl": null, "status": "down", "statusCode": null, "statusText": null, "responseTime": null, "reason": "DNS resolution failed — the domain doesn't currently resolve to any IP address.", "failedStage": "dns", "redirectHops": null, "cloudflareBlocked": false }, "meta": { "tool": "is-site-down", "version": "v1" } }
Reading the result
An API response with ok: true means the check completed. Read data.status to see whether the target responded successfully.
| Result | Meaning |
|---|---|
up | The server returned a response below 500 and is no longer redirecting. A 401, 403 or 404 still means reachable; check statusCode to understand the page response. |
down | A server error, unresolved redirect, DNS or TLS failure, connection failure, or timeout prevented a successful check. This is a diagnostic finding, so the API still returns HTTP 200. |
Response fields
| Field | What it tells you |
|---|---|
finalUrl | The last URL checked. Null when no HTTP response was received. |
statusCode / statusText | The target's HTTP response, such as 200 / OK. Both are null when no response was received. |
responseTime | Elapsed milliseconds from PacketFlo's server, including redirects. Null when no HTTP response was received. |
reason | A short explanation of a down result; otherwise null. |
failedStage | dns, connect, tls, http, or null. Network failure stages are inferred from errors rather than measured as separate probes. |
redirectHops | An ordered array of { url, status } for a redirected request; null for a direct response. |
cloudflareBlocked | True when a 4xx/5xx response carries Cloudflare headers. It may indicate a challenge or restriction; it does not prove the origin is down. |
Scope and limits
Checks run from PacketFlo's server, with at most five HTTP requests and a six-second fetch timeout per request. Results describe reachability from that server; they do not establish a worldwide outage or measure the visitor's connection.
Authentication and errors
Send your key in the x-api-key header, or the supported api_key query parameter. Each request uses 2 credits from the key's shared 300-credit rolling 24-hour budget. Credits are charged before parameter validation. Successful responses and quota errors include usage headers; GET and OPTIONS support CORS.
| API status | Meaning |
|---|---|
200 | The diagnostic returned a result in data, with ok: true and version information in meta. Read the diagnostic fields to determine the target's condition. |
400 | Missing or invalid URL, or a blocked target. |
401 | Missing, invalid or revoked API key. |
429 | The request would exceed the key's available credit budget. |
500 | PacketFlo could not complete the check. |