Security & delivery

GET/api/v1/redirect-check

PacketFlo Redirect Chain Checker API

Cost: 5 credits per request

Trace every HTTP redirect, status code, destination and response time from PacketFlo's server.

ParameterTypeRequiredDescription
urlstringYesPublic domain or HTTP/HTTPS URL. Bare domains start at HTTPS.

Direct Destination (No Redirects)

Target URL responds directly with a 200 OK without intermediate hops.

Example request

curl "https://packetflo.io/api/v1/redirect-check?url=https://example.com&api_key=YOUR_API_KEY"

Example response

{
  "ok": true,
  "data": {
    "input": "https://example.com",
    "redirects": 0,
    "finalUrl": "https://example.com/",
    "finalStatus": 200,
    "totalTimeMs": 184,
    "chainStatus": "Healthy",
    "chain": [
      {
        "hop": 1,
        "url": "https://example.com/",
        "hostname": "example.com",
        "status": 200,
        "statusText": "OK",
        "location": null,
        "redirectType": null,
        "responseTimeMs": 184,
        "upgradedToHttps": false
      }
    ],
    "warnings": []
  },
  "meta": { "tool": "redirect-check", "version": "v1" }
}

Multi-Hop Redirect Chain (HTTP to HTTPS)

Traces 301/302 redirects through intermediate hops to the final landing URL.

Example request

curl "https://packetflo.io/api/v1/redirect-check?url=http://github.com&api_key=YOUR_API_KEY"

Example response

{
  "ok": true,
  "data": {
    "input": "http://github.com",
    "redirects": 1,
    "finalUrl": "https://github.com/",
    "finalStatus": 200,
    "totalTimeMs": 197,
    "chainStatus": "Redirects detected",
    "chain": [
      {
        "hop": 1,
        "url": "http://github.com/",
        "hostname": "github.com",
        "status": 301,
        "statusText": "Moved Permanently",
        "location": "https://github.com/",
        "redirectType": "301 Moved Permanently",
        "responseTimeMs": 54,
        "upgradedToHttps": true
      },
      {
        "hop": 2,
        "url": "https://github.com/",
        "hostname": "github.com",
        "status": 200,
        "statusText": "OK",
        "location": null,
        "redirectType": null,
        "responseTimeMs": 111,
        "upgradedToHttps": false
      }
    ],
    "warnings": []
  },
  "meta": { "tool": "redirect-check", "version": "v1" }
}

Reading the result

Healthy and Redirects detected are normal outcomes. Investigate Redirect loop, Too many redirects, Request failed and Timeout, and read the warnings for context.

Response fields

FieldWhat it tells you
chainStatus / warningsOverall outcome and issues observed. Redirects alone are not a failure.
chainOrdered responses with URL, status, Location, redirect type and per-hop response time in milliseconds.
redirects / totalTimeMsRedirect count and total server-side elapsed time.
finalUrl / finalStatusFinal destination and status. An interrupted chain can point to an unvisited destination with a null status.

Scope and limits

Follows HTTP redirects with HEAD, falling back to GET when needed. Bare domains start at HTTPS; explicit HTTP URLs can show an HTTP-to-HTTPS upgrade. Limited to public targets on ports 80/443, 20 redirects, three-second request waits and a 30-second overall budget. Partial chains are returned when possible. JavaScript and meta-refresh redirects are not followed.

Authentication and errors

Send your key in the x-api-key header, or the supported api_key query parameter. Each request uses 5 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 statusMeaning
200The diagnostic returned a result in data, with ok: true and version information in meta. Read the diagnostic fields to determine the target's condition.
400Invalid or blocked input, or a lookup/check failure that could not be returned as a diagnostic result. Read error for details.
401Missing, invalid or revoked API key.
429The request would exceed the key's available credit budget.
DNS Blacklist Checker