Broken Links Checker — Links, Assets, Redirects and Their Pages avatar

Broken Links Checker — Links, Assets, Redirects and Their Pages

Pricing

from $0.40 / 1,000 link checkeds

Go to Apify Store
Broken Links Checker — Links, Assets, Redirects and Their Pages

Broken Links Checker — Links, Assets, Redirects and Their Pages

Broken Links Checker — Crawl Pages, Assets & Redirect Chains: `link-checked` previous/checked $0.0005; `page-crawled` previous/checked $0.001; active Apify record sets fees; usage included; start extra; failed results uncharged.

Pricing

from $0.40 / 1,000 link checkeds

Rating

0.0

(0)

Developer

Logan Parker

Logan Parker

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

Broken links checker for a website: crawl same-host pages from a start URL or sitemap and check links and assets once, with HTTP errors, redirect chains and referring pages. AI agents can call and pay through Apify MCP.

The active Apify pricing record determines your bill; for the previous/checked schedules, link-checked previous/checked $0.0005; page-crawled previous/checked $0.001; usage is included and failed results are free.

Example result

Example record for the minimal input under How to use it, as this Actor returned it on 2026-10-18 in a run of its production image; the record is kept unchanged with the release.

{
"type": "summary",
"url": "https://docs.apify.com/platform/actors/publishing/monetize",
"ok": true,
"summary": {
"pagesCrawled": 1,
"linksChecked": 53,
"broken": 0,
"redirected": 1
}
}

The page has changed since 2026-10-18, so a run on it today returns slightly different counts. Failed checks are never charged.

How to use it

Start a run in Apify Console, by API or from an agent with an input like this one — it is the input Apify runs every day to test this Actor:

{"startUrl": "https://docs.apify.com/platform/actors/publishing/monetize", "maxPages": 1, "checkExternal": false}

Start with the minimal JSON example above, then adjust the fields in the table below. Read the Example result and Output fields sections for the returned record, Errors for failure codes, and Events and prices for result events and the separate platform start.

FieldTypeMeaning
startUrlstringExactly one startUrl or sitemapUrl is required.
sitemapUrlstringAlternative sitemap entry point; same-host pages only.
maxPagesintegerMaximum successfully parsed same-host HTML pages.
checkExternalbooleanCheck external links but never crawl external pages.
reportRedirectsbooleanReturn successful redirected link findings, in addition to failures.

Events and prices

The active Apify pricing record determines your bill; each schedule below is conditional on that exact record being active. A pending record does not authorise its charges. Before submission, while pending, and after activation, use the actual active record, not the requested calendar, to determine the bill.

Observed effective start: 2026-10-21T04:30:14.903Z, confirmed by the pricing record; this stage requests no pricing mutation.

Previous schedule — only if that record is active

apify-actor-start: FREE $0.00005, BRONZE $0.00005, SILVER $0.00005, GOLD $0.00005, PLATINUM $0.00005, DIAMOND $0.00005; link-checked: FREE $0.0005, BRONZE $0.0005, SILVER $0.00045, GOLD $0.0004, PLATINUM $0.0004, DIAMOND $0.0004; page-crawled: FREE $0.001, BRONZE $0.001, SILVER $0.0009, GOLD $0.0008, PLATINUM $0.0008, DIAMOND $0.0008.

Checked schedule — only if that record is active

EventTitleCharged whenFREE / BRONZESILVERGOLD / PLATINUM / DIAMOND
link-checkedLink checkedOne successful unique link or asset check, backed by a readable successful summary.$0.0005$0.00045$0.0004
page-crawledPage crawledOne successfully fetched and parsed site page, backed by a readable successful summary.$0.001$0.0009$0.0008

Platform event in the checked schedule: apify-actor-start: FREE $0.00005, BRONZE $0.00005, SILVER $0.00005, GOLD $0.00005, PLATINUM $0.00005, DIAMOND $0.00005.

The checked start at default memory is (1 event, $0.00005, at the default 1,024 MB).

Worked event subtotal, checked schedule at FREE: if 10 link-checked events are charged, 10 × $0.0005 = $0.005 for that event alone. All other charged events and the platform start event add their listed fees; this subtotal is not a run total. The configured maximum-charge floor is $0.05. Platform usage is included; failed results are uncharged.

Call it from an agent

Through Apify's MCP server (https://mcp.apify.com) use call-actor:

