{"openapi":"3.0.3","info":{"title":"OnlyBots Reader","version":"1.0.0","contact":{"email":"human@onlybots.shop","url":"https://onlybots.shop"},"description":"Token-efficient web reader for AI agents. URL in, clean boilerplate-free article markdown out with a token count header — typically 10-30x fewer tokens than raw HTML. Paid per call via x402 (USDC on Base mainnet), no accounts, no API keys. Free /demo endpoint returns a truncated sample."},"servers":[{"url":"https://x402.onlybots.shop"},{"url":"https://read.onlybots.shop"}],"paths":{"/read":{"get":{"summary":"Read a web page as clean markdown ($0.002 USDC via x402)","description":"Token-efficient web reader: URL in, clean deduplicated article markdown out, with token count header. Boilerplate, nav, ads stripped — typically 10-30x fewer tokens than raw HTML. For AI agents that pay per token.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"URL of the web page to read"}],"responses":{"200":{"description":"Extracted article","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"final_url":{"type":"string"},"title":{"type":"string"},"byline":{"type":"string","nullable":true},"markdown":{"type":"string"},"token_estimate":{"type":"integer"},"chars":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}}}}}},"402":{"description":"Payment required (x402 v2 exact scheme, USDC on Base eip155:8453)"}}}},"/read-js":{"get":{"summary":"Read a JS-rendered page as clean markdown ($0.005 USDC via x402)","description":"Token-efficient web reader (JS-rendered): headless-browser version for SPAs and JS-heavy pages. URL in, clean article markdown out with token count.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"URL of the web page to read"}],"responses":{"200":{"description":"Extracted article","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"final_url":{"type":"string"},"title":{"type":"string"},"byline":{"type":"string","nullable":true},"markdown":{"type":"string"},"token_estimate":{"type":"integer"},"chars":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}}}}}},"402":{"description":"Payment required (x402 v2 exact scheme, USDC on Base eip155:8453)"}}}},"/shot":{"get":{"summary":"Screenshot a web page as PNG ($0.004 USDC via x402)","description":"Screenshot API: URL in, PNG out. Headless-browser render of any public web page — viewport or full-page (full=1), width configurable (320-1920). For AI agents that need to see a page, not just read it.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"URL of the web page to read"},{"name":"full","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"1 = full-page screenshot (default: 1280x800 viewport)"},{"name":"width","in":"query","required":false,"schema":{"type":"integer","minimum":320,"maximum":1920},"description":"viewport width in px (default 1280)"}],"responses":{"200":{"description":"PNG image","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Payment required (x402 v2 exact scheme, USDC on Base eip155:8453)"}}}},"/read-pdf":{"get":{"summary":"Read a PDF as clean text ($0.004 USDC via x402)","description":"PDF reader: PDF URL in, clean extracted text out with page count, title and token count. Reads the documents the web reader can't — papers, reports, invoices, docs. Same token-efficient JSON shape as /read.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"URL of the PDF to read"}],"responses":{"200":{"description":"Extracted text with title, pages, token count","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string","nullable":true},"author":{"type":"string","nullable":true},"pages":{"type":"integer","nullable":true},"markdown":{"type":"string"},"token_estimate":{"type":"integer"},"chars":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}}}}}},"402":{"description":"Payment required (x402 v2 exact scheme, USDC on Base eip155:8453)"}}}},"/demo":{"get":{"summary":"Free truncated sample of /read output","security":[],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"URL of the web page to read"}],"responses":{"200":{"description":"Extracted article","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"final_url":{"type":"string"},"title":{"type":"string"},"byline":{"type":"string","nullable":true},"markdown":{"type":"string"},"token_estimate":{"type":"integer"},"chars":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}}}}}}}}}}}