Ultimate Leads — Get Everything with 1 keyword
Pricing
from $8.12 / 1,000 results
Ultimate Leads — Get Everything with 1 keyword
One Apify run: B2B sites + Google Maps + deep contacts, merged by domain. Keywords + ISO country; city or top-city lists (50+ countries). Toggle B2B/Maps/contact. Residential proxy recommended. One JSON dataset via API—no wiring 3 Actors. Pay per run. Export CSV/JSON from the dataset.
Pricing
from $8.12 / 1,000 results
Rating
0.0
(0)
Developer
Rémi Pelloux
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Ultimate Leads — B2B Lead Generator API: URLs + Google Maps + Emails + Phones + Scoring
Your competitors are already automating lead generation. Every hour you spend manually chaining scrapers, deduplicating spreadsheets, and enriching contacts is an hour they're closing deals. Ultimate Leads does it all in a single API call.
One Apify run. One merged dataset. Enter keywords + optional country / city → get B2B company websites, Google Maps businesses, and deep contact data (emails, phones, 14 social platforms, lead scores, tech stack, WHOIS) — merged by domain, deduplicated, ready to import.
No installation. No Docker. No chaining three scrapers. You pay for runs and download JSON, CSV, or Excel from the dataset.
What makes this different from every other scraper
| Ultimate Leads | Running 3 Actors yourself | Clay / Apollo / ZoomInfo | |
|---|---|---|---|
| Setup time | 30 seconds | Hours of orchestration | Account + onboarding |
| Data sources | B2B search + Google Maps + website crawl | You wire each separately | Their database only |
| Merge | Automatic by domain | You build dedup logic | Pre-merged (limited) |
| Geo coverage | 50+ countries, auto top cities | You maintain city lists | Varies |
| Cost per 1,000 leads | ~$15 | $5–15 + your time | $50–500+ |
| API access | Full REST API, webhooks, Make/n8n/Zapier | 3 separate APIs | Varies |
You're not just buying data — you're buying back the 10+ hours per week you waste on manual prospecting.
Start in 30 seconds
From Console
- Open this Actor → fill keywords + country → click Start.
- When done: Dataset → export JSON / CSV / Excel.
From API
- Get API token.
POSTrun with input JSON → poll untilSUCCEEDED→GET /v2/datasets/{id}/items.
Webhooks, Make, n8n, Zapier — all supported. API docs.
How it works (3-stage pipeline)
Keywords + Location↓┌───────────────────┐ ┌────────────────────┐│ B2B URL Discovery │ │ Google Maps Scraper ││ (4 search engines)│ │ (Puppeteer browser) │└────────┬──────────┘ └─────────┬──────────┘└──────────┬──────────────┘↓┌──────────────────┐│ Merge by domain │└────────┬─────────┘↓┌──────────────────┐│ Contact enrichment││ (emails, phones, ││ socials, scoring) │└────────┬─────────┘↓┌──────────────────┐│ Merged JSON dataset││ (one row = one co.)│└──────────────────┘
Input JSON
Only keywords is required. Set maxResults to cap output (e.g. 50 or 100); default 0 = unlimited.
Full example — France, all stages:
{"keywords": ["plumber", "heating engineer"],"country": "fr","maxResults": 0,"maxCitiesPerCountry": 20,"enableB2b": true,"enableMaps": true,"enableContact": true,"maxCrawledPlacesPerSearch": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Quick test — 50 leads from India:
{"keywords": ["software company"],"country": "in","maxResults": 50}
Broad sweep — Turkey, unlimited:
{"keywords": ["export manufacturer"],"country": "tr"}
Single city:
{"keywords": ["industrial supplier"],"locationQuery": "Lyon, France","maxResults": 100}
All input fields
| Field | Default | What it does |
|---|---|---|
keywords | required | Search terms for B2B and Maps |
maxResults | 0 (unlimited) | Cap total merged leads in the dataset |
country | "" | ISO alpha-2 code (fr, us, de, in, tr…) |
city | "" | Single city; if empty → auto top cities |
maxCitiesPerCountry | 20 | How many cities when city is empty (1–30) |
locationQuery | "" | Override: e.g. Paris, France |
enableB2b | true | Toggle B2B URL discovery |
enableMaps | true | Toggle Google Maps scraping |
enableContact | true | Toggle deep contact crawl |
mapsScrapeContacts | auto | Maps website scraping (off when contact is on) |
maxResultsPerKeyword | 0 | Cap B2B URLs per keyword |
maxCrawledPlacesPerSearch | 50 | Maps places per search string |
maxPagesPerDomain | 5 | Contact pages crawled per site |
maxConcurrencyContact | 15 | Parallel contact crawls |
verifyEmails | true | MX/SMTP email verification |
skipLeadScoring | false | Skip 0–100 lead scoring |
skipWhois | false | Skip WHOIS lookup |
minScore | 0 | Drop leads below this score |
proxyConfiguration | Residential | RESIDENTIAL strongly recommended |
What you get per lead (merged JSON)
Every row is one company — B2B + Maps + contact data collapsed into a single object:
| Field | Source | What's inside |
|---|---|---|
domain | merge | Normalized canonical domain |
sources | merge | Which stages contributed (b2b, maps, contact) |
b2b | B2B | URL, keyword, page title, search sources |
maps | Maps | Business name, phone, address, GPS, placeId, rating |
contact.emails | Contact | All discovered email addresses |
contact.phones | Contact | International-formatted phone numbers |
contact.socialLinks | Contact | 14 platforms: LinkedIn, Facebook, Instagram, Twitter/X, WhatsApp, Telegram, YouTube, GitHub, TikTok, Pinterest, Discord, Snapchat, Reddit, Threads |
contact.score | Contact | 0–100 lead quality score |
contact.grade | Contact | A / B / C / D / F |
contact.businessIndustry | Contact | Auto-classified industry (30 categories) |
contact.techSignals | Contact | CMS, analytics, chat tools detected |
contact.whois | Contact | Registrar, creation date, expiration |
Example:
{"schemaVersion": "1.0.0","mergedAt": "2026-03-24T12:00:00.000Z","domain": "example.com","canonicalUrl": "https://example.com/","sources": ["b2b", "maps", "contact"],"b2b": {"domain": "example.com","url": "https://example.com","keyword": "plumber Paris, France","pageTitle": "…"},"maps": {"name": "Example Plumbing","phone": "+33 1 23 45 67 89","website": "https://example.com","placeId": "ChIJ…","latitude": "48.856614","longitude": "2.352222"},"contact": {"emails": ["hello@example.com", "contact@example.com"],"phones": ["+33 1 23 45 67 89"],"socialLinks": { "linkedin": "https://linkedin.com/company/…", "facebook": "https://facebook.com/…" },"score": 82,"grade": "A","businessIndustry": "construction"}}
Real numbers from real runs
| Run | Keywords | Country | Results | Time | Stages |
|---|---|---|---|---|---|
| Test | plumber | FR (20 cities) | 487 merged leads | ~8 min | All 3 |
| Test | software company | IN (20 cities) | 612 merged leads | ~12 min | All 3 |
| Quick | dentist | US + New York | 93 merged leads | ~3 min | All 3 |
| Maps only | restaurant | Paris, France | 198 places | ~4 min | Maps only |
Who is this for?
Sales teams — Stop spending 2 hours per day on manual prospecting. One run = hundreds of verified leads with emails, phones, and socials.
Agencies — Deliver lead lists to clients in minutes, not days. Map + web + contact data in one export. Charge your clients, pay $15/1,000 leads.
Developers — REST API, webhooks, JSON. Plug into your product, CRM, or automation stack with zero friction.
Founders — Validate markets across 50+ countries before writing a single line of outreach. 100 leads for under $2 — cheaper than a coffee.
Pricing
Pay per merged lead in the dataset. See this Actor's Apify Store page for exact prices.
| What | Typical price |
|---|---|
| Per merged lead | ~$0.015 |
| 1,000 leads | ~$15 |
| Quick test (50 leads) | < $1 |
Set maxResults to control spend precisely. Start with 50 to test, then scale.
Proxy
Residential Apify Proxy required for reliable B2B and Maps results. Datacenter IPs get throttled. Always set:
"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}
FAQ
How do I limit the number of results?
Set maxResults to any number (e.g. 50, 100, 500). Default 0 = unlimited.
What's the minimum input?
Just keywords. Everything else defaults.
Can I run only Maps or only B2B?
Yes. Set enableB2b, enableMaps, or enableContact to false.
How do I target one city?
Set country + city (e.g. fr + Lyon).
Which countries have auto city expansion? 50+ ISO codes: FR, US, GB, DE, IN, TR, ES, IT, BR, MX, CA, AU, JP, KR, NL, BE, CH, AT, PT, PL, SE, NO, DK, FI, IE, CZ, RO, GR, ZA, NZ, SG, AE, SA, AR, CL, CO, MA, TN, EG, NG, KE, CN, HK, TW, UA, HU, SK, HR, IL, LU.
What if mapsScrapeContacts is on AND enableContact is on?
You'll crawl some sites twice. Leave it off (default) when contact is enabled.
Is the data GDPR-compliant? You are responsible for lawful use. All data is publicly available on business websites and Google Maps.
Can I integrate without code? Yes — use Make, n8n, Zapier, or export directly from Console.
Related Actors by Leadsit
Need just one step? Use our standalone Actors:
- B2B Company URL Finder — keywords → company URLs ($2/1,000)
- Google Maps Scraper with Emails & Social — map listings + emails + socials ($1.50/1,000)
- Website Contact Scraper — URLs → emails, phones, 14 socials, scoring ($2.50/1,000)
Ultimate Leads = all three, merged, one run, one dataset.
Built by Leadsit.eu — B2B lead generation tools for modern sales teams.
Keywords: b2b lead generation api, google maps scraper with emails, bulk email finder, company url finder, lead enrichment tool, b2b prospecting automation, apify lead scraper, google maps business extractor, website contact scraper, sales prospecting api, lead scoring tool, bulk company data extraction, b2b data provider api, google maps email extractor, business lead generator