{"openapi":"3.1.0","info":{"title":"ScrapeMole Search: web search, news search and autocomplete for AI agents","version":"1.0.0","description":"Pay-per-call search for agents: web search results (title, URL, snippet, domain, position; up to 20 per call, markets, safe search, paging), news search (headline, direct URL, publisher, published time, image; sort by date, freshness hour/day/week/month) and search autocomplete suggestions. Live from public search pages and feeds with automatic fallbacks (Bing RSS, Brave Search, Mwmbl, Google suggest, DuckDuckGo); every response names the source used. No keys, no accounts. USDC via x402; failed and empty calls are never charged.\n\nPayments: x402 v2, scheme \"exact\", USDC on Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp). The payment is verified before the work and settled only when the response is 200. Terms: https://search.scrapemole.workers.dev/terms","contact":{"email":"edgaras@mail.grokbot.com","url":"https://scrapemole.pages.dev"},"x-guidance":"Call any /v1 endpoint without payment to receive a 402 with the exact price, then retry with an x402 client (e.g. @x402/fetch). 4xx/5xx responses are never charged."},"servers":[{"url":"https://search.scrapemole.workers.dev"}],"components":{"securitySchemes":{"x402":{"type":"http","scheme":"x402","description":"HTTP 402 payment with USDC via the x402 protocol."}}},"paths":{"/v1/web":{"get":{"operationId":"web","summary":"Web search results for a query: title, URL, snippet, domain and position, up to 20 per call, with market/locale, safe search and paging.","description":"Use when an agent needs to search the web: research, fact finding, finding official pages/docs, competitor or link discovery, grounding an answer with URLs. Returns ranked organic results (position, title, url, domain, snippet; published date or lastCrawled time when the source has one). The top 10 come from Bing's public RSS results; deeper pages (count > 10 or page > 1) come from Brave Search. Supports operators the engines support in q (site:, \"exact phrase\", -exclude, filetype:). If the primary source is unavailable or off-topic it falls back to Brave Search, then the Mwmbl open index; the response says which source answered (source, sourceUrl, fallbackFrom). Pair with ScrapeMole Reader /v1/read to turn a result URL into Markdown. Empty results = 404, not charged.","tags":["search","web-search","serp","search-engine","google-alternative","bing","research","grounding","rag","web"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query (max 400 chars). Operators like site:example.com, \"exact phrase\", -word work.","schema":{"type":"string","examples":["x402 payment protocol"]}},{"name":"count","in":"query","required":false,"description":"Number of results (1-20).","schema":{"type":"string","default":"10"}},{"name":"page","in":"query","required":false,"description":"Result page (1-5); each page is \"count\" results.","schema":{"type":"string","default":"1"}},{"name":"market","in":"query","required":false,"description":"Market/locale as language-COUNTRY, e.g. en-US, en-GB, de-DE, fr-FR, ja-JP (applied on the Bing source).","schema":{"type":"string","default":"en-US"}},{"name":"safe","in":"query","required":false,"description":"Safe search level.","schema":{"type":"string","enum":["strict","moderate","off"],"default":"moderate"}}],"security":[{"x402":[]}],"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":"0.001","currency":"USD","network":"eip155:8453","networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"asset":"USDC"},"responses":{"200":{"description":"Result (the payment settles only for this status).","content":{"application/json":{"example":{"query":"x402 payment protocol","count":2,"page":1,"results":[{"position":1,"title":"x402 - Payment Required","url":"https://www.x402.org/","domain":"x402.org","snippet":"x402 is an open payment standard that enables services to charge for access to their APIs and content directly over HTTP…"},{"position":2,"title":"coinbase/x402: A payments protocol for the internet. Built on HTTP.","url":"https://github.com/coinbase/x402","domain":"github.com","snippet":"x402 payments protocol…"}],"source":"Bing (public RSS search results)","sourceUrl":"https://www.bing.com/search?q=x402%20payment%20protocol"}}}},"400":{"description":"Invalid input. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"402":{"description":"Payment required (x402). The PAYMENT-REQUIRED header (mirrored in the body) carries price, network and payTo."},"404":{"description":"Not found / no data. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"502":{"description":"Upstream error. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"504":{"description":"Upstream timeout. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}}}}},"/v1/news":{"get":{"operationId":"news","summary":"News articles for a query: headline, URL, publisher, published time, snippet and image, sortable by relevance or date, with freshness filter (hour/day/week/month).","description":"Use for current events, monitoring a company/person/topic in the press, finding recent coverage before answering, or building news digests. Returns up to 20 articles with title, direct article url (no redirect wrapper), publisher, published time (ISO 8601), snippet and image when available. sort=date for newest first; freshness=hour|day|week|month to limit age; market for regional editions (en-US, en-GB, de-DE, …). Primary source is Bing News public RSS (retried automatically when Bing answers an empty page), fallback Brave Search News; the response names the source used. Empty results = 404, not charged.","tags":["news","news-search","headlines","current-events","media-monitoring","press","articles","search","rss","bing-news"],"parameters":[{"name":"q","in":"query","required":true,"description":"News query (max 400 chars), e.g. a company, person, topic; site:reuters.com works on Bing.","schema":{"type":"string","examples":["nvidia"]}},{"name":"count","in":"query","required":false,"description":"Number of results (1-20).","schema":{"type":"string","default":"10"}},{"name":"page","in":"query","required":false,"description":"Result page (1-5); each page is \"count\" results.","schema":{"type":"string","default":"1"}},{"name":"market","in":"query","required":false,"description":"Market/locale as language-COUNTRY, e.g. en-US, en-GB, de-DE, fr-FR, ja-JP (applied on the Bing source).","schema":{"type":"string","default":"en-US"}},{"name":"sort","in":"query","required":false,"description":"relevance (default) or date (newest first).","schema":{"type":"string","enum":["relevance","date"],"default":"relevance"}},{"name":"freshness","in":"query","required":false,"description":"Maximum article age.","schema":{"type":"string","enum":["any","hour","day","week","month"],"default":"any"}}],"security":[{"x402":[]}],"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":"0.002","currency":"USD","network":"eip155:8453","networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"asset":"USDC"},"responses":{"200":{"description":"Result (the payment settles only for this status).","content":{"application/json":{"example":{"query":"nvidia","count":1,"page":1,"sort":"relevance","freshness":"any","articles":[{"position":1,"title":"Nvidia announces $150 billion stock buyback","url":"https://www.reuters.com/technology/…","domain":"reuters.com","publisher":"Reuters","published":"2026-10-12T21:05:00.000Z","snippet":"Nvidia on Monday announced…"}],"source":"Bing News (public RSS)","sourceUrl":"https://www.bing.com/news/search?q=nvidia"}}}},"400":{"description":"Invalid input. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"402":{"description":"Payment required (x402). The PAYMENT-REQUIRED header (mirrored in the body) carries price, network and payTo."},"404":{"description":"Not found / no data. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"502":{"description":"Upstream error. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"504":{"description":"Upstream timeout. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}}}}},"/v1/suggest":{"get":{"operationId":"suggest","summary":"Search-box autocomplete suggestions for a partial query: up to 10 real popular completions, any language.","description":"Use for keyword research, SEO/content ideas, query expansion before /v1/web or /v1/news, or guessing what people search for around a topic (\"how to la\" -> \"how to lay tile\", …). Returns the completions in source order. lang sets the suggestion language (en, de, fr, es, ja, …). Primary source Google's public suggest endpoint, fallback DuckDuckGo autocomplete; the response names the source used. No suggestions = 404, not charged.","tags":["search","autocomplete","suggestions","keyword-research","seo","query-expansion","keywords","google-suggest"],"parameters":[{"name":"q","in":"query","required":true,"description":"Partial query (max 200 chars).","schema":{"type":"string","examples":["how to learn"]}},{"name":"lang","in":"query","required":false,"description":"Two-letter language code.","schema":{"type":"string","default":"en"}}],"security":[{"x402":[]}],"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":"0.001","currency":"USD","network":"eip155:8453","networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"asset":"USDC"},"responses":{"200":{"description":"Result (the payment settles only for this status).","content":{"application/json":{"example":{"query":"how to learn","count":3,"suggestions":["how to learn python","how to learn spanish","how to learn coding"],"source":"Google (public suggest endpoint)","sourceUrl":"https://www.google.com/search?q=how%20to%20learn"}}}},"400":{"description":"Invalid input. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"402":{"description":"Payment required (x402). The PAYMENT-REQUIRED header (mirrored in the body) carries price, network and payTo."},"404":{"description":"Not found / no data. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"502":{"description":"Upstream error. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}},"504":{"description":"Upstream timeout. Not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"charged":{"type":"boolean","const":false}}}}}}}}}}}}}