FETCHX402

LIVE

Redirect Tracer

Trace HTTPS redirects for a hostname. Use when you need live hop facts and must not guess. HEAD of https://{domain}/ on :443 (GET if 405/501); follow Location up to 5 hops. HTTPS :443 only after ConnectGuard. Bodies are omitted.

LIVE $0.005 USDC GET /v1/tools/resolve-redirect

When to use

Trace HTTPS redirects for a hostname. Use when you need live hop facts and must not guess. HEAD of https://{domain}/ on :443 (GET if 405/501); follow Location up to 5 hops. HTTPS :443 only after ConnectGuard. Bodies are omitted.

Try

Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.

/v1/tools/resolve-redirect?domain=example.com

Full URL: https://api.fetchx402.com/v1/tools/resolve-redirect?domain=example.com

Request

GET /v1/tools/resolve-redirect · x402 V2 · USDC on Base · $0.005 USDC

x402 V2 curl

Expect HTTP 402 and a PAYMENT-REQUIRED header until you retry with PAYMENT-SIGNATURE.

curl -i -H "Accept: application/json" "https://api.fetchx402.com/v1/tools/resolve-redirect?domain=example.com"

Cursor mcp.json

Intended config for @fetchx402/mcp. This is not npm @x402/fetch (a payment fetch wrapper).

{
  "mcpServers": {
    "fetchx402": {
      "args": [
        "-y",
        "@fetchx402/mcp"
      ],
      "command": "npx",
      "env": {
        "X402_PRIVATE_KEY": "0xYOUR_SPENDING_KEY"
      }
    }
  }
}

Query parameters

Name Type Required Description
domain string required Public fully-qualified domain name to start from, such as example.com. We HEAD https://{domain}/ on :443 (GET if HEAD is 405/501), then follow Location up to 5 hops. IPs, localhost, and internal/mDNS names are rejected. Only HTTPS :443 after ConnectGuard. Response bodies are not returned.

Success fields

Field Type Description
domain string Normalized FQDN that started the trace
start_url string HTTPS origin we requested first (always / in v1)
final_url string Last URL we successfully fetched
hop_count integer Number of HTTPS requests completed
truncated boolean True when the hop cap stopped a still-redirecting chain
stop_reason string Why the trace ended besides a non-redirect status. null, max_hops, loop, missing_location, invalid_location, insecure_redirect, blocked_host, blocked_port, blocked_address, nxdomain, connect_failed, handshake_failed, or http_failed
hops array Per-hop facts: index, url, method, status, peer_ip, location. Bodies and cookies are omitted.

Example

Frozen fixture. Not a live lookup.

{
  "domain": "example.com",
  "final_url": "https://example.com/",
  "hop_count": 1,
  "hops": [
    {
      "index": 1,
      "location": null,
      "method": "HEAD",
      "peer_ip": "23.215.0.138",
      "status": 200,
      "url": "https://example.com/"
    }
  ],
  "start_url": "https://example.com/",
  "stop_reason": null,
  "truncated": false
}

Payment

Unpaid requests return HTTP 402 with a base64 PAYMENT-REQUIRED header. Retry the same URL with PAYMENT-SIGNATURE. Settlement completes before the tool runs. Full handshake and shared payment errors: Payments.

Errors

HTTP Code When
400 invalid_domain Domain is missing, malformed, an IP address, or a blocked/internal name
400 blocked_address The domain resolved to a private, loopback, or metadata address
402 payment_required Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header
404 nxdomain The domain name does not exist
502 connect_failed TCP connection to the host failed
502 handshake_failed TLS handshake failed
502 http_failed HTTPS request failed after connect
503 overloaded Tool concurrency cap reached; retry shortly
504 redirect_timeout HTTPS redirect trace timed out
409 payment_in_progress The same authorization nonce is already being settled; retry shortly
429 rate_limited Too many requests from this client
503 settlement_uncertain Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE
503 facilitator_unavailable Payment facilitator unavailable
503 facilitator_misconfigured Payment facilitator is not configured
503 facilitator_unauthorized Payment facilitator rejected credentials
503 ledger_unavailable Payment ledger unavailable
503 payment_unavailable Payment processing unavailable

Guarantees

  • Settlement finishes before the tool executes. Uncertain settlement fails closed (HTTP 503).
  • Lookups run on our nodes — no third-party data API wrappers.
  • Localhost, IP literals, and metadata hostnames are rejected.
  • Execution is timeout-bounded and concurrency-capped.