Ultimate Leads — Get Everything with 1 keyword avatar

Ultimate Leads — Get Everything with 1 keyword

Pricing

from $8.12 / 1,000 results

Go to Apify Store
Ultimate Leads — Get Everything with 1 keyword

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

Rémi Pelloux

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

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 LeadsRunning 3 Actors yourselfClay / Apollo / ZoomInfo
Setup time30 secondsHours of orchestrationAccount + onboarding
Data sourcesB2B search + Google Maps + website crawlYou wire each separatelyTheir database only
MergeAutomatic by domainYou build dedup logicPre-merged (limited)
Geo coverage50+ countries, auto top citiesYou maintain city listsVaries
Cost per 1,000 leads~$15$5–15 + your time$50–500+
API accessFull REST API, webhooks, Make/n8n/Zapier3 separate APIsVaries

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

  1. Open this Actor → fill keywords + country → click Start.
  2. When done: Dataset → export JSON / CSV / Excel.

From API

  1. Get API token.
  2. POST run with input JSON → poll until SUCCEEDEDGET /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

FieldDefaultWhat it does
keywordsrequiredSearch terms for B2B and Maps
maxResults0 (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
maxCitiesPerCountry20How many cities when city is empty (1–30)
locationQuery""Override: e.g. Paris, France
enableB2btrueToggle B2B URL discovery
enableMapstrueToggle Google Maps scraping
enableContacttrueToggle deep contact crawl
mapsScrapeContactsautoMaps website scraping (off when contact is on)
maxResultsPerKeyword0Cap B2B URLs per keyword
maxCrawledPlacesPerSearch50Maps places per search string
maxPagesPerDomain5Contact pages crawled per site
maxConcurrencyContact15Parallel contact crawls
verifyEmailstrueMX/SMTP email verification
skipLeadScoringfalseSkip 0–100 lead scoring
skipWhoisfalseSkip WHOIS lookup
minScore0Drop leads below this score
proxyConfigurationResidentialRESIDENTIAL strongly recommended

What you get per lead (merged JSON)

Every row is one company — B2B + Maps + contact data collapsed into a single object:

FieldSourceWhat's inside
domainmergeNormalized canonical domain
sourcesmergeWhich stages contributed (b2b, maps, contact)
b2bB2BURL, keyword, page title, search sources
mapsMapsBusiness name, phone, address, GPS, placeId, rating
contact.emailsContactAll discovered email addresses
contact.phonesContactInternational-formatted phone numbers
contact.socialLinksContact14 platforms: LinkedIn, Facebook, Instagram, Twitter/X, WhatsApp, Telegram, YouTube, GitHub, TikTok, Pinterest, Discord, Snapchat, Reddit, Threads
contact.scoreContact0–100 lead quality score
contact.gradeContactA / B / C / D / F
contact.businessIndustryContactAuto-classified industry (30 categories)
contact.techSignalsContactCMS, analytics, chat tools detected
contact.whoisContactRegistrar, 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

RunKeywordsCountryResultsTimeStages
TestplumberFR (20 cities)487 merged leads~8 minAll 3
Testsoftware companyIN (20 cities)612 merged leads~12 minAll 3
QuickdentistUS + New York93 merged leads~3 minAll 3
Maps onlyrestaurantParis, France198 places~4 minMaps 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.

WhatTypical 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.


Need just one step? Use our standalone Actors:

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