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
| Field | Type | Default | What 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.