SnoopScan
Endpoints

Search

Web search with every result already scraped, so a research agent reads whole pages instead of guessing from snippets.

POST /v1/search

Request

Send a JSON body with a URL (or a list) and any options. The response holds data and what the call cost.

import requestsr = requests.post(    'https://api.snoopscan.com/v1/search',    headers={'Authorization': 'Bearer sk_YOUR_KEY'},    json={        'query': 'best headless browsers',        'limit': 5,        'scrapeOptions': {            'formats': [                'markdown'            ]        }    },)print(r.json())
const r = await fetch('https://api.snoopscan.com/v1/search', {  method: 'POST',  headers: { Authorization: 'Bearer sk_YOUR_KEY', 'Content-Type': 'application/json' },  body: JSON.stringify({      "query": "best headless browsers",      "limit": 5,      "scrapeOptions": {          "formats": [              "markdown"          ]      }  }),});console.log(await r.json());
curl -X POST https://api.snoopscan.com/v1/search \  -H 'Authorization: Bearer sk_YOUR_KEY' \  -H 'Content-Type: application/json' \  -d '{    "query": "best headless browsers",    "limit": 5,    "scrapeOptions": {        "formats": [            "markdown"        ]    }}'
Returns results · each page scraped · 2 credits.

Parameters

FieldTypeDefaultWhat it does
query required string — What to search for.
autoCorrect boolean true Set false to search the query exactly as typed, e.g. a part number or a brand name.
device desktop · mobile — desktop or mobile. Mobile results can differ from desktop ones.
freshness string — Only results from the last hour, day, week, month or year.
language string — The language results should be in, e.g. en.
limit integer 10 How many results, 1 to 50.
location object — The country to search from, which changes the results, e.g. {"country": "GB"}.
page integer 1 Which page of results, starting at 1.
place string — Where the searcher is standing, in free text, e.g. "Austin, Texas, United States". Finer than location.
safeSearch off · moderate · strict — off, moderate or strict.
scrapeOptions object — Also fetch every result page with these options. Each page fetched is charged like a scrape.
sources array of web · news · images — Which kinds of result: web, news, images.

Response

A success returns {"success": true, "data": {…}}. data holds the formats you asked for, the page's metadata, and a cost object with what the call was charged. A failure returns {"success": false, "error": {…}} with an error code. See Errors.

Failed requests are not charged. Re-reading a page you already fetched, within maxAge, is free. See Credits for every rate.