litescrape_web_fetch $0.001 per call

Fetch rendered web content. Fetch a public HTTP(S) page and return LLM-ready content (Litescrape · Open web & SEO data)

For AI agents: call litescrape_web_fetch
POST https://toll402.dev/v1/p/litescrape.web.fetch
{
 "assert_status_code": 200,
 "locale": "en-US",
 "page_timeout": 30,
 "referer": "https://example.com",
 "remove_selector": "nav, footer",
 "respond_timing": "network-idle",
 "respond_with": "markdown",
 "retain_images": "alt",
 "robots_txt": "MyBot",
 "target_selector": "article",
 "url": "https://example.com",
 "wait_for_selector": "main"
}
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": {
  "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
   ]
  },
  "base": {
   "type": "string",
   "description": "Resolve relative links against the requested URL (initial, default) or the final URL after redirects (final).",
   "enum": [
    "initial",
    "final"
   ]
  },
  "detach_invisibles": {
   "type": "boolean",
   "description": "Drop display:none elements from the page."
  },
  "engine": {
   "type": "string",
   "description": "auto (default; lightweight HTTP first, a browser when needed), browser, or curl (no JavaScript).",
   "enum": [
    "auto",
    "browser",
    "curl"
   ]
  },
  "keep_img_data_url": {
   "type": "boolean",
   "description": "Keep inline data: images in Markdown."
  },
  "locale": {
   "type": "string",
   "description": "Browser locale as a language tag, 2-64 characters. Defaults to the browser's own.",
   "examples": [
    "en-US"
   ]
  },
  "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."
  },
  "no_gfm": {
   "type": "string",
   "description": "true, false or table: disable GitHub-flavored Markdown, or only its tables."
  },
  "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
   ]
  },
  "preset": {
   "type": "string",
   "description": "Option preset. Fills only the options the request leaves unset.",
   "enum": [
    "reader",
    "index",
    "research",
    "agent",
    "spider"
   ]
  },
  "referer": {
   "type": "string",
   "description": "HTTP(S) URL sent as the Referer.",
   "examples": [
    "https://example.com"
   ]
  },
  "remove_overlay": {
   "type": "boolean",
   "description": "Remove modal and cookie-banner overlays from the page."
  },
  "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"
   ]
  },
  "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"
   ]
  },
  "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"
   ]
  },
  "robots_txt": {
   "type": "string",
   "description": "User agent, 1-256 characters, to check against the site's robots.txt; disallowed URLs are rejected.",
   "examples": [
    "MyBot"
   ]
  },
  "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"
   ]
  },
  "token_budget": {
   "type": "integer",
   "description": "Integer 1-10,000,000. Reject the page when its token count exceeds the budget."
  },
  "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"
   ]
  },
  "user_agent": {
   "type": "string",
   "description": "User-Agent for the page request, 1-1,024 characters without control characters. Defaults to the browser's own."
  },
  "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"
   ]
  },
  "with_iframe": {
   "type": "string",
   "description": "true, false or quoted: include iframe content before extraction."
  },
  "with_images_summary": {
   "type": "boolean",
   "description": "Add an images list to the response."
  },
  "with_links_summary": {
   "type": "string",
   "description": "true, false or all: add a links list to the response."
  },
  "with_shadow_dom": {
   "type": "boolean",
   "description": "Include open shadow DOM content before extraction."
  },
  "timeout": {
   "type": "number",
   "description": "Optional 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 "
  }
 },
 "additionalProperties": true,
 "required": [
  "url"
 ]
}

MCP

{"mcpServers":{"toll402":{"command":"npx","args":["-y","toll402-mcp"],"env":{"TOLL402_WALLET_KEY":"0x..."}}}}

All tools · OpenAPI