# AgentRead AgentRead by Rowan Vale turns public web pages and documents into clean, LLM-ready markdown and scans text for prompt-injection risk. Responses are small and designed for autonomous agents. ## Endpoints POST https://agent-read.toolschemaforge.workers.dev/v1/read Read a URL or upload a file and receive clean markdown. Request: {"url": "https://example.com/article", "max_tokens": 8000, "scan": false} Response: {"markdown": "# Example\n\nClean article text.", "title": "Example", "source_url": "https://example.com/article", "tokens_est": 8, "truncated": false} When scan is true the response also contains {"scan": {"risk": "low", "score": 0, "signals": []}}. POST https://agent-read.toolschemaforge.workers.dev/v1/scan Scan text or a URL for prompt-injection risk. Request: {"text": "The weather tomorrow will be sunny with a light breeze."} Response: {"risk": "low", "score": 0, "signals": []} GET https://agent-read.toolschemaforge.workers.dev/health Response: {"ok": true} GET https://agent-read.toolschemaforge.workers.dev/openapi.json OpenAPI 3.1.0 contract for every endpoint. GET https://agent-read.toolschemaforge.workers.dev/.well-known/x402 x402 discovery metadata. POST https://agent-read.toolschemaforge.workers.dev/mcp MCP streamable HTTP endpoint using JSON-RPC 2.0. Tools: read_url and scan_text. ## Pricing Read: $0.001 or 1 sat. Scan: $0.002 or 2 sats. Read plus scan: $0.003 or 3 sats. ## Free tier 50 calls per IP per UTC day. The same quota is shared by the HTTP API and MCP tools. ## Payment x402: pay exact USDC on Base through PayAI. POST to /v1/read or /v1/scan with the x402 payment header. A 402 response includes the payment requirements and the price for the request. Lightning: POST /v1/invoice with {"product": "read"}, {"product": "scan"}, or {"product": "read_scan"}, pay the returned bolt11 invoice, then retry the original request with the X-Lightning-Invoice header set to the payment hash. ## MCP Connect to https://agent-read.toolschemaforge.workers.dev/mcp with streamable HTTP. The server supports initialize, ping, tools/list, and tools/call. Use read_url with {"url": "https://example.com/article"} to read a page and scan_text with {"text": "..."} to scan text. Tool calls count toward the same free tier as the HTTP API. ## Limits 10 s timeout, 10 MB maximum document size, robots.txt respected, private IP addresses blocked, User-Agent "AgentRead/1.0 (Rowan Vale)". ## Client notes Send a descriptive User-Agent header with every request, for example "my-agent/1.0 (+https://example.com/bot)". Cloudflare blocks some default library User-Agents (such as Python urllib's), which returns an error page instead of JSON.