Skip to main content
GET
Three endpoints, sharing the Broken Link Checker’s crawl engine but never checking HTTP status — this tool only reports each link’s metadata (anchor text, rel, type) and counts by type. Use it to audit outbound links, find every mailto:/tel: on a site, or feed a link graph.
1 credit per call (single-page extract or crawl start) · Typical response time ~200ms for a single page

Extract from a single page

GET /v1/link-extract?url=... extracts every link on one page and returns immediately.

Query parameters

url
string
required
The page to extract links from. https:// is assumed if the scheme is omitted.

Response

data
object
required

Extract from an entire site

For more than one page, start an async crawl and poll it — see Async Jobs & Polling for the full pattern, phase list, and crawl limits (250 pages, 6-minute budget).

Start the crawl

POST /v1/link-extract/crawl, body { "url": "..." }. Returns 202 immediately:

Poll the status

GET /v1/link-extract/crawl/:jobId — free and uncached. Returns the standard job envelope, with progress shaped as phase, message, sitemapFound, sitemapUrlCount, pagesScanned, pagesDiscovered, pagesCap, linksFound. Once status is "done", result is a LinkExtractResult (same shape as the single-page response, capped at 3,000 links instead of 5,000), and each link additionally carries:
Sample of source pages the link was found on, capped at 25.
Total number of pages the link was found on across the whole crawl.

Errors

See the full error reference for the platform-level codes (401, 402, 429) that apply to every endpoint.