Website Email Finder - Fill Missing Company Emails
Pricing
from $1.60 / 1,000 processed websites
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
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
- Paste rows with
WebsiteandEmailfields into Company rows with Website and Email columns. The first-run form has one public example row; replace it with your own company list. - 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.
- Run the Actor. The Company email fill overview view shows
input,businessName,domain,bestEmail,emailStatus,charged,errorType, anderror. Download the full JSON forrowIdandfill:fillsuggests 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:
| input | domain | bestEmail | emailStatus | charged | errorType |
|---|---|---|---|---|---|
| one.localhost | one.localhost | info@one-shop.com | new_email | true | |
| one.localhost | already_had_email | false | |||
| not a website | not_read | false | invalid_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_disallowederror. 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: falsemeans 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_inputrow with the defaultfindWebsitesForNames: 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.