Broken Link Checker [Only $1💰] | Bulk URL Status | Monitor avatar

Broken Link Checker [Only $1💰] | Bulk URL Status | Monitor

Pricing

from $0.90 / 1,000 url checkeds

Go to Apify Store
Broken Link Checker [Only $1💰] | Bulk URL Status | Monitor

Broken Link Checker [Only $1💰] | Bulk URL Status | Monitor

Bulk-check thousands of URLs for broken links, redirects, response time and SSL expiry. Monitor mode alerts you when a link breaks. Pay per event.

Pricing

from $0.90 / 1,000 url checkeds

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share

Broken Link Checker & URL Health Monitor

Bulk-check up to 10,000 URLs per run for broken links, redirect chains, response time and SSL expiry — then switch to Monitor mode to get alerted the moment a link breaks. A pay-per-event Apify Actor built for SEO audits, link checking and uptime monitoring without writing code.

Paste a list of URLs (or bare domains) and get one structured row per URL with its final HTTP status, health classification (ok, broken_4xx, broken_5xx, timeout, refused, dns_error, ssl_error, too_many_redirects), the full redirect chain, response time in milliseconds and — optionally — TLS certificate expiry. In Monitor mode the Actor remembers the previous state of every URL (in a persistent named key-value store) and reports only what changed, with an optional JSON webhook to Slack, n8n, Zapier or your own endpoint. Runs through the Apify platform, so you get API access, scheduling, integrations and run history for free.

  • SEO & broken-link audits — find every 404/410 across a sitemap or exported link list and fix what hurts rankings.
  • Uptime & health monitoring — schedule it hourly/daily; Monitor mode records state between runs and alerts only on changes.
  • Migration & redesign QA — verify redirect chains after a site migration before search engines re-crawl.
  • SSL certificate watchdog — includeSsl reports validTo and days-left per HTTPS host so certificates never silently expire.
  • Affordable at scale — pay-per-event pricing ($0.001 per definitive check, $0.002 per change alert); rate-limited checks are free.
  1. Open the Actor's Input tab.
  2. Paste your URLs (one per line, up to 10,000). Bare domains are upgraded to https:// automatically; duplicates are removed.
  3. Choose Mode: Check for a one-shot audit, Monitor to diff against the previous run (set a Monitor name and schedule it).
  4. Optionally enable Follow redirects, SSL certificates and a Webhook URL.
  5. Press Start and wait. Results appear in the Dataset (Overview / Broken views) and can be exported as JSON, CSV, Excel or HTML.

Input

FieldTypeRequiredDefaultNotes
urlsstring[]✅—Up to 10,000 URLs. Accepts array or newline/comma-separated string. Scheme auto-added as https://.
modeenum❌checkcheck (one-shot audit) or monitor (diff + alerts).
monitorNamestring❌defaultNamespaces persisted state so multiple monitors don't collide.
followRedirectsboolean❌trueFollow 3xx to the final destination and record the chain.
maxRedirectsinteger❌10Max hops (0–20) before too_many_redirects.
timeoutSecsinteger❌20Per-request timeout (1–60 s). Slow URLs → timeout.
includeSslboolean❌falseRead TLS cert expiry per unique HTTPS host.
webhookUrlstring❌—Monitor mode: JSON POST per health change.
maxConcurrencyinteger❌10Parallel checks (1–50).
delayMsinteger❌0Pause after each check (0–5000 ms) for fragile targets.

Output

Each run pushes one object per input URL to the default dataset:

{
"url": "https://example.com/pricing",
"finalUrl": "https://example.com/pricing",
"status": 200,
"ok": true,
"classification": "ok",
"redirectCount": 1,
"redirectChain": [{ "url": "http://example.com/pricing", "status": 301 }],
"responseMs": 143,
"sslValidTo": "2026-12-01T12:00:00.000Z",
"sslDaysLeft": 70,
"previousClassification": null,
"changed": null,
"checkedAt": "2026-09-23T10:15:30.123Z"
}

In Monitor mode, changed rows add previousClassification and changed: true. Invalid inputs produce a row with classification: "invalid" (never charged). Download the dataset in JSON, HTML, CSV or Excel.

Data table

FieldTypeMeaning
urlstringInput URL as checked
finalUrlstring/nullURL after redirects
statusinteger/nullFinal HTTP status
okboolean/nullHealthy (2xx/3xx)
classificationenumHealth verdict (see above)
redirectCount / redirectChaininteger / arrayRedirect hops and full chain
responseMsinteger/nullRound-trip time
sslValidTo / sslDaysLeftstring / integerTLS expiry (with includeSsl)
previousClassification / changedstring / booleanMonitor-mode diff
checkedAtstringISO timestamp of the check

