How to find a contact email for a list of company websites (free Python script, no API keys)
Disclosure: I build and sell a paid Apify Actor that automates this workflow. It's mentioned at the end as one option. Everything else here works with free tools. This article was drafted with AI assistance; the code was tested on Oct 27, 2026. You have a list of 200 company websites from a conference, a directory or a spreadsheet, and you need one contact email for each. Doing it by hand means…
To locate a contact email for a list of company websites, a free Python script can be employed without the use of API keys. This process can be completed in a matter of minutes for 200 sites, as opposed to manually searching for contact information, which could take hours. Most small and mid-size companies display their contact address on their website, typically on one of four pages: the homepage footer, /contact, /about, or /impressum in Europe.
The script begins by fetching the homepage of each domain. It then scans the same site for links containing words like contact, kontakt, impressum, about, team, or support. Up to four such links are retrieved with a one-second pause between requests to avoid overloading the server. Emails are extracted from these links in three formats: plain text, mailto: links, the name [at] domain [dot] com style, and Cloudflare's data-cfemail protection.
The script filters out any addresses that do not belong to the company's own domain to prevent the inclusion of agency or plugin emails. Each extracted email is flagged as either a role address (info@, hello@, sales@, etc.) or a personal address (jane@) to help users decide how to utilize the information. The results are saved in a CSV file named contacts.csv.
This script employs the standard library in Python, including modules such as csv, re, sys, time, urllib.parse, urllib.request, and html.unescape, without the need for additional keys or a browser. The code was last tested on October 27, 2026.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.