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 Reference
GET /links
Prop
Type
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
Limitations
- Requires Browser Rendering enabled on your Cloudflare account
- Local development needs
npx wrangler dev --remoteto reach a real browser - Fixed 1280×800 viewport and navigation timeout
- Single URL per request; no multi-page crawling
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