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 for bulk domain lists: best email per site with MX check, phones and social links. Also adds emails to Google Maps results (does not scrape Maps itself). $2/1,000 sites; nothing found = free.
Pricing
from $1.60 / 1,000 processed websites
Rating
0.0
(0)
Developer
Yukai Lin
Maintained by CommunityActor stats
0
Bookmarked
42
Total users
19
Monthly active users
5 hours ago
Last modified
Categories
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; 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
Required
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. Absent on success rows.
error
Optional
Human-readable failure text on success:false rows, always ending with "(not charged)". Absent on success rows.
retryable
Optional
Present only when true: the website failed for a reason that may pass later (timeout, network, blocked, HTTP 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.
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.
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.
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).
checkedAt
Optional
When the website was read (ISO 8601 timestamp).
socialProfiles
Optional
Social profiles found, e.g. { "instagram": "https://..." }; empty object when none.