Email discovery is one of those tasks that sounds simple until you actually build it.
You think: "I'll just fetch the page and regex for emails." Then reality hits — JavaScript-rendered pages, mailto links, obfuscated addresses, contact forms, multi-page crawls. What should be a 10-minute task becomes a weekend project.
I've built and maintain a hosted Email Extractor API that handles all of this for you. One endpoint, clean JSON, deployed and reliable.
What It Does
Send any URL. Get back every email address found on that page.
GET /search?url=https://example.com
{
"success": true,
"url": "https://example.com",
"count": 3,
"data": [
"contact@example.com",
"sales@example.com",
"support@example.com"
]
}
That's it.
API Link: Email Extractor API on RapidAPI
Why Use a Hosted API vs Rolling Your Own
Here's what a reliable email extractor actually needs to handle:
- Static HTML emails — the easy case (regex works here)
-
Mailto links —
<a href="mailto:...">— need HTML parsing - JavaScript-rendered content — emails loaded via JS, invisible to a simple fetch
-
Obfuscated addresses —
name [at] domain [dot] com— need pattern matching - Pagination — contact info on a different page
- Rate limiting + retries — getting blocked when crawling multiple sites
The hosted API handles all of this. You don't manage infrastructure, proxies, or maintenance when sites change.
Quick Start
Subscribe on RapidAPI
Get your API key at Email Extractor API — BASIC plan is free.
JavaScript / Node.js
const axios = require('axios');
async function extractEmails(url) {
const response = await axios.get(
'https://email-extractor1.p.rapidapi.com/search',
{
params: { url },
headers: {
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'email-extractor1.p.rapidapi.com'
}
}
);
return response.data;
}
// Usage
const result = await extractEmails('https://company.com/contact');
console.log(result.data); // ['hello@company.com', 'sales@company.com']
Python
import requests
def extract_emails(url):
response = requests.get(
'https://email-extractor1.p.rapidapi.com/search',
params={'url': url},
headers={
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'email-extractor1.p.rapidapi.com'
}
)
return response.json()
result = extract_emails('https://company.com/about')
print(result['data'])
Real-World Use Cases
1. Lead Generation Pipeline
Build a lead scraper that takes a list of business URLs and returns contact emails:
async function buildLeadList(businessUrls) {
const leads = [];
for (const url of businessUrls) {
const result = await extractEmails(url);
if (result.success && result.count > 0) {
leads.push({
website: url,
emails: result.data,
foundAt: new Date().toISOString()
});
}
}
return leads;
}
2. Outreach Automation
async function enrichLeadWithEmail(lead) {
// Try homepage first, then contact page
const pages = [
lead.website,
`${lead.website}/contact`,
`${lead.website}/about`,
`${lead.website}/team`
];
for (const page of pages) {
const result = await extractEmails(page);
if (result.count > 0) {
return { ...lead, email: result.data[0], emailSource: page };
}
}
return { ...lead, email: null };
}
3. Competitor Research
async function getCompetitorContacts(competitors) {
const contacts = await Promise.all(
competitors.map(url => extractEmails(url))
);
return contacts.filter(c => c.count > 0);
}
4. Directory Scraping
If you're building a business directory tool, batch-extract emails from scraped business websites:
// After scraping business URLs from Google Maps, Yelp, etc.
const enrichedBusinesses = await Promise.allSettled(
businessUrls.map(async (url) => {
const emails = await extractEmails(url);
return { url, emails: emails.data };
})
);
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | Full URL to scan for emails |
Response Fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Request status |
url |
string | URL that was scanned |
count |
number | Number of emails found |
data |
array | List of email addresses found |
Pricing
| Plan | Requests/mo | Price |
|---|---|---|
| BASIC | 500 | Free |
| PRO | 10,000 | $9.99/mo |
| ULTRA | 50,000 | $29.99/mo |
| MEGA | 200,000 | $79.99/mo |
Common Questions
Does it work on JavaScript-rendered pages?
Yes — the API handles dynamic content loading.
What about email obfuscation?
The extractor handles common obfuscation patterns like name [at] domain [dot] com.
Will it crawl multiple pages?
The current endpoint scans the specified URL. For multi-page crawls, call it on each page (contact, about, team pages typically have the most emails).
What's the rate limit?
Depends on your plan — see pricing above. BASIC gives 500 requests/month free.
Get Started
Subscribe to Email Extractor API on RapidAPI →
Free plan available. No credit card required.
Built by Donny Dev — also check out DuckDuckGo Search API, Website Tech Detector API, and Apollo Lead Scraper API for more data tools.
Top comments (0)