{"openapi":"3.1.0","info":{"title":"AgentCarWash — Agent Car Wash (x402)","version":"1.6.0","description":"Agent car wash API: dirty public URL → LLM-ready markdown. x402 micropayments on Base USDC for llm-pack, clean, extract, batch, and hub fulfill. Tags: agent-car-wash, x402, html-to-markdown, RAG, pay-per-call. Fair play — real page data only.","contact":{"name":"AgentCarWash","email":"theyeatheirown@gmail.com","url":"https://agent-carwash.agentfetcher.workers.dev"},"license":{"name":"MIT"},"x-tags":["x402","agent-car-wash","llm-pack","html-to-markdown","url-to-markdown","rag","micropayments","usdc","base","ai-agents","context-pack","web-clean","bazaar","agent-tool","pay-per-call"],"x-keywords":"agent car wash, AgentCarWash, x402, AI agents, LLM ready markdown, html to markdown, url to markdown, web clean for agents, context packing, token budget pack, RAG ingest, micropayments, USDC Base, eip155:8453, pay per request API, agent tool, HTTP 402, Coinbase Bazaar, x402scan, web scrape for LLM, dirty HTML clean, agent offload, llm-pack, multi URL batch pack, structured extract emails JSON-LD"},"servers":[{"url":"https://agent-carwash.agentfetcher.workers.dev"}],"tags":[{"name":"paid","description":"x402 paid endpoints (return 402 without payment)"},{"name":"free","description":"Free endpoints (not x402-paid)"},{"name":"agent-car-wash","description":"Habit-cheap context prep: URL in, LLM markdown out"},{"name":"llm-pack","description":"Primary token-budgeted markdown offload"},{"name":"hub","description":"Agent job board earn / get-help rail"}],"paths":{"/v1/llm-pack":{"post":{"tags":["paid"],"summary":"LLM pack offload ($0.005 USDC via x402)","description":"Primary agent offload: fetch public URL, strip chrome, convert to markdown, pack under maxTokens. Paste markdown into model context. Unpaid → 402.","operationId":"llmPackPage","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL","example":"https://example.com"},"maxTokens":{"type":"integer","minimum":500,"maximum":32000,"default":4000,"description":"Token budget for packed markdown"},"noCache":{"type":"boolean","default":false}}},"example":{"url":"https://example.com","maxTokens":4000,"noCache":false}}}},"responses":{"200":{"description":"Packed markdown JSON"},"400":{"description":"Invalid URL or maxTokens"},"402":{"description":"Payment required (x402)"}}}},"/v1/llm-pack-batch":{"post":{"tags":["paid"],"summary":"LLM pack batch ($0.02 USDC via x402, up to 5 URLs)","description":"Research/RAG offload: pack 1–5 public URLs into LLM-ready markdown in one payment. Unpaid → 402.","operationId":"llmPackBatch","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"string","format":"uri"},"description":"Public http(s) URLs to pack"},"maxTokens":{"type":"integer","minimum":500,"maximum":32000,"default":4000},"noCache":{"type":"boolean","default":false}}},"example":{"urls":["https://example.com","https://example.org"],"maxTokens":4000}}}},"responses":{"200":{"description":"Batch result: packs[] with ok/markdown or error per URL"},"400":{"description":"Invalid urls array or maxTokens"},"402":{"description":"Payment Required — x402 (atomic 20000 = $0.02 USDC)"}}}},"/v1/clean":{"post":{"tags":["paid"],"summary":"Clean page ($0.002 USDC via x402)","description":"Pay-per-request clean of a public URL into agent-ready JSON + markdown. Unpaid → HTTP 402.","operationId":"cleanPage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to clean","example":"https://example.com"},"noCache":{"type":"boolean","default":false,"description":"Skip server cache"}}},"example":{"url":"https://example.com","noCache":false}}}},"responses":{"200":{"description":"CleanResult (includes markdown) + ticket after payment"},"400":{"description":"Invalid URL"},"402":{"description":"Payment Required — x402 challenge (PAY via USDC on Base)"}}}},"/v1/extract":{"post":{"tags":["paid"],"summary":"Deep extract ($0.01 USDC via x402)","description":"Deep extract: text, markdown, headings, meta, JSON-LD, emails, phones. Unpaid → HTTP 402.","operationId":"extractPage","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://example.com"},"noCache":{"type":"boolean","default":false}}},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"ExtractResult + ticket after payment"},"400":{"description":"Invalid URL"},"402":{"description":"Payment Required — x402"}}}},"/v1/teaser":{"get":{"tags":["free"],"summary":"Free practice (not x402-paid)","description":"Free sample clean of example.com. No payment.","operationId":"teaser","security":[],"responses":{"200":{"description":"Free sample JSON"}}}},"/rules":{"get":{"tags":["free"],"summary":"Published fair-play rules (not x402-paid)","operationId":"rules","security":[],"responses":{"200":{"description":"Rules JSON"}}}},"/health":{"get":{"tags":["free"],"summary":"Health check (not x402-paid)","operationId":"health","security":[],"responses":{"200":{"description":"OK"}}}},"/discovery":{"get":{"tags":["free"],"summary":"Discovery status (not x402-paid)","operationId":"discovery","security":[],"responses":{"200":{"description":"Discovery JSON"}}}},"/llms.txt":{"get":{"tags":["free"],"summary":"Agent instructions (not x402-paid)","operationId":"llmsTxt","security":[],"responses":{"200":{"description":"text/plain"}}}}}}