{"uid":"cap_LdI3b7sqUDVQW8JyfVXBp","slug":"x402-deployer-x402-deployer-workers-dev-4817ffdb","name":"URL Expander / Redirect Chain Tracer","description":"URL expander / redirect chain tracer / link-shortener resolver. Returns every redirect hop with status, location, type, response time.","url":"https://x402-deployer.x402-deployer.workers.dev/expand-url","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"required":["url"],"properties":{"url":{"type":"string","description":"Starting URL (typically a shortlink). Must be http(s)."},"max_hops":{"type":"number","description":"Maximum redirect hops to follow. 1-20. Default 10."},"user_agent":{"type":"string","description":"Optional User-Agent header to send (some shorteners gate by UA). Default is a generic browser UA."}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"hops":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"status":{"type":"integer"},"location":{"type":"string"},"duration_ms":{"type":"integer"},"content_type":{"type":"string"},"redirect_type":{"type":"string"}}}},"error":{"type":"null"},"final_url":{"type":"string"},"hop_count":{"type":"integer"},"truncated":{"type":"boolean"},"initial_url":{"type":"string"},"final_status":{"type":"integer"},"total_duration_ms":{"type":"integer"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.020000","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.020000/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_nw8hMtgXw1EluMqcAWn4l","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Traces every redirect hop in a URL chain, returning status codes, intermediate locations, redirect types, and response times for each hop.","exampleAgentPrompt":"Can you trace the full redirect chain for this link — https://bit.ly/3xAbCdE — and show me every hop it takes, the status code at each step, and where it ultimately ends up?","exampleUseCases":null,"resultDescription":"A list of every redirect hop in the chain, each with its HTTP status code (e.g. 301, 302), the Location header URL, the type of redirect, and the response time for that hop, plus the final destination URL.","failureModes":["Invalid or malformed URL returns an error","URL that returns no redirects returns a single-hop result with 200","Network timeouts on slow or unreachable hosts","Redirect loops may cause the tracer to bail out after a max-hop limit","Non-HTTP schemes (ftp://, mailto:) may not be supported"],"whenToPreferThis":"Use this endpoint when you need to programmatically resolve shortened URLs, audit redirect chains for security or analytics purposes, or verify that a link ultimately leads to an expected destination — without exposing the user's browser to the intermediate hops.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:45:57.484Z","isFirstParty":false}