Http Status Scanner
Pricing
$4.99/month + usage
Http Status Scanner
HTTP status scanner that checks URL status codes and redirect chains in bulk. Built for SEO teams and developers who need to catch broken links and verify redirects at scale.
Pricing
$4.99/month + usage
Rating
0.0
(0)
Developer

ZeroBreak
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
HTTP Status Scanner: Check URL status codes and redirect chains in bulk
HTTP Status Scanner checks the HTTP status code, redirect chain, and response time for any list of URLs. Drop in a batch of URLs and get a dataset showing what each one actually returns: a 200, a redirect chain ending somewhere unexpected, a 404, or a server error. Good before site launches, after migrations, and during SEO audits when you need to know what your URLs are doing without opening each one by hand.
Use cases
- SEO auditing: find pages returning 404 errors or unexpected redirects before they show up as crawl issues
- Site migration: verify that old URLs redirect correctly to new destinations after a domain change or URL restructure
- Pre-launch QA: confirm that every published URL resolves before a site goes live
- Broken link detection: scan URLs from a sitemap or crawl export to catch dead links in bulk
- Redirect chain cleanup: identify chains longer than two hops that add latency and split link equity across hops
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | - | A single URL to check. Combined with the urls list if both are provided. |
urls | array | - | List of URLs to check, one per line. |
followRedirects | boolean | true | Follow redirects and record each hop. Disable to capture only the first response. |
maxRedirects | integer | 10 | Maximum redirects to follow per URL before reporting an error. |
maxUrls | integer | 100 | Maximum URLs to process per run. Hard cap at 1000. |
requestTimeoutSecs | integer | 30 | Per-request timeout in seconds. |
timeoutSecs | integer | 300 | Overall actor timeout in seconds. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional. |
Example input
{"urls": ["https://apify.com","https://apify.com/store","http://apify.com/blog"],"followRedirects": true,"maxRedirects": 10,"maxUrls": 100,"requestTimeoutSecs": 30,"proxyConfiguration": { "useApifyProxy": true }}
What data does this actor return?
The actor stores one record per URL in the Apify dataset. Each record contains:
{"url": "http://apify.com/blog","finalUrl": "https://apify.com/blog","statusCode": 200,"statusText": "OK","redirectCount": 1,"redirectChain": ["https://apify.com/blog"],"responseTimeMs": 312,"contentType": "text/html; charset=utf-8","checkedAt": "2025-03-04T10:22:45.123456+00:00","error": null}
| Field | Type | Description |
|---|---|---|
url | string | Original URL submitted for checking. |
finalUrl | string | Final URL after all redirects. Matches the original if no redirects occurred. |
statusCode | integer | HTTP status code (e.g. 200, 301, 404, 500). Null on network error. |
statusText | string | HTTP reason phrase (e.g. OK, Not Found). Null on error. |
redirectCount | integer | Number of redirects followed. Zero means the URL responded directly. |
redirectChain | array | Ordered list of intermediate URLs visited during redirects. |
responseTimeMs | integer | Total response time in milliseconds, including all redirect hops. |
contentType | string | Content-Type header from the final response. |
checkedAt | string | ISO 8601 timestamp of when the URL was checked. |
error | string | Error message if the request failed. Null on success. |
How it works
- The actor reads the
urlandurlsinputs, deduplicates them, and addshttps://to any URL missing a scheme. - For each URL, it sends an HTTP GET request with a realistic browser User-Agent and follows up to
maxRedirectsredirects. - It records the status code, final destination, every redirect hop, the response time, and the Content-Type header.
- If a request times out, exceeds the redirect limit, or fails for any other reason, it records an error instead of stopping.
- Results are pushed to the Apify dataset as they complete, one record per URL.
Integrations
Connect HTTP Status Scanner with other apps using Apify integrations. Schedule it to run on a cron, pipe results into Google Sheets via Make or Zapier, or trigger downstream workflows with webhooks whenever new results are ready.
FAQ
Can this actor check HTTP status codes without following redirects?
Yes. Set followRedirects to false and the actor returns the first response status code without following any 3xx redirects.
How many URLs can it check per run?
Up to 1000 URLs per run (set via maxUrls). For larger lists, run the actor multiple times or split the input across runs.
What counts as an error in the output?
Timeouts, connection failures, SSL errors, and too-many-redirects all produce a record with a non-null error field. The actor never stops on a single bad URL.
Does it work with HTTP and HTTPS URLs?
Yes. Both protocols are supported. URLs without a scheme get https:// prepended automatically.
Can I use this to monitor URLs on a schedule? Yes. Save your URL list as the actor input, then set up a schedule in the Apify console to run it daily or weekly.
If you manage a large site, this handles the kind of URL checking that otherwise eats an afternoon of clicking through browser tabs.