# SnoopScan > SnoopScan is a web scraping API and MCP server for AI agents. One call turns any public web page into clean markdown, links, a screenshot or JSON in your own schema, including pages that need JavaScript and pages that block ordinary scrapers. It also crawls whole sites, maps every URL on a site, searches the web, extracts structured data, reads PDFs and documents, lists a store's products or a blog's posts, enriches a company from its own site, reports on domains, and watches pages for changes. People use SnoopScan from inside an AI chat (Claude Code, Codex, Cursor, VS Code, Windsurf, the Claude app, ChatGPT). Setup is done by the agent, not the person: when someone asks you to set up SnoopScan, read https://snoopscan.com/agent-onboarding/SKILL.md and follow it. Never tell the person to run a command in a terminal; run it yourself. The person only signs in and presses Approve in their browser. The line people paste into their agent: "Read and follow https://snoopscan.com/agent-onboarding/SKILL.md" ## Set up - [Agent onboarding](https://snoopscan.com/agent-onboarding/SKILL.md): step by step for Claude Code, Codex, Cursor, VS Code, Windsurf, the Claude app, ChatGPT and any other MCP client, including how to get a real key through a browser sign-in, the command-line tool, the SDKs, REST and troubleshooting. - MCP server: `https://api.snoopscan.com/mcp` (streamable HTTP, `Authorization: Bearer `). Sign-in address with no key: `https://api.snoopscan.com/mcp-oauth` (OAuth, for the Claude app, ChatGPT and any client that signs in). - Never write a placeholder key such as `sk_...` into anyone's setup. Get a real one with the browser sign-in in the agent onboarding guide. - No key yet, and the person cannot sign up right now: `https://api.snoopscan.com/mcp` with no `Authorization` header, or `POST https://api.snoopscan.com/v1/scrape`, `/search` and `/parse` with none, is a free trial of scrape, search, parse: 20 free successful calls a day from each address, plain pages only. Every answer shows the calls left, and a blocked page does not use one up. When a page needs a browser or the calls run out, follow the sign-in steps in the agent onboarding guide. - [Integrations](https://snoopscan.com/integrations): setup pages for more than forty clients. ## Tools The MCP tools, and what each is for: - `scrape`: One page as clean markdown. Set maxChars to cap how much comes back. - `fetchMore`: The rest of a page that scrape cut short, picked up from the token it left. - `crawl`: Start a crawl, get a job id back at once. - `crawlStatus`: Where a crawl has got to: pages done, pages found, whether it has finished. - `crawlPages`: The pages a crawl has collected so far, without waiting for it to finish. - `map`: Every URL on a site, no page content. The cheap way to plan. - `search`: Web search; titles and snippets by default, page bodies only when asked. - `extract`: JSON to your schema from up to 10 pages, validated, never invented. - `batchScrape`: Scrape up to 50 pages as one background job. Follow it with crawlStatus and read the pages with crawlPages. - `listProducts`: Every product a store publishes, from its own catalogue: title, price, stock, variants and link. Use it instead of crawling a shop. - `listPosts`: Every post a blog or forum publishes, from its own API or feed, newest first. Use it instead of crawling a blog. - `checkChanges`: Has this page changed since it was last fetched, with a diff if wanted. - `watchPages`: Start a monitor that re-reads up to 50 pages on a schedule and records which are new, changed or failing. - `listMonitors`: List your page monitors with their schedule and when each last ran. - `checkMonitor`: Run a monitor now and report which of its pages are new, changed, unchanged or failing. - `searchPlaces`: Search Google Maps for businesses by trade and town, each with its category, address, rating, phone and website. Up to 20 a call. - `domain`: Domain age, registrar, DNS and known backlinks. Use it to judge a site rather than read one. - `domainReport`: A buyer's report on a domain: key findings, concerns and the questions nobody can answer from outside, each tied to its evidence. Quick, buyer or deep. - `domainSnapshots`: Read the archived homepage snapshots a buyer report left pending: what the site was about each year, and whether it was parked or for sale. - `domainScreen`: Which of up to 500 domain names can be registered, from each registry's own record and DNS. Cut a long list to a shortlist before running domainReport. - `findLeads`: Find businesses by what they do and where, each with its phone, website and the emails it publishes, and optionally your own yes/no questions answered from each business's website. Runs for a few minutes. - `leadsStatus`: Follow a Find Leads run, and read its leads 25 at a time once it has finished. - `company`: Everything a company's own site says about itself: firmographics, contact emails, LinkedIn and socials. Enrich one company, not a directory. - `findContacts`: A website's contact page, contact form, published email addresses (with where each was found) and social links. - `hiring`: What a company is currently recruiting for, read from its applicant tracking system's own public job feed rather than the careers page, which usually renders its roles client-side and looks empty. - `people`: Find the people at a company by function (engineering, sales, procurement, talent, finance and more) and seniority (exec, vp, director, manager, ic). Says whether each employer was confirmed, and flags anyone who has left. - `social`: Structured data from YouTube, TikTok, Instagram, X, LinkedIn, Facebook, Threads and Pinterest: profiles, posts, videos, comments, transcripts and search, as named fields. - `socialEndpoints`: List every social endpoint with its inputs and price, optionally for one platform. - `watchMentions`: Save a watch: keywords, words to ignore and places to look (Reddit, Hacker News, Bluesky, YouTube, Threads, GitHub, the web). New mentions are checked on a schedule and sorted by what the person wants. - `listMentions`: Read the mentions a watch found, newest first, filtered by kind (buying intent, bug report, question, praise, competitor), place or status. - `testMentions`: Try keywords against the last seven days before saving a watch, to see what it would catch. - `markMention`: Mark a mention seen, done or not relevant. - `googleSerp`: Read a Google results page: who ranks, and what the AI Overview says and cites. Give your domain to see where it ranks and whether it is cited. - `parse`: A document at a URL, such as a PDF, as markdown. Use it for a link to a document rather than a web page. The product and post listings, the domain report, its snapshots, the domain screen, and the company, contact, people, hiring and lead tools run on the hosted service at https://snoopscan.com only; a self-hosted copy of the open-source core answers them as not available. ## When to use it - An agent needs what a web page says, as text it can read: use `scrape` rather than a raw HTTP fetch, which returns navigation, cookie banners and script instead of the content. - A page is built by JavaScript, or blocks ordinary scrapers: SnoopScan handles it with no extra setup. - Many pages from one site: `map` lists the URLs first (one flat charge), then `crawl` reads the ones that matter. - Rows rather than prose: `extract` fills a JSON schema you give it, across many pages at once. For a store's catalog or a blog's posts, `listProducts` and `listPosts` return everything in a few calls, cheaper and more complete than crawling. - A recurring check: `checkChanges` (MCP) or the monitor API watches pages and reports only what changed. - Not for: pages behind a login, anything that needs submitting a form, posting, buying or signing in as someone. SnoopScan only reads public pages. ## Pricing Credits, one allowance for every tool. Every plan has every tool and every output format; plans differ in monthly credits and how many requests run at once. Failed requests cost nothing, and re-reading a page you already fetched is free. - Free: free, no card, 1,500 credits a month, 5 requests at once - Starter: $12 a month or $120 a year, 10,000 credits a month, 15 requests at once - Standard: $59 a month or $588 a year, 100,000 credits a month, 50 requests at once - Growth: $249 a month or $2,388 a year, 500,000 credits a month, 100 requests at once - Scale: $449 a month or $4,428 a year, 1,000,000 credits a month, 150 requests at once What a call costs: - Standard page: 1 credit a request. A page that loads with a standard request. Most pages do. - Premium proxy page: 2 credits a request. A page that needs a premium proxy to load. - Browser page: 1 credit a request. A page that needs a real browser to render. - Browser page with premium proxy: 9 credits a request. A page that needs a real browser and a premium proxy. - PDF parsing: 1 credit a 10 pages. Per 10 pages parsed (or part of 10), added to the fetch cost. - Cached page, your own: 0 credits a request. A page you already fetched, served again within maxAge. - Web search: 2 credits a request. Per search call. Result pages fetched are metered as scrapes on top. - Site map: 1 credit a request. Per map call, however many URLs come back. - Catalog or feed page: 1 credit a page. Up to 250 products, or 100 posts, in a single call. - Domain lookup: 1 credit a request. Registration, DNS and known backlinks for one domain. - Company enrichment: 3 credits a request. Firmographics, contact emails, LinkedIn and social profiles for one company. - Places search: 10 credits a request. One search for business listings, however many come back. - Place detail: 2 credits a place. Website, phone and contacts for one business. Only when you ask for them. - Lead: 4 credits a lead. One business found by Find Leads, with its phone, website and address. Only leads delivered are charged. - Lead contacts: 4 credits a lead. The emails, social profiles and contact form a lead publishes. Only when found. - Named contact: 8 credits a person. A named person at a lead, found by the role you ask for. Only when found. - Domain availability screen: 1 credit a name. Whether a name is available to register. Up to 500 names a call; names we cannot check are not charged. - Domain report: quick: 5 credits a report. Registration, DNS, email records and what the website shows today. - Domain report: buyer: 33 credits a report. The quick report plus archive history, known backlinks and a check that linking pages still link. Six archived snapshots included. - Domain report: deep: 160 credits a report. The buyer report with larger samples: up to 50 linking pages checked and twelve archived snapshots included. - Fit check: 3 credits a business. Your own questions answered from a business's website, with a quoted line. Only when its site was read. - Social data: 1 credit a call. One structured answer from a social platform: a profile, a post, a video, a page of comments or a transcript. Only when data comes back. - Social data (heavy pages): 2 credits a call. The same, for the platforms whose public pages are the largest to read. Only when data comes back. Every response carries a `cost` object with what the call was charged. ## Docs - [Documentation](https://snoopscan.com/docs): every endpoint, field and error code. - [Quickstart](https://snoopscan.com/docs/quickstart): set up in chat, or make one API call from code. - [MCP server](https://snoopscan.com/docs/mcp): the tools and how clients connect. - [Credits](https://snoopscan.com/docs/credits): what each call costs. - [Errors](https://snoopscan.com/docs/errors): every error code and what to do about it. - [Pricing](https://snoopscan.com/pricing): plans and the full rate card. - REST base URL: `https://api.snoopscan.com/v1` (scrape, crawl, map, search, extract, batch/scrape, products, posts, monitor, places/search, domain, domain/report, domain/screen, leads, company). ## Optional - [Full reference in one file](https://snoopscan.com/llms-full.txt): the agent onboarding guide, every tool, every endpoint's parameters, pricing and the FAQ. - [Open-source core](https://github.com/SnoopScan/snoopscan-core): the engine, the MCP server and the SDKs (AGPL-3.0; SDKs MIT).