batchScrape | Scrape up to 50 pages as one background job. Returns a job id at once;
follow it with `crawlStatus` and read the pages with `crawlPages`. Every
page fetched is billed. For one page, use `scrape`.
Needs a free SnoopScan key. |
checkChanges | Check whether a page has changed since this account last recorded it.
Fetches the page now and compares it with the latest version stored for
the same URL; a changed page is stored as the new latest version. The
first check of a URL reports it as new. With `includeDiff`, a changed
page's current content is returned too.
Needs a free SnoopScan key. |
checkMonitor | Run a monitor's check now and report which pages are new, changed,
unchanged or failing. Billed like a scheduled check.
Needs a free SnoopScan key. |
companyread-only | Everything a company's own website says about itself.
Give it a company domain and get back its name, phone, address, LinkedIn,
headcount, industry and founded year, plus the contact emails, social links
and contact form the site publishes. Reads the homepage and a few
contact/about pages, nothing behind a login.
Profiles one company at a time. To find businesses by trade and place, use
`findLeads`.
Needs a free SnoopScan key. |
crawl | Start crawling a website.
Runs in the background and returns a job id immediately. Follow it with
`crawlStatus` and read the results with `crawlPages`. A crawl can take
minutes, every page it fetches is billed, and `limit` caps how many pages
it fetches.
Needs a free SnoopScan key. |
crawlPagesread-only | Read the pages a crawl has collected, a few at a time.
Returns a few pages per call, because a whole crawl is too large for one
response; pass the returned `cursor` to read the next pages.
Needs a free SnoopScan key. |
crawlStatusread-only | Check the progress of a crawl. Returns counts and cost, never page bodies.
Needs a free SnoopScan key. |
domainread-only | How old a domain is, who registered it, where it is hosted, and who links to it.
The off-page questions a page scrape cannot answer. Use it when a page
looks fine and you need to know whether the SITE is old, established or
linked to — comparing competitors, judging a source, or checking whether a
domain was registered last week.
Nothing here fetches the page, so nothing here can be blocked.
Needs a free SnoopScan key. |
domainReportread-only | A buyer's report on a domain: key findings, concerns, and the questions
nobody can answer from outside, each tied to its evidence.
`depth` is `quick` (registration, DNS, today's site), `buyer` (adds the
Internet Archive history, known backlinks and a re-read sample of linking
pages) or `deep` (larger samples). Brand, SEO and acquisition are judged
separately; there is no overall score. One flat price per depth; `buyer`
includes 6 archived snapshots and `deep` 12.
Needs a free SnoopScan key. |
domainScreenread-only | Which of up to 500 domain names can be registered, from each registry's
own record (RDAP) and DNS. Use it to cut a long list of candidate or
dropping names down to a shortlist, then run domainReport on the few that
matter. Nothing is fetched from the names' websites.
Each name comes back `likely_available`, `registered`, `unknown` or
`no_registry_record`, with the reason. 1 credit per name its registry
answered for; invalid names, duplicates and unanswered names are free.
Needs a free SnoopScan key. |
domainSnapshotsread-only | Read the archived homepage snapshots a `buyer` domainReport left pending.
A buyer report answers at once with the Internet Archive's timeline and
the snapshots already held; the rest are marked pending. Call this with
the same domain (and optionally the pending years) to read them: what the
site was about in each year, its language, and whether it was parked, for
sale or redirecting. Free for the snapshots a buyer or deep report
included; beyond those, charged only for snapshots actually fetched.
Needs a free SnoopScan key. |
extractread-only | Extract structured data from one or more pages according to a JSON schema.
The output is validated against the schema — if a page does not contain the
required fields, that page returns an error rather than invented values.
An error for a page means the required fields are not on it.
Needs a free SnoopScan key. |
fetchMoreread-only | Read the remainder of a page that was truncated.
Pass the token from a truncation marker. Returns the next section of the
same page, truncating again if it is still too long.
Needs a free SnoopScan key. |
findContactsread-only | Find contact information for a company website.
Returns the contact page, any contact form and its vendor, published email
addresses with where each was found, and social links.
Needs a free SnoopScan key. |
findLeads | Find businesses by what they do and where, with how to reach each one.
`who` is the trade or kind of business ("roofing contractors", "dentists"),
`where` is a town or area ("Houston, TX"); `country` is an ISO code such as
GB, read from `where` when omitted. `contacts` adds the emails, socials and
contact form each business publishes, and `roles` (e.g. ["Owner"]) adds a
named person. `questions` (up to three, such as "offers commercial roofing")
are answered from each business's own website, each with a quoted line and
the page it is on. Runs in the background for 2 to 5 minutes: call
`leadsStatus` with the job id to follow it and read the leads. Charged per
lead delivered, never for what it cannot find.
Needs a free SnoopScan key. |
googleSerpread-only | Read a Google results page for a search: who ranks, and what the AI
Overview says and cites. Give your `domain` and the answer says where it
ranks and whether the AI Overview cites it. `country` is a two-letter code
such as `gb`. The AI Overview is read only where a paid results provider is
set up; otherwise the answer is the classic organic list, up to 10 results,
with a note saying so. Billed per search, and nothing when no results come back.
Needs a free SnoopScan key. |
hiringread-only | What a company is currently recruiting for.
Give it a company domain. It finds the careers page, identifies the
applicant tracking system, and reads that system's public job feed, so it
returns the listed roles rather than a careers page's empty markup.
Not every company exposes a feed. When none is found it says so and names
the careers page. "No feed found" does not mean the company is not hiring.
Needs a free SnoopScan key. |
leadsStatusread-only | Follow a Find Leads run, and read its leads once it has finished.
Returns the stage while it runs. When done, returns the leads 25 at a time:
name, phone, email, website and address; call again with `offset` for the
next 25.
Needs a free SnoopScan key. |
listMentionsread-only | List the mentions this account's watches have found, newest first, each
with its category and the phrase that decided it. Filter by `watchId`,
`category` (bug_report, complaint, question, buying_intent, praise,
competitor, other), `platform` or `status` (new, seen, irrelevant, done).
With no `watchId` the account's watches are listed first.
Needs a free SnoopScan key. |
listMonitorsread-only | List this account's page monitors with their schedule and when each last ran.
Needs a free SnoopScan key. |
listPostsread-only | List a site's posts or articles from its own API or feed.
WordPress, Substack, Squarespace and Discourse answer through their APIs;
anything else through RSS or Atom. Titles, URLs and dates — use `scrape`
on a URL to read one.
Needs a free SnoopScan key. |
listProductsread-only | List every product a store publishes, from the store's own catalog.
Works for Shopify and WooCommerce stores without a key: one request per
page of up to 250 products, with title, price, availability, variants and
the product URL.
Needs a free SnoopScan key. |
mapread-only | List the URLs on a website without fetching page content.
Use it to see a site's structure before choosing which pages to scrape.
Needs a free SnoopScan key. |
markMention | Set a mention's status to new, seen, irrelevant or done.
Needs a free SnoopScan key. |
parseread-only | Read a document at a URL, such as a PDF, and return its text as markdown.
Use this for a link to a document rather than a web page. A URL that turns
out to be an ordinary page is returned as that page. Billed per 10
document pages.
|
peopleread-only | Find the people at a company, by what they do and how senior they are.
Give it a company and optionally a `role` and a `seniority`. It returns
named people from public search results; it does not sign in anywhere or
read profile pages.
role: executive, engineering, product, sales, marketing, finance,
procurement, talent, operations, data, security, legal, support, design
seniority: exec, vp, director, manager, ic
Each person says whether the employer was confirmed in the source text.
For an unconfirmed person the company name did not appear beside them in
the source, and a person marked former has left the company.
Needs a free SnoopScan key. |
scraperead-only | Fetch a single web page and return its content as clean markdown.
Use this when you have a specific URL and need to read what is on it. For
finding pages first, use `search` or `map`.
|
searchread-only | Search the web and return each result's title, URL and snippet.
With `fetchContent`, it also fetches each result's page and returns its
content. That is slower, and each page fetched is billed.
|
searchPlacesread-only | Search Google Maps the way a person would: "plumbers" in "Leeds".
Returns each business with its category, address, rating and review count,
and with `includeDetails` its phone number and website too. Up to 20 a
call. For a whole list with emails, owners and several sources, use
`findLeads`. Billed per results page and per detail fetched.
Needs a free SnoopScan key. |
socialread-only | Structured data from a social platform: profiles, posts, videos,
comments, transcripts and search, as named fields rather than a page.
Example: platform "youtube", endpoint "transcript", params {"id": "dQw4w9WgXcQ"}.
Call `socialEndpoints` for the full list and each endpoint's inputs. Only
public data, as a signed-out visitor sees it. Billed per call, and nothing
when no data comes back.
Needs a free SnoopScan key. |
socialEndpointsread-only | List the social endpoints `social` can call: platform, name, what it
returns, its inputs and its price. Platforms include YouTube, TikTok,
Instagram, X, LinkedIn, Facebook, Threads and Pinterest. Free.
Needs a free SnoopScan key. |
testMentionsread-only | Run keywords against the sources now and list what they find from the
last 7 days, where a source allows. Nothing is saved. Sources: reddit,
hackernews, bluesky, youtube, threads, web (blogs, forums and news), github
(issues and pull requests) and feeds (the RSS or Atom addresses in `feeds`).
Give `keywords` to try before creating a watch, or `watchId` to run a saved
one. Each answered source query is recorded on the account's usage.
Needs a free SnoopScan key. |
watchMentions | Create a watch that looks for keywords on Reddit, Hacker News, Bluesky,
YouTube, Threads, the web and news, GitHub and RSS or Atom feeds on a
schedule, and sorts each find into bug report, complaint, question, buying
intent, praise or competitor. Give `name` and `keywords` to create one, or
`watchId` plus the fields to change. `competitors` are extra keywords filed
as competitor mentions; `exclude` removes posts containing those words;
`platforms` limits the sources (reddit, hackernews, bluesky, youtube,
threads, web, github, feeds; default all); `feeds` are up to 10 feed
addresses the feeds source reads for new entries that name a keyword;
`intervalMinutes` is 5 to 10,080 (default 15). Each answered source query is
recorded on the account's usage. Read results with `listMentions`; try
keywords first with `testMentions`.
Needs a free SnoopScan key. |
watchPages | Start a monitor that re-reads up to 50 pages on a schedule and records
which are new, changed or failing. `intervalMinutes` is 5 to 10,080. Each
check bills the pages it fetches. Read the latest result with
`checkMonitor`; list yours with `listMonitors`.
Needs a free SnoopScan key. |