# URL Unshorten & Redirect Chain Checker

> URL Unshorten & Redirect Chain Checker is a paid API for AI agents from sdn-screen-x402.sdnscreen.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-16).

Follows HTTP redirects for a given URL and returns the full redirect chain, final destination URL, and risk flags for $0.01 USDC per call.

## Facts

- Endpoint: GET https://sdn-screen-x402.sdnscreen.workers.dev/v1/url-unshorten?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/url-unshorten-redirect-chain-checker-eb3e724c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__bKlEqwCp_TJxGaNUf6XF

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability url-unshorten-redirect-chain-checker-eb3e724c
```

Example prompt: Can you unshorten this link and show me the full redirect chain to see where it actually ends up — https://bit.ly/3x402? I want to know the final URL and whether there are any risk flags.

## When to prefer this

Use this endpoint when you need to resolve a shortened or opaque URL to its true destination before acting on it, especially in security-sensitive workflows, automated agent pipelines, or compliance checks. Prefer this over manual browser inspection when you need a structured, machine-readable redirect chain with risk flags. Ideal for AI agent preflight checks before visiting URLs, for phishing triage, or for newsletter/email link auditing. At $0.01 USDC per call with no API key required, it is well-suited for pay-per-use agentic workflows via x402 or MPP.

## Known failure modes

- Private or loopback host URLs are refused with an error
- Malformed or non-HTTP/HTTPS URLs rejected
- DNS resolution failures for the target host
- Connection timeouts on slow or unresponsive hosts
- URLs longer than 2048 characters are rejected
- Risk flags are heuristic only — not a malware/phishing reputation verdict

## How this service works

Six keyless pay-per-call tools for AI agents: OFAC SDN crypto-wallet screen, live DNS records lookup, SPF/DMARC/DKIM email-auth check, domain age/registrar (RDAP), email address MX verify and URL unshorten/redirect check. $0.01 per call: USDC on Base over x402, or USDC on Tempo over MPP. Also a remote MCP server at /mcp (x402).

## Output

Returns a JSON object containing: the original input URL, the final resolved URL and host, HTTP status of the final page, number of redirects followed, a full chain array showing each hop's URL, status code, and Location header, a list of heuristic risk flags (e.g. IP-address host, excessive hops, known shortener chains), an overall risk rating (low/medium/high), a checkedAt timestamp, and any error message. Note: follows HTTP redirects only, not JavaScript or meta-refresh; page bodies are never read.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "examples": [
        "https://bit.ly/3x402"
       ],
       "maxLength": 2048,
       "minLength": 4,
       "description": "http(s) URL to expand. A bare host gets https:// added. Private/loopback hosts are refused."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "input",
      "finalUrl",
      "finalHost",
      "finalStatus",
      "redirects",
      "chain",
      "flags",
      "risk",
      "checkedAt"
     ],
     "properties": {
      "note": {
       "type": "string"
      },
      "risk": {
       "enum": [
        "low",
        "medium",
        "high"
       ],
       "type": "string"
      },
      "chain": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "url",
         "status",
         "location"
        ],
        "properties": {
         "url": {
          "type": "string"
         },
         "status": {
          "type": [
           "integer",
           "null"
          ]
         },
         "location": {
          "type": [
           "string",
           "null"
          ]
         }
        }
       }
      },
      "error": {
       "type": [
        "string",
        "null"
       ]
      },
      "flags": {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      "input": {
       "type": "string"
      },
      "finalUrl": {
       "type": "string"
      },
      "checkedAt": {
       "type": "string",
       "format": "date-time"
      },
      "finalHost": {
       "type": "string"
      },
      "redirects": {
       "type": "integer"
      },
      "finalStatus": {
       "type": [
        "integer",
        "null"
       ]
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "note": "Follows HTTP redirects only (not JavaScript/meta refresh); page bodies are never read. Flags are local heuristics, not a malware/phishing reputation verdict.",
  "risk": "low",
  "chain": [
   {
    "url": "http://github.com/",
    "status": 301,
    "location": "https://github.com/"
   },
   {
    "url": "https://github.com/",
    "status": 200,
    "location": null
   }
  ],
  "error": null,
  "flags": [],
  "input": "http://github.com",
  "finalUrl": "https://github.com/",
  "checkedAt": "2026-10-12T17:50:00.000Z",
  "finalHost": "github.com",
  "redirects": 1,
  "finalStatus": 200
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/url-unshorten-redirect-chain-checker-eb3e724c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from sdn-screen-x402.sdnscreen.workers.dev](https://www.zero.xyz/host/sdn-screen-x402.sdnscreen.workers.dev/llms.txt)
