Bulk HTTP Status Code & Redirect Chain Checker
Pricing
from $1.00 / 1,000 urls
Bulk HTTP Status Code & Redirect Chain Checker
Check HTTP status codes and full redirect chains of up to 100,000 URLs. Finds 404s, 5xx errors, redirect chains and loops, 302 instead of 301, missing HTTPS redirects, and verifies relaunch redirect maps. No proxies, pay per URL.
Pricing
from $1.00 / 1,000 urls
Rating
0.0
(0)
Developer
Tim Tonat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
What does Bulk HTTP Status Code & Redirect Chain Checker do?
This Actor checks the HTTP status code and the full redirect chain of up to 100,000 URLs in one run. For every URL you get the first status code, every redirect hop, the final URL and its status code, plus issue codes for the problems that hurt SEO and users.
It also verifies redirect maps after a website relaunch: paste lines like old URL -> new URL and see at a glance which redirects land on the wrong page.
No proxies and no browser, so runs are fast and cheap.
Why use this HTTP status checker?
- Find broken URLs (404, 410, 500) in lists from Google Search Console, sitemaps, backlink tools or old exports
- Check every redirect hop: redirect chains waste crawl budget and slow down users
- Catch 302 instead of 301: temporary redirects don't pass rankings reliably
- Detect redirect loops and URLs with too many redirects
- Make sure http:// redirects to https://
- Website relaunch / migration: check hundreds of old URLs against their expected new targets
- Monitor link lists on a schedule and export to Google Sheets, Excel or CSV
- Pay per URL: URLs that can't be reached at all are free
What does it check?
| Issue code | Meaning |
|---|---|
INVALID_REDIRECT | A redirect status (301, 302, …) without a valid Location header |
CLIENT_ERROR | Final status is 4xx (404 not found, 410 gone, 403 forbidden, …) |
SERVER_ERROR | Final status is 5xx |
REDIRECT_CHAIN | More than one redirect before the final page |
REDIRECT_LOOP | The chain leads back to a URL it already visited |
TOO_MANY_REDIRECTS | More than 10 redirects |
TEMPORARY_REDIRECT | A 302, 303 or 307 redirect in the chain instead of 301 or 308 |
HTTP_TO_HTTPS_MISSING | An http:// URL does not end on https:// |
WRONG_TARGET | Redirect map only: the final URL is not the expected target |
UNREACHABLE | No HTTP response at all (DNS error, timeout, connection refused). Not charged |
INVALID_URL | The input line is not a valid URL. Not charged |
What data does it return?
| Field | Description |
|---|---|
url | Checked URL |
statusCode | Status code of the first response |
finalUrl, finalStatusCode | Where the chain ends |
redirectCount | Number of redirects followed |
redirectChain | Every hop with url, statusCode and location |
responseTimeMs | Total time for the whole chain |
contentType | Content type of the final response |
expectedUrl, matchesExpected | Redirect map only |
issues | Issue codes, see above |
error | Network error, if no response was received |
A Summary (key-value store record SUMMARY) counts all URLs by final status code and by issue.
How to check status codes and redirects in bulk
- Click Try for free.
- Paste your URLs into URLs, one per line. Or paste
old -> newlines into Redirect map. - Click Start.
- Sort the Overview table by status or issues, or download it as CSV or Excel.
How much does it cost?
This Actor uses pay per event: a fixed price per checked URL, and platform usage is included. The current price is shown in the Pricing tab. URLs that can't be reached at all and invalid input lines are not charged.
Input
See the Input tab for all options.
{"urls": ["http://example.com", "https://example.com/old-page"],"redirectMap": ["https://example.com/old-shop -> https://example.com/shop/"],"method": "HEAD","timeoutSecs": 15,"concurrency": 10}
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
{"url": "http://example.com/old-shop","statusCode": 301,"finalUrl": "https://example.com/shop/","finalStatusCode": 200,"redirectCount": 2,"redirectChain": [{ "url": "http://example.com/old-shop", "statusCode": 301, "location": "https://example.com/old-shop" },{ "url": "https://example.com/old-shop", "statusCode": 302, "location": "https://example.com/shop/" },{ "url": "https://example.com/shop/", "statusCode": 200, "location": null }],"responseTimeMs": 412,"contentType": "text/html; charset=utf-8","expectedUrl": "https://example.com/shop/","matchesExpected": true,"issues": ["REDIRECT_CHAIN", "TEMPORARY_REDIRECT"],"error": null}
Related Actors
Don't have a URL list yet? The SEO Site Audit crawls a whole website and finds broken internal links on its own.
- SEO Site Audit & Broken Link Checker: crawl a whole website and find on-page SEO issues and broken pages
- PageSpeed Insights & Core Web Vitals Bulk Audit: Lighthouse scores and real-user Core Web Vitals for many URLs
- Structured Data, Schema.org & Open Graph Extractor: extract JSON-LD, schema.org types and Open Graph tags from many pages
- PDF to Text with OCR: extract text from PDFs in bulk, scanned pages included
FAQ
Why HEAD requests?
HEAD asks only for the headers, so checks are fast and light on the server. Some servers answer HEAD with a wrong error code, so every error response is double-checked with a GET request. Choose GET if you want only GET requests.
Does it run JavaScript redirects?
No. It follows HTTP redirects (301, 302, 303, 307, 308), like search engines do on the first pass. Redirects done with JavaScript or <meta http-equiv="refresh"> are not followed.
Some sites return 403 for every URL
Some firewalls (for example Cloudflare bot protection) block automated requests. The 403 is then what bots see, not what browsers see. Try another User agent in the advanced options.
Will it overload a server?
It uses 10 parallel requests by default. If all URLs are on one small server, lower Parallel requests.
Something does not work
Please open an issue in the Issues tab with the URL and the run ID. You can also start the Actor programmatically from the API tab.