Web extraction with browser options
From Litescrape, through Joshu Data Bodega.
Part of Open web & SEO data extract advanced.
- Price
- $0.000165 per call$0.17 per 1,000 calls
No calls measured in the last 30 days.
Prices include the router's 10% markup and are paid from the usage wallet. Checked on November 11, 2026.
Inputs
urlstring, requiredPublic HTTP(S) URL to capture, 1-8,192 characters. Include http:// or https://; bare domains are rejected. The host must be public, on port 80 or 443, without embedded credentials.
basestring: initial, final, optionalResolve relative links against the requested URL (initial, default) or the final URL after redirects (final).
enginestring: auto, browser, curl, optionalauto (default; lightweight HTTP first, a browser when needed), browser, or curl (no JavaScript).
localestring, optionalBrowser locale as a language tag, 2-64 characters. Defaults to the browser's own.
no_gfmstring, optionaltrue, false or table: disable GitHub-flavored Markdown, or only its tables.
presetstring: reader, index, research, agent, spider, optionalOption preset. Fills only the options the request leaves unset.
refererstring, optionalHTTP(S) URL sent as the Referer.
timeoutnumber, optionalOptional budget for the entire request in seconds, measured from gateway receipt until the response is ready to send. Includes admission, queueing and settlement. Must be greater than 0 and at most 90. On expiry, the call is not billed and returns 503 request_deadline_exceeded with retryable=true and a request ID. Omit to retain the standard server deadline.
markdownstring, optionalTurndown options Jina exposes as X-Md-* headers.
viewportstring, optionalPOST only. Browser viewport; width and height are required. Default: 1280 x 1280.
max_tokensinteger, optionalInteger 500-10,000,000. Trim content to this many tokens.
robots_txtstring, optionalUser agent, 1-256 characters, to check against the site's robots.txt; disallowed URLs are rejected.
user_agentstring, optionalUser-Agent for the page request, 1-1,024 characters without control characters. Defaults to the browser's own.
set_cookiesstring, optionalPOST only. 1-100 cookies in Set-Cookie syntax (name=value; Path=/; Domain=...), one line each, up to 4,096 characters.
with_iframestring, optionaltrue, false or quoted: include iframe content before extraction.
page_timeoutinteger, optionalSeconds from 1 through 180 for page loading and browser operations. Cannot extend the total request budget set by timeout.
respond_withstring, optionalOutput format: content (default; main content as Markdown, or the whole page when extraction keeps too little), markdown (whole page as Markdown), html, text, frontmatter (content plus front matter), or a '+' combination such as markdown+frontmatter. For screenshots use /api/web/screenshot.
retain_linksstring: none, all, text, gpt-oss, optionalLinks to keep: all (default), text (link text only), none, or gpt-oss (citation format with a links summary).
retain_mediastring: none, text, link, image, html, optionalHow video, audio and embedded video appear: none, text, link (default), image or html.
token_budgetinteger, optionalInteger 1-10,000,000. Reject the page when its token count exceeds the budget.
retain_imagesstring: none, all, alt, optionalImages to keep: all (default), alt (alt text only) or none.
remove_overlayboolean, optionalRemove modal and cookie-banner overlays from the page.
respond_timingstring: html, visible-content, mutation-idle, resource-idle, media-idle, network-idle, optionalPage readiness condition to reach before responding.
remove_selectorstring, optionalCSS selector removed before extraction, 1-2,048 characters; POST also accepts a list of 1-16 selectors.
target_selectorstring, optionalCSS selector to extract, 1-2,048 characters; POST also accepts a list of 1-16 selectors. Implies waiting for the selector. Match-all selectors are rejected.
with_shadow_domboolean, optionalInclude open shadow DOM content before extraction.
detach_invisiblesboolean, optionalDrop display:none elements from the page.
keep_img_data_urlboolean, optionalKeep inline data: images in Markdown.
markdown_chunkingstring: true, h1, h2, h3, h4, h5, structured, s1, s2, s3, s4, s5, optionaltrue, h1-h5, structured or s1-s5: split the Markdown and return chunks.
wait_for_selectorstring, optionalCSS selector to wait for after navigation, 1-2,048 characters. POST also accepts a list of 1-16 selectors.
assert_status_codeinteger, optionalExpected origin HTTP status, 100-599. A different status is rejected; otherwise a rendered error page is a successful capture.
inject_page_scriptstring, optionalPOST only. 1-8 scripts (source, or a URL to a script), up to 8,192 characters each, run in the main frame.
with_links_summarystring, optionaltrue, false or all: add a links list to the response.
inject_frame_scriptstring, optionalPOST only. 1-8 scripts (source, or a URL to a script), up to 8,192 characters each, run in every frame.
with_images_summaryboolean, optionalAdd an images list to the response.
Call it
curl https://hello.joshu.me/api/router/call \
-H "Authorization: Bearer $JOSHU_ROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "litescrape.web.fetch.post",
"params": {
"url": "https://example.com/",
"timeout": 60,
"viewport": {
"width": 1280,
"height": 800
},
"respond_with": "markdown"
}
}'