{"service":"Agent Tool Stack","protocol":"x402 v2","payment":{"how":"Request any endpoint under /paid. You receive HTTP 402 with a PAYMENT-REQUIRED header describing accepted networks, asset, and amount. Pay via any x402 v2 client and retry with the PAYMENT header.","networks_note":"Settlement via the CDP facilitator. USDC. See each 402 response for current accepted networks."},"rate_limit":"Per-wallet requests/min cap. 429 with Retry-After when exceeded.","endpoints":[{"method":"GET","path":"/paid/ping","price":"$0.001","description":"Health and payment-path check. Returns server time and a confirmation that your x402 payment settled. Cheapest endpoint in the catalog; use it to verify your client's payment flow before calling paid tools.","params":[],"output":"JSON: { ok: true, ts: <ISO timestamp>, payer: <address if known> }","output_mime_type":"application/json"},{"method":"GET","path":"/paid/content","price":"$0.005","description":"Fetch a URL with a real rendered browser (JavaScript executed) and return clean Markdown. Results are cached for 24 hours per URL, so repeat calls for the same page are fast and don't re-render.","params":[{"name":"url","type":"string","required":true,"description":"Absolute http(s) URL of the page to fetch and convert to Markdown.","example":"https://example.com"}],"output":"JSON: { url: <string>, markdown: <string>, cached: <boolean>, fetched_at: <ISO timestamp> }","output_mime_type":"application/json"},{"method":"GET","path":"/paid/fetch-clean","price":"$0.005","description":"Alias of /content for agents that call a single URL directly. Fetches a URL with a real rendered browser (JavaScript executed) and returns clean Markdown. Results are cached for 24 hours per URL.","params":[{"name":"url","type":"string","required":true,"description":"Absolute http(s) URL of the page to fetch and convert to Markdown.","example":"https://example.com"}],"output":"JSON: { url: <string>, markdown: <string>, cached: <boolean>, fetched_at: <ISO timestamp> }","output_mime_type":"application/json"},{"method":"GET","path":"/paid/screenshot","price":"$0.01","description":"Fetch a URL with a real rendered browser (JavaScript executed) and return a PNG screenshot of the full page. Not JSON -- the response body is the image itself. Results are cached for 24 hours per URL. Cache status and fetch time are reported in the X-Cached and X-Fetched-At response headers.","params":[{"name":"url","type":"string","required":true,"description":"Absolute http(s) URL of the page to screenshot.","example":"https://example.com"}],"output":"Binary PNG image. Headers: X-Cached (true/false), X-Fetched-At (ISO timestamp).","output_mime_type":"image/png"},{"method":"GET","path":"/paid/pdf","price":"$0.01","description":"Fetch a URL with a real rendered browser (JavaScript executed) and return a PDF of the full page. Not JSON -- the response body is the file itself. Results are cached for 24 hours per URL. Cache status and fetch time are reported in the X-Cached and X-Fetched-At response headers.","params":[{"name":"url","type":"string","required":true,"description":"Absolute http(s) URL of the page to convert to PDF.","example":"https://example.com"}],"output":"Binary PDF file. Headers: X-Cached (true/false), X-Fetched-At (ISO timestamp).","output_mime_type":"application/pdf"},{"method":"POST","path":"/paid/extract","price":"$0.016","description":"Extract structured data from content you already have (e.g. from a prior /content call), using AI. No browser render involved -- pure AI extraction, cheaper and faster than fetching a URL fresh. Use this when you already have the text; use /extract-url if you only have a URL.","params":[{"name":"content","type":"string","required":true,"description":"Raw text content to extract data from.","example":"Example Domain. This domain is for use in illustrative examples in documents."},{"name":"schema","type":"object","required":true,"description":"JSON Schema describing the desired output structure.","example":"{\"type\":\"object\",\"properties\":{\"title\":{\"type\":\"string\"}},\"required\":[\"title\"]}"}],"output":"JSON: { data: <object matching your schema>, model: <string> }","output_mime_type":"application/json"},{"method":"POST","path":"/paid/extract-url","price":"$0.021","description":"Fetch a URL with a real rendered browser and extract structured data from it in one call, using AI (tries multiple models in sequence for reliability). Use this when you don't already have the page content; use the cheaper /extract if you do. Results are cached for 24 hours per URL+schema combination.","params":[{"name":"url","type":"string","required":true,"description":"Absolute http(s) URL of the page to extract data from.","example":"https://example.com"},{"name":"schema","type":"object","required":true,"description":"JSON Schema describing the desired output structure.","example":"{\"type\":\"object\",\"properties\":{\"title\":{\"type\":\"string\"}},\"required\":[\"title\"]}"},{"name":"prompt","type":"string","required":false,"description":"Optional natural-language guidance on what to extract and where it appears on the page.","example":"Extract the main heading and the first paragraph."}],"output":"JSON: { url: <string>, data: <object matching your schema>, cached: <boolean>, fetched_at: <ISO timestamp> }","output_mime_type":"application/json"},{"method":"GET","path":"/paid/aeo-audit","price":"$0.031","description":"URL -> AI-readiness report. Checks schema.org structured data, crawlability (robots.txt, meta robots, canonical), and llms.txt presence, then returns a 0-100 score with specific recommendations for what's missing. Results are cached for 24 hours per URL.","params":[{"name":"url","type":"string","required":true,"description":"Absolute http(s) URL of the page to audit.","example":"https://example.com"}],"output":"JSON: { url: <string>, score: <0-100>, checks: {...}, recommendations: <string[]>, cached: <boolean>, fetched_at: <ISO timestamp> }","output_mime_type":"application/json"},{"method":"GET","path":"/paid/search","price":"$0.005","description":"query -> structured search results (title, url, snippet), up to 10 per call. Backed by three providers with automatic failover (DataForSEO primary, Tavily and Serper as fallback) so a single provider outage doesn't take the endpoint down. Pass region=tw for a Traditional Chinese / Taiwan-region search lane. Results are cached for 24 hours per query+region.","params":[{"name":"query","type":"string","required":true,"description":"Search query.","example":"best bubble tea taipei"},{"name":"region","type":"string","required":false,"description":"Optional. Set to 'tw' for Traditional Chinese / Taiwan-region results.","example":"tw"}],"output":"JSON: { query: <string>, provider: <string>, results: [{ title, url, snippet }], cached: <boolean>, fetched_at: <ISO timestamp> }","output_mime_type":"application/json"},{"method":"GET","path":"/paid/research","price":"$0.031","description":"query -> up to 10 deduped, rendered sources as one token-budgeted bundle (~8,000 tokens combined). Combines /search (three-provider failover, region=tw Taiwan lane) with /content's rendered-page fetching internally, so you get one call instead of assembling search-then-fetch yourself. Sources are deduped by domain. Requires at least 3 successfully fetched sources to succeed -- returns sources_requested and sources_returned so you can see how many of the candidate set actually came back.","params":[{"name":"query","type":"string","required":true,"description":"Research query.","example":"electric scooter import regulations Taiwan"},{"name":"region","type":"string","required":false,"description":"Optional. Set to 'tw' for Traditional Chinese / Taiwan-region sources.","example":"tw"}],"output":"JSON: { query: <string>, sources_requested: <number>, sources_returned: <number>, sources: [{ title, url, markdown, truncated, cached }], fetched_at: <ISO timestamp> }","output_mime_type":"application/json"}]}