VOOZH about

URL: https://apify.com/fermlisboa/whatsapp-maps-allinone

⇱ WhatsApp Maps Scraper - Business Leads via Google Maps · Apify


👁 WhatsApp Maps - All-in-One avatar

WhatsApp Maps - All-in-One

Pricing

from $0.01 / 1,000 results

Go to Apify Store

WhatsApp Maps - All-in-One

Search Google Maps by category and city, then automatically detect WhatsApp numbers from each business website. Get a ready-to-use lead list with name, address, phone, rating, and WhatsApp link — all in a single run.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

👁 Fernando Lisboa

Fernando Lisboa

Maintained by Community

Actor stats

1

Bookmarked

47

Total users

13

Monthly active users

3 months ago

Last modified

Share

Search Google Maps for businesses by category and city, then automatically detect WhatsApp numbers on their websites — all in a single run. Get a ready-to-use leads list with no manual steps.


What it does

This Actor combines two stages in one run:

Stage 1 — Google Maps Search Calls the Google Maps Scraper using your Apify token to fetch businesses matching your search query (e.g. "restaurantes em São Paulo"). Returns name, address, phone, website, rating, and more.

Stage 2 — WhatsApp Enrichment For every business that has a website, the Actor visits the page and scans it for WhatsApp contact information using four strategies, in order of reliability:

  1. Direct links — scans <a href> tags for wa.me/ or api.whatsapp.com/send?phone= links
  2. Meta tags — looks for WhatsApp numbers in <meta name="description"> and <meta property="og:description">
  3. Contact sections — searches visible text in footer, .contact, #contact, and elements with whatsapp in their class or id
  4. Full body fallback — scans the entire page body for any mention of "WhatsApp" or "Zap" followed by a phone number

All extracted numbers are validated against the E.164 standard (7–15 digits) to avoid false positives.


Input

Schema

FieldTypeRequiredDefaultDescription
searchQuerystringYesWhat to search on Google Maps (e.g. "restaurantes em São Paulo")
apifyTokenstringYesYour personal Apify API token — used to call Google Maps Scraper on your behalf
maxResultsintegerNo100Max number of places to fetch from Google Maps (1–1000)
maxConcurrencyintegerNo5Websites scraped in parallel during enrichment (1–20)
maxRetriesintegerNo2Retries per failed website request (0–5)
proxyConfigurationobjectNoApify ProxyProxy settings for the website enrichment phase

Where to find your Apify token

  1. Log in at console.apify.com
  2. Click your avatar → SettingsIntegrations
  3. Copy the Personal API token
  4. Paste it into the apifyToken field

The token is stored encrypted and never exposed in logs or outputs.

Input example

{
"searchQuery":"dentistas em Curitiba",
"apifyToken":"apify_api_xxxxxxxxxxxxxxxxxxxx",
"maxResults":200,
"maxConcurrency":5,
"maxRetries":2,
"proxyConfiguration":{
"useApifyProxy":true
}
}

Search query tips

  • Use the format "category in city" for best results
  • Write in the local language for more accurate Maps results
  • Examples:
    • "clínicas veterinárias em Belo Horizonte"
    • "academias de ginástica em Fortaleza"
    • "lojas de roupa em Florianópolis"
    • "salões de beleza em Brasília"

Output

Each business produces one record in the dataset. Fields from Google Maps are preserved alongside the enrichment results.

