Find public role emails (sales@, press@, support@) on a company website without guessing
Short answer: do not guess sales@company.com. Companies publish the shared inbox they want you to use, usually in the footer, the contact, about or press page, the impressum or legal notice, the privacy policy, or /.well-known/security.txt. Check those pages, copy the address exactly as shown, and note the page you found it on. For tens or hundreds of sites, paste the homepages into a contact scraper on Apify with personal emails switched off and robots.txt respected, then export the role inboxes to CSV. Use them for one-to-one messages that fit the inbox, not bulk cold email.
Why guessing is a bad idea
- It bounces. Many companies have no
sales@, or route it to a ticket system with a different address. Bounced mail hurts your own sender reputation. - It lands in the wrong place. A press question sent to
support@gets a ticket number, not a reply. - It is unnecessary. If a company wants to hear from buyers, journalists or partners, it says where. Your job is to find that, not to invent it.
Step 1: decide which inbox you actually need
| Your reason for writing | Inbox names companies often use | Where it is usually published |
|---|---|---|
| Buy, wholesale, quote | sales@, orders@, b2b@, wholesale@ | Contact page, footer, "For business" page |
| Story, interview, media kit | press@, media@, pr@ | Press or newsroom page, about page |
| Partnership, reseller, integration | partners@, partnerships@, bd@ | Partners page, about page |
| Problem with an order or product | support@, help@, care@ | Help centre, contact page, order emails |
| Data protection request | privacy@, dpo@, dataprotection@ | Privacy policy |
| Security vulnerability | security@ | /.well-known/security.txt, security page |
| General enquiry | info@, hello@, contact@ | Footer, contact page, impressum |
Step 2: check the pages where companies publish inboxes
- Footer of the homepage: many small companies list one general inbox there.
- Contact page (
/contact,/contact-us,/kontakt): often split by department. - About and press pages: press and partnership inboxes usually live here.
- Impressum or legal notice (
/impressum,/legal,/mentions-legales): companies in Germany and Austria, for example, are generally required to publish an electronic contact address here. - Privacy policy: under GDPR the controller's contact details must be given, so a privacy or data protection inbox often appears here.
/.well-known/security.txt: a small text file (standard RFC 9116) with aContact:line for security reports. Use it only for security issues.- Careers page: a jobs@ or careers@ inbox, only for applications.
Two quick tricks: press Ctrl+F and search for @ on each page, and hover over "Email us" buttons to see the mailto: address behind them. Some sites show a form only; in that case the form is the published channel, so use it.
Step 3: write down only what is published
Keep a small sheet with one row per company:
| Company site | Role inbox | Purpose | Found on | Checked |
|---|---|---|---|---|
| example-brand.com | sales@example-brand.com | Wholesale | example-brand.com/contact | 14 Oct 2026 |
| example-saas.io | press@example-saas.io | Media | example-saas.io/press | 14 Oct 2026 |
The "found on" column matters: it is your proof that the company published the address, and it lets you re-check later if the page changes. If the only address you can find is a person's name (for example firstname.lastname@), leave it out of this sheet. That is personal data and needs a separate, lawful reason.
Step 4: for a list of sites, run a contact scraper on Apify
Checking by hand is fine for five companies. For fifty, a contact-details Actor visits each homepage plus a few contact-like pages and collects the published addresses for you.
- Create a free Apify account (no card needed for the free plan; see apify.com/pricing for the current monthly free usage).
- Open the Contact Details Scraper: Emails, Phones, Socials and click Try for free. Current pricing is shown on that Store page.
- Paste your company homepages. In JSON view a privacy-safe input looks like this:
{
"urls": ["example-brand.com", "example-saas.io"],
"maxPagesPerSite": 4,
"includePersonalEmails": false,
"includePersonProfiles": false,
"respectRobotsTxt": true,
"respectTermsOfService": true,
"checkEmailMx": true,
"defaultCountry": "IN"
}
includePersonalEmails: false(the default) keeps only shared role mailboxes such as info@, sales@ and support@. Addresses that identify one person are dropped and only counted.maxPagesPerSite: 4reads the homepage plus the most contact-like pages (contact, about, impressum, support). That is where role inboxes live, so more pages rarely add much.respectRobotsTxtandrespectTermsOfServicemake the Actor skip pages a site disallows for bots and sites whose terms forbid automated access. Leave both on.checkEmailMxruns a free DNS check that the email's domain can receive mail.- Set
defaultCountryto your own country code so local phone numbers are read correctly.
Click Save & Start. You get one row per website with the emails found, the page each was found on, phones, social links and a status. Sites that blocked crawling come back as blocked-by-robots or blocked-by-terms: respect that and use the manual checklist or the site's contact form instead of trying another tool to get round it.
Already have a Google Maps or other business dataset on Apify? Pass its dataset ID instead of URLs; see enrich a Google Maps Apify dataset with emails and phones.
Step 5: check the result and use it one to one
- Export the dataset as CSV and open it next to your sheet from Step 3. Keep the page URL for every address.
- Drop anything that failed the MX check, and anything that looks like a person rather than a team.
- Pick one inbox per company that matches your reason for writing (Step 1). Do not send the same message to info@, sales@ and support@ at once.
- Write a short, specific, one-to-one message. A role inbox is not permission to add a company to a newsletter or a bulk sequence.
Common mistakes
- Treating the privacy@ or security@ inbox as a sales channel. Those exist for data requests and vulnerability reports only.
- Scraping marketplaces or social networks for seller contacts. Their terms usually forbid it; the Actor above skips them by design.
- Keeping an old list for months. Inboxes change; re-check the "found on" page before you write.
You do not need to buy anything. For a handful of companies, Steps 1–3 and a browser are enough. For a long list, any reputable contact scraper that respects robots.txt will do the same job. The Actor linked here is ours, which is why we used it in the example.
This guide is general information, not legal advice. Rules on contacting businesses by email (for example GDPR and ePrivacy rules in the EU, the UK's PECR, CAN-SPAM in the US and India's DPDP Act) differ by country and by purpose. The Actor reads only public pages, uses an honest bot User-Agent, follows robots.txt, never logs in and never gets around blocks. You are responsible for how you use the data and for following each site's terms and your local law.
Related guides
- Enrich a Google Maps Apify dataset with emails and phones
- Contact Details Scraper: what it does and when to use it
- Copy-paste inputs for the Contact Details and Product scrapers
- Build a weekly competitor price sheet from Shopify stores (uses our E-commerce Product Scraper)
Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.