Website Email Finder - Fill Missing Company Emails avatar

Website Email Finder - Fill Missing Company Emails

Pricing

from $1.60 / 1,000 processed websites

Go to Apify Store
Website Email Finder - Fill Missing Company Emails

Website Email Finder - Fill Missing Company Emails

Fill missing Email cells in a company list that already has Website and Email columns. Read public company websites, keep source row IDs, and charge only sites where an email is found. No email verification or person lookup.

Pricing

from $1.60 / 1,000 processed websites

Rating

0.0

(0)

Developer

Yukai Lin

Yukai Lin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Website Email Finder — Fill Missing Company Emails

What does Website Email Finder do?

Fill empty Email cells in a company list that already has Website and Email columns. This focused form uses the existing Website Email Extractor engine to read the public company websites you provide. It returns one Dataset row per source row by default, so you can match results back to your list. It does not find a person's email from a name or LinkedIn profile, and it does not verify deliverability.

How to use

  1. Paste rows with Website and Email fields into Company rows with Website and Email columns. The first-run form has one public example row; replace it with your own company list.
  2. Keep Only fill missing Email cells on. A row whose Email field already contains an address is skipped without reading its website or charging you. Email only billing, one-row-per-source-row output, and robots.txt respect are the other defaults.
  3. Run the Actor. The Company email fill overview view shows input, businessName, domain, bestEmail, emailStatus, charged, errorType, and error. Download the full JSON for rowId and fill: fill suggests values only for empty source columns, so existing Email values are not overwritten.

Input example

{
"rows": [
{"row_number": 1, "Website": "hofbraeuhaus.de", "Email": ""},
{"row_number": 2, "Website": "hofbraeuhaus.de", "Email": "existing@example.org"}
],
"onlyMissingEmail": true,
"requiredContact": "email",
"outputMode": "sites",
"findWebsitesForNames": false,
"respectRobotsTxt": true,
"roleEmailsOnly": false
}

Other inputs

You may instead use datasetId for an existing company dataset or domains for a plain website list. Only fill missing Email cells skips filled Email fields in rows or dataset records; a plain domain list has no Email column and its sites are still processed. The advanced JSON interface retains the engine's other inputs, including startUrls, name lookup, role-only email output, and other output modes. Those settings follow the engine's behavior and the same per-site price.

Output example

Illustrative values, assuming a listed public company site publishes info@one-shop.com:

inputdomainbestEmailemailStatuschargederrorType
one.localhostone.localhostinfo@one-shop.comnew_emailtrue
one.localhostalready_had_emailfalse
not a websitenot_readfalseinvalid_input

The full JSON has the source row identifier and, for the first row, a suggested fill.Email. The already-filled row has skipped: "has_email" and no website read. A duplicate or skipped source row is not charged merely because another row names the same site. The overview and CSV view show only their declared columns; get rowId and fill from full JSON.

Pricing

The existing site-processed event and engine price apply: $0.002 per qualifying website on Free/Bronze, $0.0018 on Silver, and $0.0016 on Gold and above. With the default requiredContact: "email", a site is charged only when an email is found. A site with only a phone or social profile, a source row that already has Email, an invalid name or URL, a disallowed home page, or a login page is free (charged: false). Multiple source rows for the same company site follow the engine's deduplication rules; there is no charge for every row. Set a maximum run cost in Apify before a large list.

Limitations

  • Only public pages on company websites you supply are read. Requests identify as TidyTools. The default follows robots.txt; a home page disallowed for the crawler returns a free robots_disallowed error. The Actor does not log in, use private sessions, solve CAPTCHAs, bypass blocks, or use stealth techniques.
  • It does not scrape LinkedIn profiles, build lists around individual people, guess addresses, or check whether an email can receive messages. roleEmailsOnly: false means published addresses that look like a person's name may appear; use the results responsibly.
  • A company name without a website is a free invalid_input row with the default findWebsitesForNames: false. Advanced JSON can override this and other defaults; results then follow the engine's rules.
  • Follow applicable data-protection and anti-spam laws, honor opt-out requests, and respect website terms. Keep only the contact data you need.

FAQ

Will an existing Email value be replaced? No. With the default onlyMissingEmail: true, source rows with an email are skipped. The full JSON fill object offers values only for empty columns.

Can I paste just domains? Yes. domains remains available, but those entries have no existing Email column to test, so the Actor processes them.

Is each source row charged? No. Billing uses the engine's per-website site-processed event and deduplication. A filled-email row is free; a site without a found email is free in the default mode.