Bulk URL Status Checker – Broken Link & Redirect Audit
Pricing
from $1.00 / 1,000 results
Bulk URL Status Checker – Broken Link & Redirect Audit
Bulk HTTP status code checker and broken link checker. Trace redirect chains, find 404s, export to CSV/JSON. No browser, no login.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
2
Bookmarked
583
Total users
20
Monthly active users
5 days ago
Last modified
Categories
Share
Bulk URL Status & Broken-Link Checker — HTTP Status Codes, Redirects & 404 Detection at Scale (No API Key)

Bulk-check thousands of URLs per run for their HTTP status code, full redirect chain, final URL, and response time — all via direct HTTP, with no browser overhead. Instantly flag broken links (404, 500), trace 301/302 redirects, and measure per-URL latency. Fast, cheap, no API key and no login required. The essential tool for SEO audits, link monitoring, content migrations, and QA pipelines.
🏆 Why this URL status checker?
Check thousands of URLs per run · full redirect chains · millisecond response times · 9 fields per URL · export to JSON / CSV / Excel. A developer-friendly bulk HTTP status API alternative for SEO broken-link audits, redirect mapping, link monitoring and CI/CD QA — pure HTTP, no Playwright, no rate-limit headaches.
✨ What this Actor does / Key features
- 🚀 Bulk checking at scale — audit thousands of URLs in a single run; no hard limit on list size.
- 🔢 Full HTTP status detection — captures
200 OK,301/302redirects,403 Forbidden,404 Not Found,410 Gone,429 Too Many Requests,500 Server Error, and everything in between. - 🔗 Redirect chain tracing — records every hop in a redirect sequence (up to 10), not just the final destination.
- 🎯 Final URL reporting — always shows where a URL ultimately resolves via the
finalUrlfield. - ⏱️ Response time measurement — millisecond-precision wall-clock timing per URL.
- 🧯 Network-error capture — DNS failures, timeouts, and refused connections are recorded as
statusCode: 0(never silently dropped), with the raw error instatusMessage. - 🔁 Smart retries — a failure that could be the proxy exit is retried on a fresh exit and finally with a direct connection; definitive answers (domain not found, certificate error) are reported immediately instead of being retried.
- ⚡ No browser, no crawler overhead — pure HTTP via
got-scraping, no request queue; short lists finish in a few seconds and large downloads are never fetched in full. - 🛡️ Proxy support & high concurrency — built-in Apify Proxy integration and up to 100 parallel checks (default 20) to run large audits without getting rate-limited.
- 📤 Export-ready — download every result as JSON, CSV, Excel, or JSONL straight from the Apify Dataset.
🚀 Quick start (3 steps)
- Add your URLs. Paste them into the URLs to Check (
startUrls) field — one per line in the Console, imported from a text list, or passed via the Apify API. - (Optional) Tune concurrency & proxy. Leave
maxConcurrencyat20and Apify Proxy on for most runs; raise concurrency to50–100for very large audits. - Click Start. Within seconds the dataset fills with one row per URL — status code, redirect chain, final URL, and response time — ready to export as JSON / CSV / Excel.
No API key. No login. No scraping code to write.
📥 Input
The Actor takes a list of URLs plus two optional tuning fields. Below are three ready-to-run scenarios, followed by the full input reference.
Example — Check a list of URLs for broken links
Quick pass over a handful of pages to catch 404s and dead links:
{"startUrls": [{ "url": "https://example.com" },{ "url": "https://example.com/contact" },{ "url": "https://example.com/old-page" }],"maxConcurrency": 5,"proxyConfiguration": { "useApifyProxy": false }}
Example — Follow redirects & capture the final URL
Verify that legacy URLs redirect correctly and land on the right destination after a migration:
{"startUrls": [{ "url": "https://oldsite.com/legacy-path" },{ "url": "https://oldsite.com/page-1" },{ "url": "https://oldsite.com/page-2" }],"maxConcurrency": 50,"proxyConfiguration": { "useApifyProxy": true }}
Each result exposes the full redirectChain array and the ultimate finalUrl, so you can confirm every 301/308 resolves to the correct new page.
Example — QA a sitemap's URLs / bulk status audit
Feed an entire site's URL list (e.g. exported from a sitemap crawler) for a complete HTTP-status report at high concurrency:
{"startUrls": [{ "url": "https://mysite.com/page-1" },{ "url": "https://mysite.com/page-2" }],"maxConcurrency": 100,"proxyConfiguration": { "useApifyProxy": true }}
Tip: Pair this Actor with Sitemap to URL Crawler — export its dataset as JSON, then pass the URL list here as
startUrlsfor a fully automated whole-site audit pipeline.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | ✅ Yes | — | List of URLs to check. Uses the standard Apify requestListSources editor — paste directly, import a text list, or pass via API. Each item is { "url": "https://..." }. No hard limit on count. |
maxConcurrency | integer | No | 20 | How many URLs to check in parallel. Min 1, max 100. Higher is faster but needs a larger proxy pool. |
proxyConfiguration | object | No | { "useApifyProxy": true } | Proxy settings for all HTTP requests. Recommended to avoid rate limiting on large or same-domain lists. |
Concurrency guide: 5–10 for small lists / conservative proxy usage · 20 (default) for balanced speed and reliability · 50–100 for maximum-speed large audits (requires a sufficient proxy pool). Response times include any queueing at the proxy when many URLs run at once, so for a timing-accurate audit of a large list use 5–10.
📤 Output
One row per URL is pushed to the Apify Dataset. Here is a trimmed JSON sample using the real output fields:
{"url": "http://oldsite.com/page","statusCode": 200,"statusMessage": "OK","isBroken": false,"isRedirect": true,"redirectChain": ["https://oldsite.com/page","https://newsite.com/page"],"finalUrl": "https://newsite.com/page","responseTime": 580,"checkedAt": "2026-07-06T10:22:06.000Z"}
Status-code cheat sheet
| Code | Message | isBroken | Meaning |
|---|---|---|---|
200 | OK | ❌ No | Page loaded successfully |
301 | Moved Permanently | ❌ No | Permanent redirect (followed) |
302 | Found | ❌ No | Temporary redirect (followed) |
308 | Permanent Redirect | ❌ No | Permanent redirect (followed) |
401 | Unauthorized | ✅ Yes | Authentication required |
403 | Forbidden | ✅ Yes | Access denied |
404 | Not Found | ✅ Yes | Page does not exist |
410 | Gone | ✅ Yes | Page permanently removed |
429 | Too Many Requests | ✅ Yes | Rate limited |
500 | Internal Server Error | ✅ Yes | Server-side error |
503 | Service Unavailable | ✅ Yes | Server temporarily down |
0 | Network Error | ✅ Yes | DNS failure, connection refused, timeout |
More sample records:
Broken link (404):
{"url": "https://apify.com/non-existent-page","statusCode": 404,"statusMessage": "Not Found","isBroken": true,"isRedirect": false,"redirectChain": [],"finalUrl": "https://apify.com/non-existent-page","responseTime": 210,"checkedAt": "2026-07-06T10:22:07.000Z"}
Network error (statusCode: 0):
{"url": "https://this-domain-does-not-exist.io/page","statusCode": 0,"statusMessage": "getaddrinfo ENOTFOUND this-domain-does-not-exist.io","isBroken": true,"isRedirect": false,"redirectChain": [],"finalUrl": null,"responseTime": 5021,"checkedAt": "2026-07-06T10:22:12.000Z"}
💡 Use cases
- SEO broken-link audits — export your full site URL list, run the Actor, filter
isBroken = true, and prioritize fixing 404s and 5xx errors by page importance to protect crawl budget and rankings. - Redirect mapping & optimization — use the
redirectChainfield to spot multi-hop chains (redirectChain.length > 1) and collapse them into single, direct redirects that save latency and crawl budget. - Site-migration validation — confirm every old URL returns
301/308and thatfinalUrlpoints to the correct new page; flag any404where a redirect is missing. - Uptime & QA monitoring — schedule recurring runs to catch newly broken links, then trigger alerts via the Apify API or webhooks; drop it into CI/CD as a pure-HTTP link-health gate.
- Affiliate & backlink checks — verify that inbound/affiliate links still resolve to
200 OK; a404on a linked page means lost link equity. - Competitor & external-link audits — batch-check external references across articles to keep outbound links healthy and current.
- API & webhook URL validation — run all endpoint URLs through the Actor before deploying an integration to confirm they return the expected
2xxrather than surprise 4xx/5xx.
👥 Who uses it
- SEO teams & auditors — identify 404s and redirect chains hurting crawl budget across large sites.
- Web developers & QA engineers — validate links after a migration or CMS change and automate link-health checks in CI/CD.
- Growth & affiliate marketers — monitor that earned backlinks and affiliate URLs still resolve correctly.
- Site-migration engineers — verify redirect maps end-to-end before and after a cutover.
- Content managers & data analysts — monitor internal/external link health across articles and enrich URL datasets with live status metadata.
💰 Pricing
This Actor runs on a pay-per-result model — you're billed per URL checked, with no monthly subscription and no separate API-key cost. Because it uses pure HTTP requests (no browser, no Playwright, no crawler framework), the underlying compute is negligible, so large audits stay cheap. See the live per-result price on the Actor's Apify Store page. New Apify accounts include free monthly platform credits, so you can trial it at no cost.
❓ Frequently Asked Questions
Is this a bulk HTTP status API alternative? Yes. Instead of a hosted SaaS broken-link checker, you get a programmable bulk HTTP status code checker you can call via the Apify API, schedule, and pipe into your own workflow — with full 404, redirect-chain, final-URL, and response-time data per URL.
Do I need an API key or login? No. There's no API key to obtain and no account to log into on the target sites. Just paste your URLs and run. (Apify Proxy is enabled by default and requires no extra setup.)
How do I export results to CSV / JSON?
Run the Actor, then download the Apify Dataset as CSV, JSON, JSONL, or Excel. Filter isBroken = TRUE for all 404/5xx/network errors, or isRedirect = TRUE for redirect chains — the redirectChain field is included in every export. In CSV/Excel, redirectChain is serialized as a joined string; in JSON it stays a proper array.
How many URLs can I check? There's no hard limit — the Actor processes every URL in your list. Measured on the platform (Oct 2026): 3 URLs in ~2.5 s, 49 mixed URLs in ~18 s, and 452 heavy brand homepages in ~4.5 minutes through Apify Proxy (~100 URLs a minute) or ~2 minutes with the proxy switched off. Lighter URLs (APIs, small pages, 404s) go faster. The default run timeout is 10 minutes, so for lists beyond ~1,000 heavy URLs raise the run timeout or split the list into several runs.
Does it follow redirects?
Yes, automatically, up to 10 hops. The redirectChain field records every intermediate URL and finalUrl shows the ultimate destination. isRedirect is true whenever at least one hop occurred.
Can it detect broken links / 404s?
Yes — that's the core job. Every result carries an isBroken boolean (true for 400+ status codes and for statusCode: 0 network errors), so you can filter dead links in one step. A 404 means the server said the page doesn't exist; statusCode: 0 means no response arrived at all (DNS failure, refused connection, or timeout).
Can I check plain HTTP (non-HTTPS) URLs? Yes. Both HTTP and HTTPS URLs are supported. Invalid SSL certificates are recorded as failures rather than silently ignored.
Can I use it for scheduled link monitoring? Yes. Use the Apify Scheduler to trigger daily/weekly/custom runs and connect webhooks or the API to alert you when new broken links appear.
Is it legal? The Actor only sends standard HTTP requests to URLs you supply and reads the response status — the same thing a browser or any link checker does. You are responsible for checking URLs you're authorized to access and for complying with target sites' terms and applicable law. See the Legal section below.
🔗 More website & SEO tools by logiover
| Actor | What it does |
|---|---|
| Broken Link Checker | Crawl a site and find every broken internal/external link. |
| Website SEO Audit Crawler | Full on-page SEO audit across an entire site. |
| Sitemap to URL Crawler | Expand a sitemap into a complete, clean URL list. |
| Bulk URL Unshortener | Resolve shortened links to their true destination in bulk. |
| Bulk HTTP Security Headers | Check security headers (HSTS, CSP, etc.) across many URLs. |
| Bulk SSL Certificate Checker | Verify SSL cert validity and expiry for lists of domains. |
| Website Change Monitor | Detect and track content changes on any page. |
| Bulk WHOIS / RDAP Lookup | Batch domain ownership and registration lookups. |
| Bulk DNS Records Lookup | Resolve A, MX, TXT, and more for many domains at once. |
| Website Link Graph Crawler | Map the internal link graph of an entire website. |
| URL to Markdown | Convert any web page into clean Markdown. |
| Website Tech Stack Detector | Identify the frameworks and tools a site is built with. |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
- Schedule recurring audits (daily, weekly, or any cron interval) from the Apify Console to catch newly broken links automatically.
- API-first — start runs and pull results programmatically via the Apify API. Retrieve only broken URLs with a dataset filter, e.g.
GET /v2/datasets/{datasetId}/items?filter=isBroken%3Dtrue. - Webhooks — fire a notification (Slack, email, your own endpoint) on run completion to alert on new 404s.
- Pipeline it — chain with Sitemap to URL Crawler for a hands-off whole-site health check, or stream JSONL output into your own data warehouse.
⭐ Support & feedback
If you hit unexpected results — wrong status codes, proxy issues, or timeouts — open a support ticket via the Apify Console. Include the affected URLs, your input configuration, and the run ID so the issue can be diagnosed quickly. Feature requests and rating feedback are always welcome and directly shape the roadmap.
⚖️ Legal
This Actor sends standard HTTP requests to URLs that you provide and reports the returned status metadata — no authentication bypass and no content harvesting. Only check URLs you are authorized to access. You are responsible for complying with the target websites' terms of service, robots directives, and all applicable laws and regulations in your jurisdiction. This tool is intended for site owners, SEO/QA teams, and researchers performing legitimate link-health and availability checks.
How much URL Status data can you extract in one run?
This Actor returns one row per item you supply, so the volume is yours to set: give it ten URLs and you get ten rows, give it a thousand and you get a thousand. Measured runs: 3 URLs in ~2.5 s, 49 mixed URLs in ~18 s, 452 heavy homepages in ~4.5 minutes — roughly 100 URLs a minute through the proxy on heavy pages, faster on light ones.
There is no hard ceiling built into this Actor. What bounds a run is the result limit you set, the breadth of the input you give it, and how much URL Status itself publishes. Because billing is per result, a wider run costs proportionally more and a narrow one costs almost nothing — so it is worth starting small and scaling once the output looks right.
URL Status scraping — frequently asked questions
Do I need a URL Status API key, account or login?
No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.
How do I export URL Status data to CSV, Excel, JSON or Google Sheets?
Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.
Can I schedule this URL Status scraper to run daily or hourly?
Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the URLs you care about really do change that fast.
How many URLs can I get, and what does it cost?
See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.
Is scraping URL Status legal?
This Actor collects only information that URL Status publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.
What happens if URL Status blocks the run or changes its layout?
A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".
Can I use this with an AI agent, LangChain or an MCP client?
Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.
📝 Changelog
2026-08-01
- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Fixed the run Output link from
{{links.apiDefaultDatasetUrl}}to{{links.apiDefaultDatasetUrl}}/itemsso the results table opens the dataset items endpoint.
2026-08-01 — Health-check remediation
- August 2026 monthly health-check remediation is in progress; this build contains fixes verified from empty/default, Console-default, targeted live probes, or field-level semantic review.
- Fixed the run Output link from
{{links.apiDefaultDatasetUrl}}to{{links.apiDefaultDatasetUrl}}/itemsso the results table opens the dataset items endpoint. - The final four-input matrix verdict will be appended after post-build cloud revalidation.
2026-07-06
- ✨ README overhaul: richer output sample, ready-to-run example scenarios, website/SEO-tool cross-links, clearer quick-start.
2026-07-01
- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.
2026-06-15
- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.
2026-06-07
- Docs: added coverage for broken link checker API alternative, exporting 404 errors and redirect chains to CSV/JSON, and bulk URL status checks without a browser.
2026-06-05
- 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).
- ⚡ Stability & performance hardening; fresh rebuild.
2026-06-04
- Verified live & refreshed build — reliability/maintenance pass.
2026-05-20
- Maintenance pass: reviewed the input schema and default values for a smooth one-click start, and rebuilt the Actor on the latest base image.
v1.0
- Initial release
- Full HTTP GET status checking with
got-scraping - Automatic redirect chain tracing (up to 10 hops)
- Network error capture as
statusCode: 0 isBrokenandisRedirectboolean flags for easy filtering- Response time measurement per URL
- Automatic retry on transient network failures (2 retries)
- Configurable concurrency (1–100)
- Apify Proxy integration
- JSON, CSV, and Excel export
*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).