ACTOR · /v1/actors/check-links

Broken-Link Check.

POST a page URL or a flat list. Get per-link status, three buckets (ok / broken / excluded), and an optional cloud retry that rescues the classic false positives: LinkedIn HTTP 999, Cloudflare anti-bot, paywalled news, JS-deobfuscated URLs.

Two input modes

Mode 1 — extract from a page. Pass {url} and crawlcrawl pulls every outbound link and checks it. Cloudflare email-protection URLs are filtered out automatically (they decode to mailto: in the browser and never resolve as real HTTP URLs — a common false-positive in every link checker).

Mode 2 — check a known list. Pass {urls: [...]} (up to 200) and we check each one in parallel. Useful for migration verification, redirect-chain audits, or outbound-link compliance checks.

curl -X POST https://api.crawlcrawl.com/v1/actors/check-links \
  -H "Authorization: Bearer crk_..." \
  -d '{
    "url": "https://your-client.com/blog/post",
    "cloud_retry": true,
    "cloud_retry_mode": "proxy"
  }'

# → 200
{
  "actor": "check-links",
  "data": {
    "total": 78, "ok": 76, "broken": 1, "excluded": 1,
    "cloud_retried": 1, "cloud_recovered": 0,
    "cloud_cost_usd": 0.0000052,
    "items": [
      { "url": "...", "status_code": 200, "status": "ok" },
      { "url": "https://in.linkedin.com/...", "status_code": null,
        "status": "broken", "error": "Rejected status code" }
    ]
  }
}

Cloud retry — pick speed/cost

When cloud_retry: true, broken links are re-fetched through one of two cloud backends. Pick based on the failure mode you're trying to fix.

ModeCost per retrySpeed (78-link page)Best for
cloud_retry_mode: "chrome" (default) ~$0.0017 ~60 s Cloudflare JS challenges, SPA-only URLs
cloud_retry_mode: "proxy" ~$0.00005 (30× cheaper) ~5 s (12× faster) Datacenter-IP blocks, UA filtering

Neither path cracks LinkedIn's HTTP 999 — that's deep browser-fingerprinting beyond IP rotation. Proxy mode fails fast (~1.8 s) and bills almost nothing for the unrecoverable cases.

What you get back

When to use it

Content audits. Run after every site migration to catch broken outbound links before they become customer-visible. Combine with /v1/crawls + store_html: false for a cheap full-site sweep.

Editorial QA. A pre-publish CI step that fails the build on any broken with cloud_recovered: false catches dead-link debt before it ships.

Outbound-link compliance. Some industries require all referenced URLs to be currently resolvable. Schedule a daily check-links pass on the registry pages and pipe the broken list to the compliance team.

Pricing

One page-credit per call (covers up to 200 links). Cloud-retry calls are billed separately at the rates above. Capped at 50 retries per request to prevent runaway billing. See full pricing →

Where it fits

Ship link audits without false-positive noise.

$42/mo for 100,000 link audits. Cloud retry recovers what every other checker misses.

Get an API key — free