Auditing documentation after a restructure
Internal links break silently when pages move. Checking them catches the ones no reader will report and every reader will hit.
Checks whether a URL is reachable from your browser and reports how long the request took.
Security & Privacy: The reachability test is performed by YAS.SH infrastructure through an SSRF-hardened outbound engine. Private, loopback, and metadata network endpoints are strictly blocked.
Checks whether a URL is reachable from your browser and reports how long the request took.
https://example.com
✓ Reachable — request completed in 320 ms
The check runs from your browser, not from YAS.
Reachable means the target answered the request from your network.
Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.
curl -X POST "https://yas.sh/api/v1/tools/link-checker" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'const res = await fetch("https://yas.sh/api/v1/tools/link-checker", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"url": "https://example.com"
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/link-checker", json={"url":"https://example.com"})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Target http/https URL |
{ "url": "https://example.com", "finalUrl": "https://example.com", "reachable": true, "healthy": true, "status": 200, "statusText": "OK", "responseTimeMs": 120, "redirectCount": 0 }Check URL reachability, HTTP status code, response time, and redirect chain.
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).Each URL is requested and its final status recorded after following redirects. The useful classification is not simply 2xx versus everything else: a 301 means the link works but should be updated to its destination, a 403 often means the server blocks automated clients rather than that the page is gone, a 429 means you are being rate-limited, and only 404 and 410 reliably indicate a genuinely dead target.
Bot mitigation makes external link checking inherently noisy. Cloudflare, Akamai and similar services return 403 or a challenge page to any client without a browser fingerprint, so a link that a user opens without difficulty is reported as broken. This is why automated link reports need human triage rather than automated remediation.
Internal links break silently when pages move. Checking them catches the ones no reader will report and every reader will hit.
External links decay steadily — a five-year-old post typically has several dead references, which readers read as neglect.
Checking the new site's internal links while the old one still serves traffic is the last cheap opportunity to catch mistakes.
Internal links pointing at URLs that now redirect add latency to every page and are trivial to update at the source.
What this tool deliberately does not do, and where it will disagree with other implementations.