Apollo.io is one of the best B2B lead databases out there — 275 million contacts, 73 million companies, verified emails, direct dials, and intent data. Their paid plans start at $99/month.
If you're building a sales tool, a lead enrichment pipeline, or a prospecting automation — you don't need to pay Apollo's full subscription price to access that data. You need a scraper.
I've built and maintain a hosted Apollo Lead Scraper API that pulls public lead data from Apollo. Here's how it works.
API Link: Apollo Lead Scraper API on RapidAPI
What It Returns
{
"success": true,
"query": "software engineer San Francisco",
"count": 25,
"data": [
{
"name": "Jane Smith",
"title": "Senior Software Engineer",
"company": "Acme Corp",
"location": "San Francisco, CA",
"linkedin": "https://linkedin.com/in/janesmith",
"email": "j.smith@acmecorp.com",
"companySize": "201-500",
"industry": "Software Development",
"companyUrl": "https://acmecorp.com"
}
]
}
Quick Start
const axios = require('axios');
async function scrapeApolloLeads(query, options = {}) {
const response = await axios.get(
'https://apollo-lead-scraper.p.rapidapi.com/search',
{
params: {
q: query,
limit: options.limit || 25,
title: options.title || '',
location: options.location || '',
industry: options.industry || ''
},
headers: {
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'apollo-lead-scraper.p.rapidapi.com'
}
}
);
return response.data;
}
// Get CTOs at SaaS companies in New York
const leads = await scrapeApolloLeads('CTO SaaS New York', {
title: 'CTO',
location: 'New York',
limit: 50
});
Use Cases
1. Targeted Cold Outreach List
Build a highly targeted prospect list for your ICP:
async function buildProspectList(criteria) {
const { title, industry, location, companySize } = criteria;
const query = `${title} ${industry} ${location}`;
const results = await scrapeApolloLeads(query, { limit: 100 });
// Filter by company size if needed
return results.data.filter(lead =>
!companySize || lead.companySize === companySize
);
}
// Example: VP of Sales at mid-market SaaS companies in Texas
const prospects = await buildProspectList({
title: 'VP Sales',
industry: 'SaaS',
location: 'Texas',
companySize: '51-200'
});
2. Lead Enrichment
Enrich your existing contact list with additional data:
async function enrichContact(name, company) {
const results = await scrapeApolloLeads(`${name} ${company}`, { limit: 5 });
const match = results.data.find(lead =>
lead.company.toLowerCase().includes(company.toLowerCase())
);
return match || null;
}
// Enrich a CRM export
const enrichedContacts = await Promise.all(
crmContacts.map(c => enrichContact(c.name, c.company))
);
3. Company Employee Discovery
Find all relevant contacts at a target company:
async function getCompanyContacts(companyName, targetTitles) {
const results = await scrapeApolloLeads(companyName, { limit: 100 });
return results.data.filter(lead =>
targetTitles.some(title =>
lead.title.toLowerCase().includes(title.toLowerCase())
)
);
}
// Find decision makers at a target company
const decisionMakers = await getCompanyContacts('Acme Corp', [
'CEO', 'CTO', 'VP', 'Director', 'Head of'
]);
4. Market Mapping
Map the decision-making landscape in a specific market:
async function mapMarket(industry, roles) {
const allLeads = await Promise.all(
roles.map(role => scrapeApolloLeads(`${role} ${industry}`, { limit: 50 }))
);
const leads = allLeads.flatMap(r => r.data);
// Group by company
const byCompany = leads.reduce((acc, lead) => {
const key = lead.company;
if (!acc[key]) acc[key] = [];
acc[key].push(lead);
return acc;
}, {});
// Companies with multiple decision makers
return Object.entries(byCompany)
.filter(([, contacts]) => contacts.length >= 2)
.map(([company, contacts]) => ({ company, contacts }));
}
5. Sales Intelligence Pipeline
Combine Apollo leads with tech stack detection for hyper-targeted outreach:
async function buildIntelligentProspectList(query, requiredTech) {
const leads = await scrapeApolloLeads(query, { limit: 100 });
// Filter leads whose company uses specific tech
const enriched = await Promise.allSettled(
leads.data.map(async lead => {
if (!lead.companyUrl) return null;
const tech = await detectTechStack(lead.companyUrl); // Website Tech Detector API
const hasRequiredTech = tech.data.some(t => t.name === requiredTech);
return hasRequiredTech ? { ...lead, techStack: tech.data } : null;
})
);
return enriched
.filter(r => r.status === 'fulfilled' && r.value)
.map(r => r.value);
}
// Find React developers at companies using Shopify
const targets = await buildIntelligentProspectList('developer', 'Shopify');
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q |
string | Yes | Search query (name, title, company, location) |
title |
string | No | Filter by job title |
location |
string | No | Filter by location |
industry |
string | No | Filter by industry |
limit |
number | No | Results to return (1-100, default: 25) |
Pricing
| Plan | Requests/mo | Price |
|---|---|---|
| BASIC | 100 | Free |
| PRO | 5,000 | $9.99/mo |
| ULTRA | 25,000 | $29.99/mo |
| MEGA | 100,000 | $79.99/mo |
Combine with Other APIs for Maximum Power
The real leverage comes from combining data sources:
- Apollo Lead Scraper → get contacts + company URLs
- Website Tech Detector → qualify by tech stack
- Email Extractor → verify/supplement email data
- DuckDuckGo Search → research recent news about each company
That's a full lead intelligence pipeline for under $40/month combined.
Get Started
Subscribe to Apollo Lead Scraper API on RapidAPI →
Built by Donny Dev — see the full data API suite: DuckDuckGo Search · Email Extractor · Website Tech Detector · Shopee Scraper
Top comments (0)