Get started
Introduction
What the API does and the shape of every call.
SnoopScan is a web scraping API for AI agents. Send a URL and get the page back as markdown, HTML, links, a summary, a screenshot or JSON in your own schema. It handles JavaScript-heavy pages and pages that block ordinary scrapers.
Request and response
Every endpoint takes a JSON body with a URL (or a list) and options, and returns the same response shape:
import requestsr = requests.post( 'https://api.snoopscan.com/v1/scrape', headers={'Authorization': 'Bearer sk_YOUR_KEY'}, json={ 'url': 'https://example.com/pricing', 'formats': [ 'markdown', 'links' ], 'onlyMainContent': True },)print(r.json())
const r = await fetch('https://api.snoopscan.com/v1/scrape', { method: 'POST', headers: { Authorization: 'Bearer sk_YOUR_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ "url": "https://example.com/pricing", "formats": [ "markdown", "links" ], "onlyMainContent": true }),});console.log(await r.json());
curl -X POST https://api.snoopscan.com/v1/scrape \ -H 'Authorization: Bearer sk_YOUR_KEY' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://example.com/pricing", "formats": [ "markdown", "links" ], "onlyMainContent": true}'
Every response has success, data and what the call cost.
A success returns {"success": true, "data": {…}}. A failure returns {"success": false, "error": {…}} with an error code.
Try it before you sign up.
The Playground runs these calls in your browser, with no account and no key.
Start here
- Quickstart — paste one line into your AI chat, or make one call from code.
- Authentication — one bearer key opens every tool.
- Output formats — pick what comes back.
- Errors — every code and what to do about it.
Endpoints
Every endpoint uses the same API key and the same credits.
| Tool | Endpoint | What it is for |
|---|---|---|
| Scrape | POST /v1/scrape |
One URL into clean markdown for a RAG pipeline, an LLM prompt or an archive. Navigation, cookie walls and boilerplate stay out of it. |
| Crawl | POST /v1/crawl |
A documentation site, a help center or a whole blog, page by page, with depth and path filters. Poll the job or take a webhook. |
| Map | POST /v1/map |
Every URL on a site in seconds, for a content audit, a migration inventory, or to find the pages worth scraping before you spend on them. |
| Search | POST /v1/search |
Web search with every result already scraped, so a research agent reads whole pages instead of guessing from snippets. |
| Extract | POST /v1/extract |
A JSON schema or a named template, and up to 100 URLs in, rows out — pricing tables, spec sheets, job listings. |
| Batch | POST /v1/batch/scrape |
Thousands of URLs as one job, for a backfill or a nightly refresh, running at whatever concurrency your plan allows. Poll it or take a webhook. |
| Products | POST /v1/products |
A whole store catalog with prices, variants and stock, hundreds of products in one call. Competitor pricing without a crawl. |
| Posts | POST /v1/posts |
Every article from a blog or forum, hundreds at a time, for a content aggregator, a newsroom feed or a training set. |
| Monitor | POST /v1/monitor |
Watch a page on a schedule and get a webhook only when it really changed. Price drops, job boards, terms and docs. |
| Places | POST /v1/places/search |
Business listings by trade and town, with the website, the phone number and the people behind it. Lead lists, ready to work. |
| Domain | POST /v1/domain |
Domain age, registrar, hosting and backlinks for any site. Judge a source, size up a competitor, or check a domain was not registered last week. |
| Domain report | POST /v1/domain/report |
Check a domain before you buy it: its archive history, whether the backlinks it is sold on still exist, and the questions to ask the seller. |
| Domain screen | POST /v1/domain/screen |
Check up to 500 domain names in one call to see which are available. Cut a drop list down to a shortlist, then run a report on the few that matter. |
| Find Leads | POST /v1/leads |
Local businesses by trade and town, each with its phone, website, address and the emails it publishes, ready for outreach. |
| Company | POST /v1/company |
One company domain in, the details a lead list sells out: name, phone, LinkedIn, headcount, industry, plus the emails and socials the site publishes. |
Failed requests are not charged.
Re-reading a page you already fetched, from cache, is free too. Every response includes a
cost object. See Credits.