Recursively crawl entire websites, discover URLs, and build site hierarchies with smart boundaries.
Map domain hierarchies, index blog posts, and discover deep URLs with configurable maximum depth, page limits, path prefix filters, and loopback security controls.
Because this endpoint utilizes full headless Chromium rendering, dynamic JavaScript and single-page apps (SPAs) are executed completely before conversion:
Chromium initializes, fetches the URL, executes client JavaScript, resolves DOM mutations, and generates output.
Returned instantly from Valkey/Redis cache with header X-Lender-Cache: HIT (15-minute TTL).
curl -X POST https://api.headless-lender.com/api/v1/crawl \
-H "Content-Type: application/json" \
-d '{
"url": "https://news.ycombinator.com",
"maxPages": 10,
"maxDepth": 2,
"sameDomainOnly": true
}'No Authorization header required. Simply send a JSON POST request. Perfect for quick prototypes, small scripts, and low-volume scraping.
Sign up in 10s with no credit card required. Unlocks 1,000 free monthly requests, 600 browser minutes (10 hours), 120 req/min burst limits, and cache-bypass controls.
| Access Mode | Monthly Quota | Cloud Browser Time | Burst Limit | Credit Card | Action |
|---|---|---|---|---|---|
| Public Anonymous | Daily IP Allowance | 5-min trial sandbox | 10 req/min | None | Instant (No Setup) |
| Free Account (Highest Quota) | 1,000 Req / Month | 600 Mins (10 Hours) | 120 req/min | Zero ($0 forever) | Claim Free Key → |
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | required | — | Root seed URL to begin crawling. |
| maxPages | number | optional | 10 | Maximum number of pages to discover and visit. |
| maxDepth | number | optional | 2 | Maximum hyperlink hop depth from seed URL. |
| sameDomainOnly | boolean | optional | true | Stay strictly within the origin domain. |
| allowedPathPrefixes | string[] | optional | — | Only follow links starting with these path prefixes (e.g. ['/docs', '/blog']). |
{
"seedUrl": "https://news.ycombinator.com",
"pagesCrawled": 5,
"pages": [
{
"url": "https://news.ycombinator.com",
"title": "Hacker News",
"depth": 0,
"status": 200
},
{
"url": "https://news.ycombinator.com/newest",
"title": "New Links | Hacker News",
"depth": 1,
"status": 200
},
{
"url": "https://news.ycombinator.com/front",
"title": "Past Front Pages",
"depth": 1,
"status": 200
}
],
"durationMs": 1450
}