Check a list of URLs in bulk: final HTTP status, the full redirect chain, redirect loops, likely soft-404s, response time and content type. No crawling, no login, no API key. Polite: robots.txt-aware, about 1 request per second per host. Clean JSON for SEO migrations and AI agents.
Connections are pinned to the addresses that passed the private-address check. Each host name is checked again when the connection opens, including redirect hops and robots.txt, so a name that switches to a private address after the first lookup (DNS rebinding) is never connected to. Private IP addresses written directly in a URL are refused too. TLS still verifies the host name.
Changed
If a site's robots.txt host resolves to a private, loopback, link-local or reserved address, the item is now a free blocked-private (not blocked-by-robots), not a robots.txt result.
0.1.0 (unpublished local build)
Added
Bulk URL check: final HTTP status, the full redirect chain (each hop permanent or temporary, with timing), redirect loops, final URL, likely soft-404 (heuristic), response time and content type for a list of URLs. No crawling.
Input normalisation (bare domains get https://, #fragments dropped) and de-duplication; invalid entries get a free invalid-url item.
HEAD-then-GET (default) or GET method, maxRedirects, timeoutSecs and maxUrls.
Polite by default: robots.txt respected (RFC 9309), about 1 request per second per host, Crawl-delay and Retry-After honoured (up to 30 seconds), a host paused after three 429s in a row, private addresses never requested.
OUTPUT_SUMMARY with per-category counts and charged events.
Fixed (before first publish)
bulk-url-status-checker-1: the host name is resolved before robots.txt is fetched (as in AI-Readiness Audit 0.1.3). A host that doesn't exist (including a redirect target) is now dns-error (charged, as documented), not blocked-by-robots. Temporary DNS failures (EAI_AGAIN) stay free timeout. The lookup is cached and shared with the private-address check.
Pricing
Pay per event: url-checked per unique URL with a definitive result, $0.0008 per event. Timeouts, rate-limited, blocked-by-site, robots-blocked, private-address and invalid URLs are free.