Cloudflare Browser Rendering REST API for crawling websites, extracting content as markdown, taking screenshots, generating PDFs, and scraping structured data. Best for workflows needing web content extraction — converting web pages to markdown, capturing visual snapshots, or extracting structured data from rendered pages. Unlike search APIs (Brave, Exa), Cloudflare renders and extracts from specific URLs rather than searching across the web.
10 endpoints available through Lava’s AI Gateway. See the Cloudflare API docs for full documentation.
Supports both managed (Lava’s API keys) and unmanaged (bring your own credentials) mode.
Endpoints
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/content — $0.00015 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/content' , { body: { "url" : "https://example.com" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fcontent" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/markdown — $0.00015 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/markdown' , { body: { "url" : "https://example.com" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fmarkdown" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/json — $0.00015 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/json' , {
body: {
"url" : "https://example.com" ,
"prompt" : "Extract the main heading and first paragraph"
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fjson" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","prompt":"Extract the main heading and first paragraph"}'
Scrape specific elements from a page
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/scrape — $0.00015 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/scrape' , { body: { "url" : "https://example.com" , "elements" : [{ "selector" : "h1" }]} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fscrape" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","elements":[{"selector":"h1"}]}'
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/links — $0.00015 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/links' , { body: { "url" : "https://example.com" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Flinks" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Take a DOM snapshot of a page
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/snapshot — $0.00025 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/snapshot' , { body: { "url" : "https://example.com" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fsnapshot" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Take screenshot of a page
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/screenshot — $0.00025 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/screenshot' , { body: { "url" : "https://example.com" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fscreenshot" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Generate PDF of a page
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/pdf — $0.00025 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/pdf' , { body: { "url" : "https://example.com" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fpdf" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
POST https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/crawl — $0.001 / request
const data = await lava . gateway ( 'https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/browser-rendering/crawl' , {
body: {
"url" : "https://example.com" ,
"limit" : 3 ,
"formats" : [
"markdown"
]
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.cloudflare.com%2Fclient%2Fv4%2Faccounts%2FACCOUNT_ID%2Fbrowser-rendering%2Fcrawl" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","limit":3,"formats":["markdown"]}'
Check crawl job status
GET https://api.cloudflare.com/client/v4/accounts/{id}/browser-rendering/crawl/{id} — $0.00015 / request
Next Steps
All Providers Browse all supported AI providers
Forward Proxy Learn how to construct proxy URLs and authenticate requests