litescrape_web_fetch_post $0.001 per call
Web extraction with browser options. Fetch a public HTTP(S) page and return LLM-ready content (Litescrape · Open web & SEO data)
For AI agents: call litescrape_web_fetch_post
POST https://toll402.dev/v1/p/litescrape.web.fetch.post
{
"url": "https://example.com",
"respond_with": "markdown",
"viewport": {
"width": 1280,
"height": 800
}
}Answers 402 with x402 payment requirements; pay with any x402 client (@x402/fetch, x402 for Python, toll402-client, toll402-mcp) or send a prepaid-credits key as x-toll402-key (https://toll402.dev/credits). Paid per call via x402 (USDC on Base) or with a prepaid-credits key (x-toll402-key, card at /credits); charged only on success. Start at /llms.txt or connect the MCP server:
npx -y toll402-mcp · remote https://toll402.dev/mcp.Input schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public 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.",
"examples": [
"https://example.com"
]
},
"remove_overlay": {
"type": "boolean",
"description": "Remove modal and cookie-banner overlays from the page."
},
"detach_invisibles": {
"type": "boolean",
"description": "Drop display:none elements from the page."
},
"wait_for_selector": {
"type": "string",
"description": "CSS selector to wait for after navigation, 1-2,048 characters. POST also accepts a list of 1-16 selectors.",
"examples": [
"main"
]
},
"set_cookies": {
"type": "array",
"description": "POST only. 1-100 cookies in Set-Cookie syntax (name=value; Path=/; Domain=...), one line each, up to 4,096 characters."
},
"user_agent": {
"type": "string",
"description": "User-Agent for the page request, 1-1,024 characters without control characters. Defaults to the browser's own."
},
"inject_page_script": {
"type": "array",
"description": "POST only. 1-8 scripts (source, or a URL to a script), up to 8,192 characters each, run in the main frame."
},
"inject_frame_script": {
"type": "array",
"description": "POST only. 1-8 scripts (source, or a URL to a script), up to 8,192 characters each, run in every frame."
},
"page_timeout": {
"type": "integer",
"description": "Seconds from 1 through 180 for page loading and browser operations. Cannot extend the total request budget set by timeout.",
"examples": [
30
]
},
"locale": {
"type": "string",
"description": "Browser locale as a language tag, 2-64 characters. Defaults to the browser's own.",
"examples": [
"en-US"
]
},
"referer": {
"type": "string",
"description": "HTTP(S) URL sent as the Referer.",
"examples": [
"https://example.com"
]
},
"assert_status_code": {
"type": "integer",
"description": "Expected origin HTTP status, 100-599. A different status is rejected; otherwise a rendered error page is a successful capture.",
"examples": [
200
]
},
"viewport": {
"type": "object",
"description": "POST only. Browser viewport; width and height are required. Default: 1280 x 1280."
},
"robots_txt": {
"type": "string",
"description": "User agent, 1-256 characters, to check against the site's robots.txt; disallowed URLs are rejected.",
"examples": [
"MyBot"
]
},
"respond_timing": {
"type": "string",
"description": "Page readiness condition to reach before responding.",
"enum": [
"html",
"visible-content",
"mutation-idle",
"resource-idle",
"media-idle",
"network-idle"
],
"examples": [
"network-idle"
]
},
"respond_with": {
"type": "string",
"description": "Output 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+fr",
"examples": [
"markdown"
]
},
"with_links_summary": {
"type": "string",
"description": "true, false or all: add a links list to the response."
},
"with_images_summary": {
"type": "boolean",
"description": "Add an images list to the response."
},
"retain_images": {
"type": "string",
"description": "Images to keep: all (default), alt (alt text only) or none.",
"enum": [
"none",
"all",
"alt"
],
"examples": [
"alt"
]
},
"retain_links": {
"type": "string",
"description": "Links to keep: all (default), text (link text only), none, or gpt-oss (citation format with a links summary).",
"enum": [
"none",
"all",
"text",
"gpt-oss"
]
},
"retain_media": {
"type": "string",
"description": "How video, audio and embedded video appear: none, text, link (default), image or html.",
"enum": [
"none",
"text",
"link",
"image",
"html"
]
},
"preset": {
"type": "string",
"description": "Option preset. Fills only the options the request leaves unset.",
"enum": [
"reader",
"index",
"research",
"agent",
"spider"
]
},
"no_gfm": {
"type": "string",
"description": "true, false or table: disable GitHub-flavored Markdown, or only its tables."
},
"target_selector": {
"type": "string",
"description": "CSS 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.",
"examples": [
"article"
]
},
"remove_selector": {
"type": "string",
"description": "CSS selector removed before extraction, 1-2,048 characters; POST also accepts a list of 1-16 selectors.",
"examples": [
"nav, footer"
]
},
"keep_img_data_url": {
"type": "boolean",
"description": "Keep inline data: images in Markdown."
},
"with_iframe": {
"type": "string",
"description": "true, false or quoted: include iframe content before extraction."
},
"with_shadow_dom": {
"type": "boolean",
"description": "Include open shadow DOM content before extraction."
},
"engine": {
"type": "string",
"description": "auto (default; lightweight HTTP first, a browser when needed), browser, or curl (no JavaScript).",
"enum": [
"auto",
"browser",
"curl"
]
},
"token_budget": {
"type": "integer",
"description": "Integer 1-10,000,000. Reject the page when its token count exceeds the budget."
},
"markdown": {
"type": "object",
"description": "Turndown options Jina exposes as X-Md-* headers."
},
"markdown_chunking": {
"type": "string",
"description": "true, h1-h5, structured or s1-s5: split the Markdown and return chunks.",
"enum": [
"true",
"h1",
"h2",
"h3",
"h4",
"h5",
"structured",
"s1",
"s2",
"s3",
"s4",
"s5"
]
},
"max_tokens": {
"type": "integer",
"description": "Integer 500-10,000,000. Trim content to this many tokens."
},
"base": {
"type": "string",
"description": "Resolve relative links against the requested URL (initial, default) or the final URL after redirects (final).",
"enum": [
"initial",
"final"
]
}
},
"additionalProperties": true,
"required": [
"url"
]
}
MCP
{"mcpServers":{"toll402":{"command":"npx","args":["-y","toll402-mcp"],"env":{"TOLL402_WALLET_KEY":"0x..."}}}}