Bulk URL Status Code and Redirect Chain Checker avatar

Bulk URL Status Code and Redirect Chain Checker

Pricing

$0.80 / 1,000 url checkeds

Go to Apify Store
Bulk URL Status Code and Redirect Chain Checker

Bulk URL Status Code and Redirect Chain Checker

Check thousands of URLs for HTTP status codes, broken links (404, 410, 5xx) and redirect chains. Returns every hop (301, 302, 307, 308), the final URL, response time and key headers. For SEO migrations and link audits. $0.80 per 1,000 URLs.

Pricing

$0.80 / 1,000 url checkeds

Rating

0.0

(0)

Developer

Hay Equipos

Hay Equipos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

Paste a list of URLs and get back, for each one, the HTTP status code, whether it is broken, the full redirect chain hop by hop (301, 302, 307, 308), the final URL, the response time and the headers that matter for SEO. Built for site migrations, broken link audits, backlink checks, affiliate link checks and cleaning URL lists before you feed them to other tools.

Price: $0.80 per 1,000 URLs. URLs that give no HTTP answer at all (the domain does not exist, the connection is refused or times out) are reported but free.

What you get for each URL

FieldMeaning
statusCodeThe first answer, for example 301
finalStatusCodeThe answer at the end of the redirect chain, for example 200 or 404
isBrokenTrue for a final 4xx or 5xx, a redirect loop, too many hops, or no answer
okTrue for a final 2xx
finalUrlWhere the URL really lands
redirectCount, redirectChainEvery hop with its URL, status code, method and Location header
redirectsToHttps, changedDomainDid an http URL move to https, did the redirect leave the original host
redirectLoop, tooManyRedirectsRedirect problems, flagged
responseTimeMsTotal time for the whole chain
contentType, contentLength, lastModified, server, xRobotsTag, cacheControl, hstsHeaders from the final answer
errorFor URLs with no HTTP answer: ENOTFOUND, ECONNREFUSED, Timed out and similar

Input

{
"urls": [
"http://apify.com",
"https://httpbin.org/status/404",
"https://httpbin.org/redirect/2"
],
"followRedirects": true,
"maxRedirects": 10
}

You can also paste a column of URLs into urlsText. Duplicates are removed. Addresses without a scheme get https:// added.

Output example

{
"url": "http://apify.com",
"ok": true,
"isBroken": false,
"statusCode": 301,
"finalStatusCode": 200,
"finalUrl": "https://apify.com/",
"redirectCount": 1,
"redirectChain": [
{ "url": "http://apify.com/", "statusCode": 301, "method": "HEAD", "location": "https://apify.com/" },
{ "url": "https://apify.com/", "statusCode": 200, "method": "HEAD", "location": null }
],
"redirectsToHttps": true,
"changedDomain": false,
"contentType": "text/html; charset=utf-8",
"responseTimeMs": 1956
}

How it checks

  • A HEAD request first, which does not download the page. If the server refuses HEAD (many answer 403, 404 or 405 to HEAD but serve the page normally), the URL is checked again with a GET that reads at most 64 KB. You can switch this off.
  • Redirects are followed by hand so every hop is recorded, with loop detection.
  • Many sites are checked in parallel, while requests to the same site are spaced out (3 per second by default, adjustable from 1 to 10).
  • 429 and 5xx answers are retried with backoff before they are reported.
  • The actor identifies itself honestly as ApifyLinkChecker and respects robots.txt by default, including rules written for Apify crawlers. URLs a site closes to automated tools come back as free skipped rows. Turn this off only for sites you own or may check.

Pricing

Pay per event: $0.0008 per URL checked ($0.80 per 1,000). A URL is charged when a server answered it with any HTTP status, including 404 and 500, because that answer is the result you asked for. No start fee and no platform usage on top. Invalid URLs, URLs with no HTTP answer, and URLs skipped for robots.txt are free.

Limits

  • No JavaScript. Redirects done by JavaScript or by a meta refresh tag are not followed; the page's own status code is reported.
  • Some sites answer automated requests from cloud servers with 403 or a challenge page. That status is reported as it was received. The actor does not try to get around such blocks.
  • Up to 50,000 URLs per run. Speed depends on the sites: a list spread across many hosts runs at hundreds of URLs a minute; a list on one host runs at your per site limit.

FAQ

Is a 404 charged? Yes, when the server returned it, because finding 404s is usually the point. A URL whose domain does not exist is free.

Does it crawl my site to find links? No. It checks exactly the URLs you give it. To get every URL of a site first, run a sitemap extractor and pass its output here.

Can I use it after a site migration? Yes. Give it the old URLs and check that finalStatusCode is 200, redirectCount is 1 and finalUrl is the new page you expect.

Can an AI agent use it? Yes. One array of URLs in, one row per URL out, the same fields every time.