Browser Links
Extract links from JavaScript-rendered pages using Browser Rendering
Load a page in a headless browser and return all unique anchor links after JavaScript rendering.
API Endpoint
GET /links
url string (required)
The website URL to inspect (must be http or https)
Example Request
curl "https://your-worker.workers.dev/links?url=https://www.cloudflare.com"Success Response
url string
The normalized URL that was loaded
linkCount number
Number of unique links returned
truncated boolean
Whether results were capped at 500 links
links array
Each item has href and text
{
"url": "https://www.cloudflare.com/",
"linkCount": 42,
"truncated": false,
"links": [{ "href": "https://www.cloudflare.com/plans/", "text": "Plans" }]
}Error Codes
400- Missing or invalidurl(INVALID_URL)502- Navigation or extraction failed (LINKS_ERROR)
Use Cases
- Crawl SPAs and client-rendered navigation
- Build sitemaps from fully rendered pages
- Compare static HTML links vs browser-rendered links
Deployment
Enable Browser Rendering
Browser Rendering must be enabled on your account.
Local Development
cd apps/experiments/browser-links
npm install
npm run devnpm run dev uses wrangler dev --remote so a real browser instance is available.
Cloudflare Features Used
- Workers - Edge compute runtime
- Browser Rendering - Headless Chromium via
@cloudflare/puppeteer