FieldTypeDescription
namestringBusiness name from Google Maps
websitestringWebsite URL from Google Maps
phonestring | nullPhone from Google Maps
addressstring | nullFull address from Google Maps
categorystring | nullBusiness category from Google Maps
ratingstring | nullGoogle Maps rating score
placeIdstring | nullGoogle Maps unique place ID
googleMapsUrlstring | nullDirect link to the Google Maps listing
whatsappNumberstring | nullWhatsApp number in raw digits (e.g. 5511999990000)
whatsappLinkstring | nullClickable link (e.g. https://wa.me/5511999990000)
whatsappSource"href" | "text" | "meta" | nullWhere the number was found on the page
hasWhatsAppbooleantrue if a valid WhatsApp number was found — use to filter results
extractedPhonestring | nullAny phone number found on the website (fallback)
extractedEmailstring | nullAny email address found on the website
scrapedUrlstringExact URL that was scraped
httpStatusnumber | nullHTTP response code (e.g. 200, 403, 404)
scrapedAtstringISO 8601 timestamp of when the page was scraped
errorstringOnly present if the request failed after all retries

Output example

{
"name":"Pizzaria do João",
"website":"https://pizzariadojoao.com.br",
"phone":"+55 11 99999-0000",
"address":"Rua das Flores, 123 - Centro, São Paulo - SP",
"category":"Pizzaria",
"rating":"4.7",
"placeId":"ChIJN1t_tDeuEmsRUsoyG83frY4",
"googleMapsUrl":"https://www.google.com/maps/place/...",
"scrapedUrl":"https://pizzariadojoao.com.br",
"httpStatus":200,
"whatsappNumber":"5511999990000",
"whatsappLink":"https://wa.me/5511999990000",
"whatsappSource":"href",
"hasWhatsApp":true,
"extractedPhone":"(11) 99999-0000",
"extractedEmail":"contato@pizzariadojoao.com.br",
"scrapedAt":"2025-01-15T14:32:00.000Z"
}

Billing and costs

This Actor runs two paid operations under your Apify account:

OperationBilled to
Google Maps Scraper (Stage 1)Your account, via your apifyToken
WhatsApp website enrichment (Stage 2)Whoever runs this Actor

Estimated cost for 100 businesses:

  • Google Maps Scraper: ~$0.50–$1.00 (varies by plan and result count)
  • WhatsApp enrichment (Cheerio, no browser): ~$0.05
  • Total: ~$0.55–$1.05 per 100 results

Tip: Use maxResults to control how many places are fetched and keep costs predictable.


Proxy configuration

Using proxies is strongly recommended for large runs to avoid IP blocks on websites:

{
"proxyConfiguration":{
"useApifyProxy":true,
"apifyProxyGroups":["RESIDENTIAL"]
}
}

To use your own proxies:

{
"proxyConfiguration":{
"useApifyProxy":false,
"proxyUrls":[
"http://user:password@proxy1.example.com:8000"
]
}
}

Performance tips

  • Set maxConcurrency between 3 and 10 for most runs. Higher values are faster but increase the chance of rate limiting.
  • Set maxRetries to 2 or 3 to handle transient network errors without wasting credits on permanently unavailable sites.
  • Only businesses with a website listed on Google Maps are enriched. Businesses without a website are skipped automatically.

Limitations and known behavior

  • JavaScript-heavy websites — This Actor uses a fast HTML scraper (Cheerio). Websites that load WhatsApp buttons dynamically via JavaScript may not be detected.
  • Social media URLs — Instagram, Facebook, and similar platforms block automated scraping. If a business lists a social media URL as its website on Google Maps, it will return not found.
  • Google Maps Scraper timeout — Stage 1 waits up to 10 minutes for the Maps Scraper to finish. For very large queries (500+ results), consider increasing your Actor timeout in Settings.
  • Number formatwhatsappNumber returns digits only (e.g. 5511999990000), compatible with wa.me/ links. No dashes, spaces, or plus signs.

FAQ

Q: Do I need a paid Apify plan? A: Yes. The Google Maps Scraper is a paid actor. You need Apify credits to run it. The WhatsApp enrichment phase uses very few credits on top of that.

Q: Is my Apify token safe? A: Yes. The apifyToken field is marked as a secret — the Apify platform encrypts it at rest and never exposes it in logs, outputs, or the UI after you save it.

Q: The Actor found fewer results than maxResults — why? A: Google Maps may return fewer results than requested for a given query. This is normal. Try a broader query or split it into multiple runs by neighborhood or subcategory.

Q: A business has WhatsApp but it returned not found — why? A: This usually happens when the WhatsApp button is loaded by JavaScript after the initial page load. This Actor scrapes static HTML only.

Q: Can I use this for businesses outside Brazil? A: Yes. WhatsApp link detection works globally. The Brazilian phone regex used for the extractedPhone fallback is Brazil-specific, but whatsappNumber detection works for any country.

Q: How do I filter only businesses with WhatsApp? A: After the run, use the Filter option in the dataset view and set hasWhatsApp = true. You can also export to CSV and filter in Excel or Google Sheets.

You might also like

Apple Maps Scraper

lexis-solutions/apple-maps-scraper

Extract location, business, and point-of-interest data from Apple Maps—addresses, coordinates, contact details, images, reviews, amenities, business hours, and more. Ideal for mapping apps, travel platforms, and market intelligence. Fast, reliable, and fully customizable.

👁 User avatar

Lexis Solutions

30

5.0

Free Google Maps Scraper - Low-cost & Extensive

blueorion/free-google-maps-scraper-extensive

Reliable Actor to Extract Google Maps data using Free Credit or $3 per 1000 results. Extensive Data Outputs include `addresses`, `coordinates`, `reviews`, `menus`, `opening hours`, `gas station info`, `EV charging station info`, `tours and activities`, `admission and tickets`, and `hotel deals`

195

4.9

Whatsapp Scraper Profile By Number

antonio_cesar/whatsapp-scraper-profile

WhatsApp Scraper Profile By Number allows you to extract public profile information directly from a WhatsApp number.

👁 User avatar

Antônio César

266

5.0

Gsmarena Phones Scraper

fetchcraftlabs/gsmarena-phones-scraper

GSMArena scraper for smartphone specs, phone database extraction, and mobile device data collection. Scrape 5G phones, Android devices, Snapdragon models, AMOLED displays, battery capacity, camera specs, and release dates. Ideal for tech datasets, price comparison, and affiliate sites.

👁 User avatar

FetchCraft Labs

76

5.0

Anyphone - Mobile Phone Numbers

andrewthecube/anyphone0-2

Find any mobile phone number that is or was public through a methodic scouring of the internet.

👁 User avatar

Andrew Koumoudjian

62

GSMArena Phone Specs Scraper

shahidirfan/gsmarena-phone-specs-scraper

Extract detailed mobile phone specifications directly from GSMArena. This powerful tool gathers technical data, features, and prices for thousands of devices. Perfect for tech analysis and comparison databases. Residential proxies are highly recommended for optimal results.

👁 User avatar

Shahid Irfan

76

5.0

Extract Phone Numbers Contacts Socials From Any Website

scrapio/extract-phone-numbers-contacts-socials-from-any-website

📞🔍 Extract phone numbers, emails, contact details & social media links from any website in seconds. ⚡️ Scrapes tel, mailto, WhatsApp, LinkedIn, X/Twitter, Instagram & more; dedupes & validates. 📊 Export CSV/JSON, API-ready. 🚀 Ideal for lead gen, sales & CRM enrichment.

Mobile Phone Specs

making-data-meaningful/mobile-phone-specs-database

Access our comprehensive mobile phone specifications database via our fast API, featuring over 10,000 models with details like dimensions, display, processor, and camera. Each model includes technical information and an image, helping consumers compare and choose the right phone

327

5.0

🕵️ WhatsApp Status Spy | Secretly Scrape Any Status

clearpath/whatsapp-status-scraper-api

View and download WhatsApp status updates from any contact without them knowing. No read receipts, no "seen" notification. Download photos, videos, and text statuses secretly. Scan QR once, then runs automatically. Perfect for checking on someone discreetly.

72