Pricing / Cost estimation

Pay-per-event: $0.001 per url-checked (definitive verdicts only — rate-limited checks and invalid inputs are not charged) and $0.002 per alert-triggered (Monitor mode change alerts). Checking 1,000 URLs ≈ $1 in verdicts plus a small platform fee per run. Example: a 500-URL daily monitor with a handful of changes costs about $0.50/day.

Tips / Advanced options

  • Monitor scheduling: use an Apify Schedule (@daily / cron) with the same monitorName — state persists in a named key-value store across runs.
  • Fragile targets: raise delayMs and lower maxConcurrency if a server returns rate_limited (429). 429 rows are informational and free.
  • Redirect QA after migration: keep followRedirects: true and read redirectChain to spot chains longer than 2–3 hops.
  • Large lists: the hard cap is 10,000 URLs per run — split bigger crawls into batches for predictable pricing.

For AI Agents & LLM Apps

Purpose: returns per-URL health verdicts (HTTP status, classification, redirect chain, response time, optional SSL expiry) for a list of URLs.

Minimal input:

{ "urls": ["https://example.com"] }

Monitor mode variant:

{
"urls": ["https://example.com"],
"mode": "monitor",
"monitorName": "my-site",
"webhookUrl": "https://hooks.slack.com/..."
}

Output fields: url, finalUrl, status, ok, classification, redirectCount, redirectChain, responseMs, sslValidTo, sslDaysLeft, previousClassification, changed, error, checkedAt.

Behaviors an agent should know:

  • urls also accepts a single newline/comma-separated string; scheme-less entries get https:// prepended; exact duplicates are removed.
  • Only definitive verdicts are billed — rate_limited, invalid and skipped rows are free and never overwrite Monitor state.
  • mode: "monitor" diffs against the previous run stored under monitorName; first run has no baseline (previousClassification: null).
  • includeSsl performs one TLS handshake per unique host, not per URL.
  • Hard cap: 10,000 URLs per run; exceeding it exits without checking.
  • Billing: pay-per-event (url-checked $0.001, alert-triggered $0.002) plus a small per-run platform fee.

FAQ

Why use this Actor instead of a website uptime SaaS?

Traditional uptime tools charge per monitor per month; this Actor is pay-per-event — you pay only for URLs actually checked ($0.001 each) and only for definitive verdicts. It also returns the full redirect chain and raw classifications instead of a boolean "up/down", which suits SEO audits and migration QA. For SLA-grade incident paging with phone calls, a dedicated incident platform is still the right tool.

What are alternatives to this Actor?

Paste them into urls (array or one-per-line string), leave mode: "check" and run. The Actor checks with configurable concurrency and returns one row per URL. Lists larger than 10,000 URLs should be split into batches.

Set mode: "monitor", pick a stable monitorName, optionally add webhookUrl, and create an Apify Schedule (e.g. @daily). Each run compares current state to the previous run and emits changed rows plus webhook alerts only when health changes.

Does the Actor follow redirects?

Yes — by default it follows up to 10 hops manually and records the full chain (redirectChain, redirectCount). Set followRedirects: false to inspect the raw first response (e.g. to audit 301/302 behavior).

Does it check SSL certificate expiry?

Enable includeSsl and the Actor reads each unique HTTPS host's certificate: sslValidTo (ISO date) and sslDaysLeft. This is one TLS handshake per host, so it stays cheap on large lists.

What does "rate limited" mean in the results?

rate_limited means the target answered HTTP 429. It is not treated as a broken link, is never charged, and never overwrites Monitor state — re-run those URLs later or lower maxConcurrency / raise delayMs.

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Apify, Google, Slack, Zapier or any website you point it at. It performs read-only HTTP(S) GET requests against URLs you supply — it does not bypass logins, paywalls or CAPTCHAs, and it does not crawl pages unless you submit them directly. You are responsible for ensuring you have permission to request those URLs and for complying with their Terms of Service, robots.txt and applicable data-protection law when you use the results.

Support

Found a bug or need a custom field? Open an issue in the Issues tab or start a conversation via the Start a conversation button on this page.

SEO Keywords

bulk url checker, broken link checker, link checker tool, bulk link checker, check url status, http status checker, website uptime monitor, broken link checker api, bulk http status check, redirect checker, redirect chain checker, url health check, link monitoring, website broken links, ssl expiry checker, certificate expiry monitor, check dead links, bulk website checker, url monitor, website downtime monitor, scrapebox link checker alternative, screaming frog broken links alternative, bulk url health checker api, monitor website for broken links, link checker for seo