{"openapi":"3.1.0","info":{"title":"ClawFetch","version":"0.2.0","summary":"Web intelligence API for AI agents, paid per call in USDC over x402.","description":"ClawFetch turns the open web into agent-ready data: stealth page fetching, headless JS rendering, structured extraction from 17 specialized sites (Twitter/X, GitHub, CoinGecko, Hacker News, YouTube, Wikipedia, npm, PyPI, crates.io, Product Hunt, IMDb, Amazon, Crunchbase, SEC EDGAR, Zillow, Redfin, news), multi-source research, and live WHOIS domain screening. No API keys, no accounts, no subscription — pay per request in USDC on Base via the x402 protocol, from $0.001 a call.","contact":{"name":"ClawFetch","url":"https://clawfetch.ai"},"x-guidance":"ClawFetch is pay-per-call. There are no API keys, accounts, or subscriptions.\nCall any endpoint with no auth: you get HTTP 402 plus a PAYMENT-REQUIRED header\ncontaining a base64 x402 v2 challenge. Sign it (EIP-3009, gasless — you need USDC\non Base, not ETH) and retry with a PAYMENT-SIGNATURE header. Settlement runs\nthrough the Coinbase CDP facilitator.\n\nChoosing an endpoint:\n- POST /fetch ($0.001) — default choice for reading a page. Fastest and cheapest.\n- POST /render ($0.005) — only when /fetch returns an empty shell or a bot wall\n  (SPAs, JS-gated content). Costs 5x and is slower; do not use it by default.\n- POST /extract ($0.008) — when you want typed fields rather than prose, and the URL\n  is on a supported site. Call GET /extractors first if unsure; it is cheaper than\n  paying for a failed extraction.\n- POST /research ($0.02) — one call replaces search-then-scrape-N-pages. Cheaper than\n  running /fetch across five results yourself.\n- POST /domains/check and /domains/suggest ($0.003) — live WHOIS, not a cached list.\n- POST /parse ($0.005) — office documents (docx, pptx, xlsx, pdf, epub, and more) to\n  clean markdown. Send a document URL or base64 bytes. Deterministic, no OCR.\n\nResponses are already cleaned for LLM consumption: boilerplate, ads, and navigation\nare stripped, and output is markdown. Do not pre-process with your own readability pass."},"servers":[{"url":"https://api.clawfetch.ai","description":"Production"}],"x-discovery":{"protocols":["x402"],"network":"eip155:8453","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","wellKnown":"https://api.clawfetch.ai/.well-known/x402"},"tags":[{"name":"scraping","description":"Fetch and render web pages as clean markdown"},{"name":"extraction","description":"Structured typed JSON from known sites"},{"name":"research","description":"Multi-source web research"},{"name":"domains","description":"Live WHOIS availability and naming research"},{"name":"meta","description":"Free discovery and health endpoints"}],"paths":{"/extractors":{"get":{"operationId":"extractors_get","summary":"Discovery endpoint listing all 17 available structured-data extractors and the domains each one supports, so an agent can decide whether /extract can handle a given URL before paying for it","description":"Discovery endpoint listing all 17 available structured-data extractors and the domains each one supports, so an agent can decide whether /extract can handle a given URL before paying for it.","tags":["extraction"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"1000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number","description":"Number of available extractors"},"extractors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}}},"required":["name","domains"]}}},"required":["extractors"]},"example":{"extractors":[{"name":"Twitter","domains":["twitter.com"]}]}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"domain","in":"query","required":false,"description":"Optional hostname filter, e.g. \"github.com\". Returns only the extractor that handles that domain, so an agent can check coverage before paying for /extract.","schema":{"type":"string"},"example":"github.com"}]}},"/fetch":{"post":{"operationId":"fetch_post","summary":"Web scraping / URL fetch","description":"Web scraping / URL fetch: retrieve any web page and return clean, LLM-ready markdown text. Strips boilerplate, ads, and navigation. Stealth HTTP client bypasses common bot blocks. Cheapest way to read a webpage.","tags":["scraping"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"1000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"Page content as clean, LLM-ready markdown"},"url":{"type":"string","description":"Final URL after redirects"}},"required":["content"]},"example":{"content":"<html>...</html>"}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"type":"string","description":"URL to fetch"},"headers":{"type":"object"}},"required":["url"]},"example":{"type":"http","bodyType":"json","body":{"url":"https://example.com"}}}}}}},"/render":{"post":{"operationId":"render_post","summary":"Headless browser rendering for JavaScript-heavy pages and SPAs","description":"Headless browser rendering for JavaScript-heavy pages and SPAs: full stealth Chromium render, then clean markdown plus title, meta description, and canonical URL. Use when a plain fetch returns an empty shell or a bot wall.","tags":["scraping"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"5000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Page title"},"description":{"type":"string","description":"Meta description"},"text":{"type":"string","description":"Cleaned markdown content of the rendered page"},"url":{"type":"string","description":"Canonical URL"}},"required":["text"]},"example":{"title":"Example","description":"Meta description","text":"Page content"}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"type":"string","description":"URL to render"}},"required":["url"]},"example":{"type":"http","bodyType":"json","body":{"url":"https://example.com"}}}}}}},"/extract":{"post":{"operationId":"extract_post","summary":"Structured data extraction returning typed JSON from 17 specialized site extractors","description":"Structured data extraction returning typed JSON from 17 specialized site extractors: Twitter/X, GitHub, CoinGecko, Hacker News, YouTube, Wikipedia, npm, PyPI, crates.io, Product Hunt, IMDb, Amazon, Crunchbase, SEC EDGAR, Zillow, Redfin, and news articles. Auto-detects the right extractor from the URL — no scraping selectors required.","tags":["extraction"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"8000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.008"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","description":"Structured data extracted by the matched extractor. Fields vary by extractor (e.g. Twitter returns username/followers, GitHub returns stars/forks/language). Call GET /extractors to see the field list each extractor returns.","properties":{"type":{"type":"string","description":"Name of the extractor that handled the URL"}},"additionalProperties":true},"example":{"type":"Twitter","username":"OpenAI","followers":123456}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"type":"string","description":"URL to extract from"},"type":{"type":"string","description":"Optional extractor override. Auto-detected from the URL when omitted. One of: twitter, coingecko, github, news, npm, pypi, crates, hackernews, youtube, wikipedia, producthunt, imdb, amazon, crunchbase, sec, zillow, redfin"}},"required":["url"]},"example":{"type":"http","bodyType":"json","body":{"url":"https://github.com/coinbase/x402","type":"github"}}}}}}},"/research":{"post":{"operationId":"research_post","summary":"Multi-source web research and company/topic intelligence","description":"Multi-source web research and company/topic intelligence: runs a live web search, visits the top sources, and returns ranked results with titles, URLs, and content snippets. One call replaces a search-then-scrape pipeline for deep research agents.","tags":["research"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"20000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.02"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"The original research query"},"sources":{"type":"number","description":"Number of sources visited"},"results":{"type":"array","description":"Ranked research results","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"text":{"type":"string","description":"Content snippet from the source"}},"required":["title","url","text"]}}},"required":["query","sources","results"]},"example":{"query":"latest AI developments","sources":3,"results":[{"title":"...","url":"...","text":"..."}]}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"type":"string","description":"Research query or topic to investigate across multiple web sources"},"maxResults":{"type":"number","description":"Number of sources to gather (default 5, max 10)"}},"required":["query"]},"example":{"type":"http","bodyType":"json","body":{"query":"latest AI developments","maxResults":5}}}}}}},"/domains/check":{"post":{"operationId":"domains_check_post","summary":"Bulk domain name availability lookup via live WHOIS","description":"Bulk domain name availability lookup via live WHOIS: check many domains across many TLDs in one call and get a per-domain available true/false. Useful for naming, brand screening, and squatting checks.","tags":["domains"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"3000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","description":"Map of domain name → availability result.","additionalProperties":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"]}},"example":{"example.com":{"available":true},"test.ai":{"available":false}}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domains":{"type":"array","items":{"type":"string","description":"Domain name to check"},"description":"List of domain names to check availability for"}},"required":["domains"]},"example":{"type":"http","bodyType":"json","body":{"domains":["example.com","test.ai"]}}}}}}},"/domains/suggest":{"post":{"operationId":"domains_suggest_post","summary":"Domain name brainstorming and availability screening","description":"Domain name brainstorming and availability screening: combine keywords into candidate domains across chosen TLDs, then live-WHOIS-check them and return only the available ones. Naming research in a single call.","tags":["domains"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"3000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"suggestions":{"type":"array","items":{"type":"string"},"description":"Available candidate domains"}},"required":["suggestions"],"additionalProperties":true},"example":{"suggestions":["aiagent.com","agentai.net"],"aiagent.com":{"available":true}}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keywords":{"type":"array","items":{"type":"string"},"description":"Keywords to combine into domain name candidates, e.g. [\"agent\",\"grid\"]"},"tlds":{"type":"array","items":{"type":"string"},"description":"TLDs to check against (default [\"com\",\"ai\",\"io\"])"},"maxCheck":{"type":"number","description":"Max candidate domains to check (default 30, max 50)"}},"required":["keywords"]},"example":{"type":"http","bodyType":"json","body":{"keywords":["agent","grid"],"tlds":["com","ai","io"],"maxCheck":30}}}}}}},"/parse":{"post":{"operationId":"parse_post","summary":"Document parsing","description":"Document parsing: convert office documents (docx, pptx, xlsx, pdf, odt, ods, odp, rtf, epub, csv, doc, ppt) to clean GitHub-Flavored Markdown. Pass a document URL or base64-encoded bytes. Deterministic local Rust converter (Firecrawl anydoc) — fast, typed structure preserved (headings, tables, lists), no OCR for scanned/image-only PDFs.","tags":["extraction"],"x-payment-info":{"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xc2afB91833f4dE19542A025872C6085cC29185eB","amountAtomic":"5000","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string","description":"Document content as GitHub-Flavored Markdown"},"format":{"type":"string","description":"Detected or declared source format (docx, pptx, xlsx, pdf, ...)"},"chars":{"type":"number","description":"Length of the markdown output"}},"required":["markdown","format"]},"example":{"markdown":"# Quarterly Report\n\n| Region | Revenue |\n|---|---|\n| EMEA | $1.2M |","format":"docx","chars":1834}}}},"402":{"description":"Payment Required — retry with an x402 PAYMENT-SIGNATURE header. The PAYMENT-REQUIRED response header carries the base64 x402 v2 challenge.","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"type":"string","description":"URL of the document to download and parse. Provide either url or base64."},"base64":{"type":"string","description":"Base64-encoded document bytes (max ~15MB). Provide either url or base64."},"filename":{"type":"string","description":"Optional filename hint (e.g. \"report.docx\") used for format detection when bytes carry no signature (csv)."},"format":{"type":"string","description":"Optional explicit format override. One of: doc, docx, odt, pdf, ppt, pptx, rtf, epub, xlsx, ods, odp, csv"}},"required":[],"anyOf":[{"required":["url"]},{"required":["base64"]}]},"example":{"type":"http","bodyType":"json","body":{"url":"https://example.com/report.docx"}}}}}}},"/health":{"get":{"operationId":"health_get","summary":"Service health status","description":"Free liveness/health probe. Returns status, uptime, extractor list, and live pricing. No payment required.","tags":["meta"],"security":[],"responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}