Redirect Chain Tracer — HTTP Redirect Path & Hop Count API
Pricing
from $3.00 / 1,000 successful lookups
Redirect Chain Tracer — HTTP Redirect Path & Hop Count API
Trace any URL's full HTTP redirect chain, hop by hop, to its final destination, including hop count and final status code. Useful for SEO audits, link migrations, and tracking-link verification. Billed for every URL that returns a response, including a no-redirect result.
Pricing
from $3.00 / 1,000 successful lookups
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Redirect Chain Tracer
Trace any URL's full HTTP redirect chain, hop by hop, to its final destination —
every intermediate URL, the total hop count, and the final HTTP status code. This
uses the same HTTP client Crawlee's crawler runs on, so the whole chain is captured
in a single request; no second fetch or manual Location-header following needed.
Features
- Full hop-by-hop chain. Every URL in the redirect sequence, from the one you submitted to the final destination, in order.
- Hop count & final status.
hopCounttells you how many redirects happened;finalStatusCodeis the HTTP status the final URL actually returned. - "No redirect" is a real answer. A URL that doesn't redirect still returns a
useful result — a one-URL chain with
hopCount: 0. - Deduped chain. Consecutive repeated URLs in the raw redirect data are collapsed so the chain doesn't show the same destination twice.
- Built for bulk. Feed in a list of URLs; concurrency is configurable.
How to use Redirect Chain Tracer — HTTP Redirect Path & Hop Count API
- In the Apify Console. Open the actor page and click Start — the
itemsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~redirect-chain-tracer/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"items":["http://github.com"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"items": ["https://example.com/old-path"],"maxConcurrency": 5}
items is a list of URLs to trace. A bare hostname or path without a scheme is
accepted — https:// is prepended automatically. One dataset row is returned per
item. maxConcurrency controls how many requests run in parallel.
Output
One row per URL, for example:
{"query": "https://example.com/old-path","found": true,"data": {"requestedUrl": "https://example.com/old-path","finalUrl": "https://example.com/new-path","hopCount": 2,"chain": ["https://example.com/old-path","https://example.com/temp-redirect","https://example.com/new-path"],"finalStatusCode": 200},"scrapedAt": "2026-08-20T10:00:00.000Z"}
Note the billing model here is different from most actors in this portfolio: a URL
that returns a response — including one with no redirect at all (hopCount: 0) — is
charged, because "this URL doesn't redirect" is a real, useful answer to the question
being asked. Only a request that fails outright (timeout, DNS failure, connection
error after retries) comes back as "found": false and free.
Use cases
- SEO redirect audits — verify that old URLs 301-redirect to the right new destination after a site migration.
- Link rot monitoring — check a list of outbound links for broken or unexpected redirect chains.
- Affiliate/tracking link verification — confirm a shortened or tracking URL actually lands on the expected final destination.
- Marketing campaign QA — trace UTM-tagged campaign links before a launch to catch misconfigured redirects.
- Site migration validation — bulk-check that every old URL in a sitemap redirects correctly to its new equivalent.
Pricing
$5 per 1,000 results, plus a $0.005 start fee. Misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~redirect-chain-tracer/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"items":["http://github.com"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~redirect-chain-tracer/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"items":["http://github.com"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~redirect-chain-tracer/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"items":["{{value}}"]}, mapping the row's value into the items array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Redirect Chain Tracer | Apify" — the agent will find and run this actor.
FAQ
Does a URL with no redirect cost anything?
Yes — unlike most actors in this portfolio, "no redirect" is a valid, charged
result (hopCount: 0), because you got exactly the answer you asked for.
What counts as a free miss, then?
Only a request that fails outright after retries — a timeout, DNS failure, or
connection error — comes back "found": false and isn't charged.
Does this follow meta-refresh or JavaScript redirects?
No — it follows standard HTTP redirects (3xx responses with a Location header)
via the underlying HTTP client, not client-side redirects rendered by JavaScript or
<meta http-equiv="refresh"> tags.
What if I submit a bare domain without https://?
It's normalized automatically — example.com becomes https://example.com before
the request is made.
Can duplicate hops show up in the chain? No — consecutive repeated URLs (which can happen when the underlying redirect data already includes the final URL) are deduplicated before being returned.
Can I trace many URLs at once?
Yes — pass a list of URLs and adjust maxConcurrency to control how many run in
parallel.