Scrapers / Developer & File Tools

Broken Link Checker
hipersoft/broken-link-checker
Check a list of URLs or every link on a page for broken links, dead pages and redirect chains. Reports HTTP status, redirect count, final URL, content type and errors. Great for SEO audits and link maintenance. One row per URL as JSON, CSV or Excel.
Total users
2Monthly users
1Total runs
40Per link checked
$0.0005Last rebuilt
Oct 26, 2026Overview
Find broken links, dead pages and messy redirects fast with the Broken Link Checker. Feed it a list of URLs or a page to crawl for links, and get a clean report of every link's HTTP status, redirect chain, final URL, content type and errors β exported as JSON, CSV or Excel.
Built for SEO audits, website maintenance, content migrations, link-building QA and pre-launch checks, this tool catches 404s, dead domains and redirect loops before your visitors (or Google) do.
What it does
- π Check any list of URLs β paste the links you want tested.
- πΈοΈ Or scan a whole page β give it a page URL and it extracts and checks every link on it (
hrefandsrc). - π¦ Clear status for each link β HTTP status code, healthy vs broken, and the exact error for failures (404, 500, DNS failure, timeout, connection refusedβ¦).
- βͺοΈ Redirect insight β how many redirects a link goes through and the final destination URL.
- π― Filters β check external links only, or output only the broken ones.
- β‘ Fast & parallel β adjustable concurrency with a per-URL timeout so slow servers never stall the run.
- π€ Export anywhere β JSON, CSV or Excel, or straight into Google Sheets or a dashboard.
Example output
{
"url": "https://example.com/old-page",
"status": 404,
"ok": false,
"broken": true,
"finalUrl": "https://example.com/old-page",
"redirected": false,
"redirectCount": 0,
"contentType": "text/html; charset=utf-8",
"error": "HTTP 404",
"checkedAt": "2026-09-21T02:00:00.000Z"
}
How to use it
- Add a list of URLs, and/or enter a Page URL to pull links from.
- Optionally turn on External links only or Output broken links only.
- Tune Concurrency and the per-URL timeout if needed.
- Run, and download the report as JSON, CSV or Excel.
Input fields
| Field | Description |
|---|---|
| URLs to check | A list of URLs to test directly. |
| Page URL | Optional page to fetch and check every link on. |
| External links only | When scanning a page, keep only off-domain links. |
| Output broken links only | Skip healthy links in the results. |
| Concurrency | How many URLs to check at once (1β20). |
| Per-URL timeout (seconds) | How long to wait before marking a URL as a timeout. |
| Max URLs | Maximum number of URLs to check (0 = no limit). |
Output fields
url, status, ok, broken, finalUrl, redirected, redirectCount, contentType, error, checkedAt.
Popular use cases
- SEO audits β find 404s and broken outbound links hurting your rankings.
- Website maintenance β schedule regular checks and catch links that rot over time.
- Content migrations β verify redirects resolve correctly after a site move.
- Link-building QA β confirm placed links are live and pointing where they should.
- Pre-launch checks β sweep a staging site for dead links before going live.
- Documentation & newsletters β make sure every referenced link still works.
FAQ
Do I need an account or key? No. Paste your URLs or a page URL and run.
How does it decide a link is broken? Any link that returns a 4xx/5xx status, fails to connect, hits a DNS error, or times out is marked broken. Links returning 2xx/3xx are healthy, with redirects reported separately.
Does it follow redirects? Yes β it follows redirect chains, reports how many hops there were, and records the final URL.
Can I check just the links on one page? Yes β enter a Page URL and it extracts every link on that page and checks them all. Use "External links only" to focus on outbound links.
Can I export to Excel or Google Sheets? Yes β results download as JSON, CSV or Excel and integrate with Sheets and dashboards.
Catch broken links, dead pages and redirect problems across your site or any list of URLs β clean, fast and exportable.
Input
| Field | Type | Description |
|---|---|---|
urlsURLs to check | array | A list of URLs to test. You can use this alone, together with a page URL below, or leave it empty and just supply a page URL. |
pageUrlPage URL (extract & check its links) | string | Optional. Fetch this page and check every link found on it (href/src). Combine with the list above if you like. |
externalOnlyExternal links only | boolean | When extracting links from a page, keep only links that point to a different domain. Default: false |
onlyBrokenOutput broken links only | boolean | Only add broken/dead links (and errors) to the results, skipping the healthy ones. Default: false |
concurrencyConcurrency | integer | How many URLs to check in parallel (1β20). Default: 8 |
requestTimeoutSecsPer-URL timeout (seconds) | integer | How long to wait for each URL before marking it as a timeout. Default: 20 |
maxItemsMax URLs | integer | Maximum number of URLs to check (0 = no limit). Default: 1000 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~broken-link-checker/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://example.com"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/broken-link-checker").call(run_input={
"urls": [
"https://example.com"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/broken-link-checker').call({
"urls": [
"https://example.com"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Link checked Charged for each URL checked and returned. | $0.0005 | $0.0003 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs Β· 103 users Β· $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs Β· 22 users Β· $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs Β· 8 users Β· $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs Β· 3 users Β· $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs Β· 13 users Β· $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy β reliable, no captcha, no setup.
121 runs Β· 8 users Β· $0.001 / result scrapedSend the site and the fields. We build it and you get it first.