{"openapi":"3.1.0","info":{"title":"Superhighway","version":"0.1.0","description":"A web-search API built for AI agents. Pay per call with x402 (USDC over HTTP 402) — no signup, no API key, no human in the loop. One GET, you get clean search results.","x-payment":{"protocol":"x402","network":"base","price":"$0.001","enabled":true}},"servers":[{"url":"https://api-production-17e1.up.railway.app"}],"paths":{"/search":{"get":{"summary":"Search the web","description":"Returns ranked organic results. Requires an x402 payment header; an unpaid request returns 402 with the payment requirements an x402 client uses to pay and retry automatically.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"The search query."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":20},"description":"Max results."}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"engine":{"type":"string"},"count":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"},"page_age":{"type":["string","null"]}}}}}}}}},"402":{"description":"Payment required — pay via x402 and retry. Body carries the payment requirements."}}}},"/news":{"get":{"summary":"Search recent news","description":"Returns recent news articles for time-sensitive queries. Requires an x402 payment header; an unpaid request returns 402 with the payment requirements an x402 client uses to pay and retry.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"The news query."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":20},"description":"Max results."}],"responses":{"200":{"description":"News results (same shape as /search; results carry published dates)"},"402":{"description":"Payment required — pay via x402 and retry."}}}},"/scrape":{"get":{"summary":"Read a web page as clean text + markdown","description":"Fetches a URL and returns its readable content (title, markdown, text). Requires an x402 payment header; an unpaid request returns 402 with the payment requirements.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"The page URL to read (http/https)."}],"responses":{"200":{"description":"Extracted content: { url, title, markdown, text, length }"},"402":{"description":"Payment required — pay via x402 and retry."}}}},"/research":{"get":{"summary":"Search + read the top results in one call","description":"Runs a live web search AND reads the top result pages as clean markdown — content, not just links, in a single paid call. Requires an x402 payment header; an unpaid request returns 402.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"The question or topic to research."},{"name":"pages","in":"query","required":false,"schema":{"type":"integer","default":2,"minimum":1,"maximum":3},"description":"How many top results to read (1–3)."}],"responses":{"200":{"description":"{ query, count, results[], pages: [{url,title,markdown,length,error?}] }"},"402":{"description":"Payment required — pay via x402 and retry."}}}},"/images":{"get":{"summary":"Search for images","description":"Returns image URLs, source pages, and thumbnails from a multi-engine image metasearch. Requires an x402 payment header; an unpaid request returns 402 with payment requirements.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"The image search query."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":20},"description":"Max results."}],"responses":{"200":{"description":"Image results","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"engine":{"type":"string"},"count":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string","description":"Source page URL"},"img_src":{"type":"string","description":"Direct image URL"},"thumbnail":{"type":["string","null"],"description":"Thumbnail URL"},"format":{"type":["string","null"],"description":"Image format (jpg, png, …)"}}}}}}}}},"402":{"description":"Payment required — pay via x402 and retry."}}}},"/health":{"get":{"summary":"Liveness + dependency health","responses":{"200":{"description":"OK"}}}}}}