{
"actor": "hermeskd/broken-links",
"input": {
"startUrl": "https://docs.apify.com/platform/actors/publishing/monetize",
"maxPages": 1,
"checkExternal": false
},
"callOptions": {
"maxTotalChargeUsd": 0.05,
"timeout": 3600
},
"waitSecs": 30
}

Then call get-dataset-items with the returned defaultDatasetId. Dedicated tool URL: https://mcp.apify.com?tools=hermeskd/broken-links

Output fields

FieldMeaning
typeLink finding or final crawl summary.
urlChecked URL, or crawl entry point on summary/error records.
statusFinal HTTP status; null when no response.
okFalse for broken/error records. These are never charged.
redirectChainRedirect destination URLs in observed order.
anchorTextFirst anchor text observed, capped at 500 characters.
foundOnAt most ten referring page URLs.
summaryAll attempted unique checks and successful parsed page counts; linksChecked is not billable count.
errorFailure, always uncharged.

Limits and run time

One startUrl or sitemapUrl; maxPages 1–1,000. Same-host HTML crawling only; external links may be checked but are not crawled. At most 100,000 unique checks, 10 MiB per fetched page/GET fallback, ten foundOn pages per finding. HEAD falls back to GET for 405 or 501; an ordinary bodyless successful HEAD is sufficient. Fragments and duplicate targets share one check. All HTTP requests are at most two per host per second. linksChecked counts attempts and is not the billable count. Broken findings, policy refusals, transport failures and errors are never charged. A failed/timeout or unreadable summary backs no charges, including previously completed checks.

The default run timeout is 3600 seconds. Typical run time on Apify, measured by its deploy of 2026-10-21: the minimal input under How to use it took 30–32 seconds a run at the default 1,024 MB (three runs, peak memory 62 MiB). The same input also ran and passed the pricing floor at 512 MB and 4,096 MB (the deploy's memory probes).

Errors

CodeMeaning
login_requiredThe page requires authentication or is a sign-in wall; no authentication was attempted.
robots_disallowedrobots.txt forbids fetching the URL; no request was made to it.
blocked_hostThe host is on the deny-list or resolves to a private or local address; no request was made.
download_failedThe request or connection failed within its bounded deadline.
http_errorThe source answered an unsuccessful HTTP status.
unsupported_content_typeAn HTML audit/crawl received a non-HTML representation.
too_largeA documented response, expansion or traversal cap was exceeded.
source_schema_changedA source or tool response no longer has the verified protocol shape.
timeoutThe input did not finish within the run's time budget.
invalid_inputThe run input passed the input schema but cannot be used; the message names the field.
internal_errorUnexpected failure; the message carries the error class.
charge_limit_reachedThe run reached its maximum total charge; this input was not processed.

No failure record is charged. A run fails only when all input outcomes are Actor-side failures; caller errors and a mixture of caller/Actor failures do not fail the run.

Sources and terms

Only process content you have the right to process. URL fetches obey HermesBot robots-group selection, the shared deny-list, public-address checks on connections and redirects, honest identity, deadlines and rate limits. No caller credentials, cookies, CAPTCHA solving, residential proxies or evasion. Only same-host HTML pages are crawled. External links may be checked when requested, and are never crawled. Sign-in walls are refused without authentication. Broken and error findings are free; successful checks and parsed pages are charged only after a successful readable summary. A failed or unreadable summary backs no charges. The 2026-10-18 GitHub-hosted production-container crawl produced the real records shown above, through the guarded SDK path. Responsive-image srcset candidates, picture/source srcset and video poster assets now use the same unique checks; every failed check remains free.

Not affiliated

This Actor is not affiliated with Google, Apify, IANA, Verisign or other named protocol/source providers. Third-party names describe compatibility and source material.

Changelog

  • 1.0 (2026-10-26) — store listing rewritten for the people and agents searching for this job: title, description, search-engine title and description, categories, and the README in the order a searcher reads it (what it does, a real result, how to use it, prices, the agent call).
  • 1.0 (2026-10-21) — first public release on Apify Store, after the deploy's typical calls, memory probes, benchmarks and pricing floor passed on the platform.
  • 1.0 (2026-10-19) — repairs from an independent review: DNS privacy, malformed publisher URLs, empty sitemap failures, responsive assets and schema prefill, as applicable to this Actor.
  • 1.0 (2026-10-18) — the production image, smoke input, three example tasks and benchmarks passed on GitHub-hosted Linux.
  • 1.0 (2026-10-17) — first implementation.