primaryEmail
Optional
The site's own-domain email picked first (a role mailbox before a person's address); null when none was found.
Website Email Extractor for Google Maps Leads & Domain Lists
Pricing
from $1.60 / 1,000 processed websites
Website email extractor and contact details scraper: paste domain lists, company names, PDF links or a Google Maps dataset; get best email (MX checked), phones and social links per site. $2 per 1,000 websites with a contact found; nothing found = free. Does not scrape Maps.
Pricing
from $1.60 / 1,000 processed websites
Rating
0.0
(0)
Developer
Yukai Lin
Maintained by CommunityActor stats
0
Bookmarked
82
Total users
33
Monthly active users
2 days ago
Last modified
Categories
Features
Share
input
Optional
The original input value (list line, dataset cell or row text); null on the one row of an input mistake.
inputIndex
Optional
Position of the website in the input (0, 1, 2 ...). Absent on rows not tied to one input item (input mistakes, skipped source rows).
url
Optional
The website's home URL that was read, or the PDF's URL on a PDF row (sourceType pdf); null on rows that did not read a website (invalid input, skipped rows, input mistakes, profile rows).
domain
Optional
The website's domain without the leading www., on rows that processed a website.
success
Required
true when the website was read: the row carries its contacts (bestEmail, emailsText, primaryPhone, socialProfiles, ...). false on every free row: failures (errorType, error), invalid input lines (errorType invalid_input), skipped rows (skipped) and social/platform profile rows. Rows with success:false are never charged.
charged
Optional
true only when the required contact was found: an email with requiredContact "email", otherwise an email, phone or social profile. false on every free row and on sites read without the required contact. In "emailRows" mode only the first row of a charged website says true (one charge per website).
errorType
Optional
Machine-readable reason on success:false rows: invalid_input (the line is not a website or domain: a free failure), no_website, platform_url, company_not_found, not_a_website (a social page given as the website), robots_disallowed, login_required, timeout, blocked, network, http_error, not_found, failed (unclassified failure), unexpected_error (internal exception while processing a website). Absent on success rows.
error
Optional
Human-readable failure text on success:false rows, always ending with "(not charged)". Absent on success rows.
networkFailure
Optional
Only on errorType network rows: dns_not_found (public DNS has no address for the domain: the website is gone, running it again will not help), dns_temporary (a DNS failure public DNS does not confirm), timeout, tls, connection_reset or other. These can pass in a later run, except an invalid HTTPS certificate (tls without retryable). The error text says which applies.
retryable
Optional
Present only when true: the website failed for a reason that may pass later (timeout, network, blocked, HTTP error, unexpected_error), so a later run may work. Absent on success rows and on failures with a final cause (invalid_input, no_website, not_found, ...); never read an absent retryable as false — check errorType instead.
httpStatus
Optional
HTTP status of the failed request, when the site answered; null otherwise. Absent on success rows.
businessName
Optional
Business name: the Google Maps place name (Maps dataset inputs) or the site's organization name; null when neither is known.
organizationName
Optional
Organization name from the website's own data (JSON-LD, Open Graph); null when the site does not say.
warning
Optional
Warning about the row's data, e.g. that the site redirected to another domain.
note
Optional
Explanation on rows that were not charged, not retried or duplicated (e.g. no email found, a row skipped because it already had one, a website read in an earlier run).
skipped
Optional
"has_email" on source rows skipped by onlyMissingEmail: not read, not charged.
platform
Optional
Platform id of a social or directory page given as the website (linkedin, facebook, google, yelp, tripadvisor, ...): returned as a profile, never crawled.
foundAnything
Optional
Whether anything usable was found on the website: an email, phone, social profile, listing contact or address (a site can be foundAnything and still not charged).
bestEmail
Optional
The best email found on the website (own-domain personal, then own-domain role, then free mail, then other); null when no email was found.
bestEmailType
Optional
Category of bestEmail: personal_company, role_company, free_mail or other_domain; null when there is no bestEmail.
bestEmailHasMx
Optional
Whether bestEmail's domain has mail (MX) records; null when there is no bestEmail.
primaryEmail
Optional
The site's own-domain email picked first (a role mailbox before a person's address); null when none was found.
emailsText
Optional
All emails found on the website, comma-separated (empty when none).
personalEmailsText
Optional
Personal (person) email addresses, comma-separated (empty when none).
roleEmailsText
Optional
Role mailbox addresses (info@, contact@, hello@, sales@, ...), comma-separated (empty when none).
primaryPhone
Optional
First phone number on the website (faxes excluded); null when none was found.
emailVerification
Optional
Only when verifyEmails is on: one syntax, MX and disposable-domain result per found email. mailboxChecked is always false; no SMTP probe or message is sent.
emailVerificationError
Optional
Present when optional email validation failed; no email-verified event is charged.
deepCrawlPages
Optional
Only when deepCrawl is on: number of additional successfully read pages, matching deep-crawl-page events after the effective date.
leaders
Optional
Only when includeLeaders is on ('sites' output): the website's decision makers, most senior first, each { personName, jobTitle, role (founder | employee | board), sourceUrl, email (the published address that spells their full name, else null), confidence, via }. Each is a leader-row event after its effective date.
rowType
Optional
Only when includeLeaders is on ('emailRows' output): "email" for a website's email rows, "leader" for its decision-maker rows.
personName
Optional
Decision-maker rows (rowType leader): the person's full name as written on the website.
jobTitle
Optional
Decision-maker rows (rowType leader): the job title as written on the website.
role
Optional
Decision-maker rows (rowType leader): founder, employee or board.
sourceUrl
Optional
Decision-maker rows (rowType leader): the page the person was found on.
leaderIndex
Optional
Decision-maker rows (rowType leader): position among the website's decision makers (0 = most senior).
leaderCount
Optional
Decision-maker rows (rowType leader): number of decision makers returned for the website.
leadScore
Optional
Free lead score 0-100 on rows with success:true (absent on free failure rows): how complete the contact data is, or with the "icp" input 60% fit (preferred roles, keywords, countries) and 40% completeness; 0 when an email or phone the icp requires is missing. Uses only data already read; never affects charges.
scoreReasons
Optional
Why the row got its leadScore, "; "-separated (e.g. "sales@acme.com matches preferred role sales; email (role company) +40; phone +20").
address
Optional
Postal address as one line, from the site's own data; null when not given.
contactFormUrl
Optional
URL of the site's contact form, when one was found.
placeId
Optional
Google Maps place id, on rows that came from a Maps dataset; null when the input had none.
placeName
Optional
Place name from the Google Maps input row; null when absent.
placeAddress
Optional
Place address from the Google Maps input row; null when absent.
placePhone
Optional
Place phone from the Google Maps input row; null when absent.
placeCategory
Optional
Place category from the Google Maps input row; null when absent.
category
Optional
Place category in the optional Maps place view.
website
Optional
Business website supplied by the Maps source, in the optional place view.
emails
Optional
Emails found on the website, in the optional Maps place view.
phones
Optional
Maps listing phone and phones found on the website; listing phone alone does not cause a charge.
sourceIndex
Optional
Zero-based position of the original Maps place.
mapsUrl
Optional
Google Maps link of the place, from the input row; null when absent.
Optional
"emailRows" mode: the email of this row; null on the one row of a site that had only phones or social profiles. On a decision-maker row (rowType leader): the published address that spells the person's full name, else null.
confidence
Optional
Decision-maker rows (rowType leader): high (structured data, people cards, embedded CMS data) or medium (prose, AI answer checked against the page).
isBestEmail
Optional
"emailRows" mode: whether email is the website's bestEmail; null on rows saved by older runs.
emailType
Optional
"emailRows" mode: "personal" or "role"; null when unknown.
emailHasMx
Optional
"emailRows" mode: whether the email's domain has mail (MX) records; null when unknown.
emailFreeMail
Optional
"emailRows" mode: whether the address is on a free mail provider (gmail.com, ...); null when unknown.
emailSameDomain
Optional
"emailRows" mode: whether the email is on the website's own domain; null when unknown.
duplicateEmail
Optional
"emailRows" mode: whether the same email was also found on another website in this run.
emailFoundOn
Optional
"emailRows" mode: URL of the page the email was found on; null when it came from user input.
emailStatus
Optional
On rows that came from a source record (dataset or "rows" input) with an email column: new_email, no_email_found, already_had_email (not read, not charged) or not_read (the website failed).
source
Optional
Kept fields of the source record (datasetKeepFields), when the input was a dataset or "rows".
emailDetails
Optional
Where each email was found and how: [{ email, page, method, emailType?, mailbox?, sameDomain?, hasMx?, ... }].
phoneDetails
Optional
Where each phone number was found and how: [{ number, type, page, method, ... }].
organization
Optional
Organization details from the site's own data ({ name, legalName, type, url, page }); null when none.
companyIdentifiers
Optional
Register and tax numbers the website itself states on the pages read (Impressum, mentions légales, aviso legal, footer), each right after its label: deHandelsregister (HRB/HRA, with registerCourt), deVatId (USt-IdNr), frSiren, frSiret, frRcs (with city), esNif (NIF, or CIF as the page says). Each { country, type, value, raw (the text read), sourceUrl (the page), status "ok" }; two different values on the site, or one with the wrong format or check digit, give { value: null, status "review", reason, candidates }. Numbers of the web host, agency, data-protection officer or general partner are left out. Not looked up in any register. null when none is stated. Never affects charges.
pagesChecked
Optional
Pages read for the website: [{ url, kind, via, httpStatus }].
via
Optional
Route that read the site's home page: backend, direct, vm, browser or warp (the one retry of a refused website through our WARP network). On a PDF row: pdf-text-layer, pdf-ocr or pdf-text-layer+ocr. On a decision-maker row (rowType leader): how the person was found (jsonld, embedded, card, text or ai).
sourceType
Optional
website or pdf: what the row was read from. A link to a PDF (a path ending in .pdf, or a page given in the input that turned out to be a PDF) is read as a document; its row has the same contact columns as a website row.
pdfPage
Optional
PDF rows: page number (from 1) of the first contact found; in "emailRows" mode, the page of that row's email. null when the PDF has no contact.
pdfPageCount
Optional
PDF rows: number of pages in the PDF.
pdfPagesRead
Optional
PDF rows: pages with readable text (text layer or OCR).
pdfOcrPages
Optional
PDF rows: scanned pages read by OCR (at most maxPdfOcrPages per PDF).
pdfPagesNotRead
Optional
PDF rows: pages not read because of maxPdfPages or the OCR page limit (see pdfNote).
pdfNote
Optional
PDF rows: which pages were not read and why.
emailContext
Optional
"emailRows" mode, PDF rows: the text line around the email in the PDF (in a directory usually the company or person it belongs to).
discoveredFrom
Optional
PDF rows for a link without .pdf that answered with a PDF while its website was read: the input line it came from.
checkedAt
Optional
When the website was read (ISO 8601 timestamp).
socialProfiles
Optional
Social profiles found, e.g. { "instagram": "https://..." }; empty object when none.