{"name":"google-maps-business-leads","id":"sfoln/google-maps-business-leads","title":"Google Maps Leads Scraper + Emails","description":"Scrape Google Maps business leads with emails: name, category, address, phone, rating and website of each place, the emails, phones and socials on its site, website signals and a 0–100 lead score with reasons. Optional email verification. $4 per 1,000 leads.","version":"0.1","status":"ready","family":{"id":"local-maps","name":"Local & maps","description":"Google Maps search and business profiles, lead lists enriched with website contacts, and local business audits.","actors":4},"categories":["LEAD_GENERATION","TRAVEL","SEO_TOOLS"],"availability":"on_request","seoTitle":"Google Maps Leads Scraper API – $4 per 1,000 Leads","seoDescription":"Google Maps leads with emails: places with phone, website and rating, the emails and socials on each site, website signals and a lead score. $4 per 1,000.","summary":"Turn a Google Maps search into a ready-to-use lead list: for every business found (\"roofing contractors Philadelphia\", \"coffee roasters in Portland\") the Actor takes the Google Maps data (name, category, address, phone, rating, website), visits the business website (homepage, plus one contact page if needed) and extracts emails, phone numbers and social profiles (Facebook, Instagram, LinkedIn, X/Twitter, YouTube, TikTok, Pinterest). Every lead is also qualified: website signals (HTTPS and certificate days left, mobile viewport, speed, CMS, booking and chat widgets, ad pixels, LocalBusiness data, how recently the site was updated), the listing's claimed status and photo count, phones in E.164, the e-mail domain's MX / SPF / DMARC setup and a 0–100 lead score with the reasons behind it (no website, outdated or insecure site, unclaimed listing, few reviews, not running ads). Optionally it verifies up to two emails per business at mailbox level, after a free local pre-check that drops dead domains, addresses that cannot receive mail and throw-away addresses without spending a verification. Built for agencies, B2B sales teams and AI agents that need contactable, qualified local businesses, not just map pins.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":1,"events":[{"name":"lead-business","title":"Business lead","description":"Charged once per business processed: Google Maps place data plus emails, phones and social links extracted from its website.","priceUsd":0.004},{"name":"lead-email-verified","title":"Verified lead email","description":"Charged once per email address verified at mailbox level (only when verifyEmails is on; at most 2 per business). Addresses the free local pre-check settles (invalid syntax, no such domain, no mail server, disposable) are not sent to the verifier and not charged.","priceUsd":0.004,"paidPlanOnly":true}]},"input":{"description":"Search Google Maps, then visit each business website to collect emails, phones and social links, audit the site and score the lead. One dataset record per business.","required":["queries"],"fields":[{"name":"queries","title":"Search queries","type":"array","required":true,"description":"Google Maps searches, one per line (e.g. \"roofing contractors\"). Override the location for a single query with \"query | location\". Accounts on the Apify free plan can process up to 1 query per run, limited to 10 businesses.","prefill":["coffee roasters in Portland"],"editor":"stringList"},{"name":"location","title":"Location","type":"string","required":false,"description":"Location name (\"Portland,Oregon,United States\"), numeric location code (2840 = United States) or \"latitude,longitude[,zoom]\". Leave empty for the whole United States.","prefill":"Portland,Oregon,United States","editor":"textfield"},{"name":"maxPlaces","title":"Max businesses per query","type":"integer","required":false,"description":"How many businesses to process (and pay for) per query, 1–100.","default":20,"prefill":5,"minimum":1,"maximum":100},{"name":"verifyEmails","title":"Verify emails","type":"boolean","required":false,"description":"Verify up to 2 found emails per business with a mailbox-level check (charged per verification as lead-email-verified), addresses on the business's own domain first. Stops at the first valid address. Paid plans only (turned off on the Apify free plan).","default":false},{"name":"followContactPage","title":"Also check the contact page","type":"boolean","required":false,"description":"If the homepage shows no email, fetch one contact/about page on the same site.","default":true},{"name":"auditWebsite","title":"Audit each website","type":"boolean","required":false,"description":"Add website signals to every lead (HTTPS and certificate days left, mobile viewport, speed, title and meta description, CMS, booking and chat widgets, ad pixels, LocalBusiness data, last-updated hints), the MX / SPF / DMARC setup of its domain, and use them in the lead score. Included in the lead price.","default":true},{"name":"languageCode","title":"Language code","type":"string","required":false,"description":"Language of the Google Maps results (ISO code such as en, de, es).","default":"en","editor":"textfield"},{"name":"maxQueries","title":"Max queries","type":"integer","required":false,"description":"Safety cap on the number of queries processed in this run.","default":20,"minimum":1,"maximum":1000},{"name":"concurrency","title":"Website concurrency","type":"integer","required":false,"description":"How many business websites are fetched in parallel.","default":5,"minimum":1,"maximum":10},{"name":"itemTimeoutSecs","title":"Per-query timeout (seconds)","type":"integer","required":false,"description":"Time limit per query. No new business is started in its last 90 seconds.","default":1800,"minimum":120,"maximum":3600},{"name":"includeRaw","title":"Include raw upstream response","type":"boolean","required":false,"description":"Attach the unmodified Google Maps item to each record (larger output).","default":false}]},"exampleInput":{"queries":["coffee roasters in Portland"],"location":"Portland,Oregon,United States","maxPlaces":5},"outputFields":[{"name":"recordType","type":"string","title":"Record type","description":"business = one lead (charged lead-business); query = per-query summary (not charged)."},{"name":"query","type":"string","title":"Query","description":"Search query."},{"name":"location","type":"string","title":"Location","description":"Location used for the search."},{"name":"rank","type":"integer | null","title":"Rank","description":"Position in Google Maps results."},{"name":"title","type":"string | null","title":"Business name","description":"Name on Google Maps."},{"name":"category","type":"string | null","title":"Category","description":"Primary Google category."},{"name":"address","type":"string | null","title":"Address","description":"Formatted address."},{"name":"addressInfo","type":"object | null","title":"Address parts","description":"street, borough, city, zip, region, countryCode."},{"name":"phone","type":"string | null","title":"Phone","description":"Google Maps phone (falls back to the first website phone)."},{"name":"phoneE164","type":"string | null","title":"Phone (E.164)","description":"The listing phone (else the first website phone) in E.164, e.g. +15035550141."},{"name":"phoneType","type":"string | null","title":"Phone type","description":"MOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, TOLL_FREE, VOIP, … (libphonenumber metadata)."},{"name":"phonesE164","type":"array","title":"Phones (E.164)","description":"Every phone of the listing and the website in E.164, de-duplicated."},{"name":"website","type":"string | null","title":"Website","description":"Website URL (final URL after redirects when fetched)."},{"name":"domain","type":"string | null","title":"Domain","description":"Website domain without www."},{"name":"email","type":"string | null","title":"Email","description":"Best email: first verified-valid (else catch-all) address, else the first address found (own domain first) that was not verified as invalid or disposable."},{"name":"emailStatus","type":"string | null","title":"Email status","description":"valid | invalid | catch_all | disposable | unknown | error | not_verified (null when no email)."},{"name":"emails","type":"array","title":"All emails","description":"All emails found on the website, own-domain first."},{"name":"phones","type":"array","title":"All phones","description":"Google Maps phone plus phones found on the website."},{"name":"socials","type":"object","title":"Social profiles","description":"facebook, instagram, linkedin, twitter, youtube, tiktok, pinterest URLs found on the website."},{"name":"emailVerifications","type":"array","title":"Verifications","description":"{ email, status, method, reason? } per checked address: method precheck = settled by the free local pre-check (status invalid or disposable, reason invalid_syntax | domain_not_found | no_mail_server | disposable; never sent to the verifier, not charged), method mailbox = verified at mailbox level (charged lead-email-verified)."},{"name":"rating","type":"object | null","title":"Rating","description":"{ value, votesCount }"},{"name":"isClaimed","type":"boolean | null","title":"Claimed","description":"The Google Business Profile is claimed by the owner."},{"name":"totalPhotos","type":"integer | null","title":"Photos","description":"Photos on the listing."},{"name":"currentStatus","type":"string | null","title":"Status on Google","description":"open, closed (right now), temporarily_closed or closed_forever."},{"name":"websiteSignals","type":"object | null","title":"Website signals","description":"With auditWebsite: { reachable, status, finalUrl, error, https, sslError, sslDaysLeft, sslIssuer, mobileFriendly, title, hasMetaDescription, speed (fast | average | slow), ttfbMs, loadMs, htmlKb, cms, ecommercePlatform, technologies[], bookingWidgets[], chatWidgets[], adPixels[], runsAds, analytics[], hasLocalBusinessSchema, copyrightYear, lastModified, outdated }; null without a website."},{"name":"emailAuth","type":"object | null","title":"E-mail domain setup","description":"With auditWebsite: { domain, mailProvider, hasMailServer, spf, dmarcPolicy, spfDmarcLookup } of the website's domain; spfDmarcLookup failed = the SPF / DMARC lookup failed (spf null, dmarcPolicy unknown); null for a site on a shared platform domain (wixsite.com, myshopify.com …)."},{"name":"leadScore","type":"integer | null","title":"Lead score","description":"0–100: gaps an agency can fix (no or weak website, unclaimed listing, few reviews, no ads) plus reachability (e-mail, phone). Higher = more promising."},{"name":"leadTags","type":"array","title":"Lead tags","description":"Segment tags behind the score, highest-scoring first: no-website, no-own-website, broken-website, ssl-error, no-https, not-mobile-friendly, unclaimed-listing, outdated-website, few-reviews, has-email, slow-website, not-running-ads, low-rating, verified-email, has-phone, temporarily-closed, permanently-closed."},{"name":"leadReasons","type":"array","title":"Lead reasons","description":"One sentence per tag, same order."},{"name":"placeId","type":"string | null","title":"Place ID","description":"Google place_id."},{"name":"cid","type":"string | null","title":"CID","description":"Google customer id."},{"name":"latitude","type":"number | null","title":"Latitude","description":"WGS84 latitude."},{"name":"longitude","type":"number | null","title":"Longitude","description":"WGS84 longitude."},{"name":"googleMapsUrl","type":"string | null","title":"Google Maps URL","description":"Link to the place."},{"name":"sources","type":"array","title":"Sources","description":"google_maps plus each website page fetched."},{"name":"warnings","type":"array","title":"Warnings","description":"E.g. no website, website unreachable, budget or time limit reached, duplicates skipped, verification off on the free plan."},{"name":"placesFound","type":"integer","title":"Places found","description":"Query records only."},{"name":"businessesDelivered","type":"integer","title":"Businesses delivered","description":"Query records only."},{"name":"businessesWithEmail","type":"integer","title":"With email","description":"Query records only."},{"name":"emailsVerified","type":"integer","title":"Emails verified","description":"Query records only: paid mailbox-level verifications."},{"name":"emailsPrechecked","type":"integer","title":"Emails pre-checked","description":"Query records only: addresses the free local pre-check settled (never sent to the verifier, not charged)."},{"name":"leadsScoring50Plus","type":"integer","title":"Leads scoring 50+","description":"Query records only: businesses with a lead score of 50 or more."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_budget | skipped_free_plan | skipped_trial"},{"name":"charged","type":"boolean","title":"Charged","description":"Whether this record incurred a lead-business charge."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"lead-business"},{"name":"sponsored","type":"boolean","title":"Sponsored","description":"true when a promotional trial paid for this record instead of you: delivered with charged false and never billed (present only then)."},{"name":"promotionId","type":"string","title":"Promotion","description":"Id of the promotional trial that sponsored this record (present only with sponsored)."},{"name":"trialUnitsApplied","type":"integer","title":"Trial events","description":"Events of this record the trial paid for (present only with sponsored)."},{"name":"retailValueWaivedUsd","type":"number","title":"Value waived (USD)","description":"What those events cost at the listed prices, in USD: what you did not pay (present only with sponsored)."},{"name":"emailVerificationsCharged","type":"integer","title":"Verifications charged","description":"Number of lead-email-verified events charged for this business."},{"name":"source","type":"string","title":"Source","description":"Upstream data source."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."}],"outputExample":{"recordType":"business","query":"roofing contractors","location":"Philadelphia,Pennsylvania,United States","rank":3,"title":"Acme Roofing","category":"Roofing contractor","address":"1200 Market St, Philadelphia, PA 19107","addressInfo":{"street":"1200 Market St","borough":null,"city":"Philadelphia","zip":"19107","region":"Pennsylvania","countryCode":"US"},"phone":"+1 215-555-0100","phoneE164":"+12155550100","phoneType":"FIXED_LINE_OR_MOBILE","phonesE164":["+12155550100","+12155550199"],"website":"https://www.acmeroofing.com/","domain":"acmeroofing.com","email":"office@acmeroofing.com","emailStatus":"valid","emails":["office@acmeroofing.com","jobs@acmeroofing.com"],"phones":["+1 215-555-0100","+12155550199"],"socials":{"facebook":"https://www.facebook.com/AcmeRoofingPhilly","instagram":"https://instagram.com/acme.roofing"},"emailVerifications":[{"email":"office@acmeroofing.com","status":"valid","method":"mailbox"}],"rating":{"value":4.8,"votesCount":212},"isClaimed":false,"totalPhotos":14,"currentStatus":"open","websiteSignals":{"reachable":true,"status":200,"finalUrl":"https://www.acmeroofing.com/","error":null,"https":true,"sslError":false,"sslDaysLeft":41,"sslIssuer":"Let's Encrypt","mobileFriendly":false,"title":"Acme Roofing | Philadelphia Roofers","hasMetaDescription":true,"speed":"average","ttfbMs":940,"loadMs":1310,"htmlKb":212.4,"cms":"WordPress","ecommercePlatform":null,"technologies":["WordPress","PHP","MySQL","jQuery"],"bookingWidgets":[],"chatWidgets":[],"adPixels":[],"runsAds":false,"analytics":["Google Analytics"],"hasLocalBusinessSchema":false,"copyrightYear":2019,"lastModified":null,"outdated":true},"emailAuth":{"domain":"acmeroofing.com","mailProvider":"Google Workspace","hasMailServer":true,"spf":true,"dmarcPolicy":null,"spfDmarcLookup":"ok"},"leadScore":65,"leadTags":["not-mobile-friendly","unclaimed-listing","outdated-website","has-email","not-running-ads","verified-email","has-phone"],"leadReasons":["The website has no mobile viewport: it is not set up for phones.","The Google Business Profile is not claimed by the owner.","The website looks outdated (newest copyright year 2019).","An e-mail address was found on the website.","No advertising pixels (Google Ads, Meta, TikTok, …) on the website: the business does not appear to buy online ads.","The e-mail address passed a mailbox verification.","A phone number is listed."],"placeId":"ChIJxxxxxxxxxxxxxxxx","cid":"12345678901234567890","latitude":39.9516,"longitude":-75.1605,"googleMapsUrl":"https://www.google.com/maps?cid=12345678901234567890","sources":["google_maps","https://www.acmeroofing.com/","https://www.acmeroofing.com/contact-us/"],"status":"ok","charged":true,"chargedEvent":"lead-business","emailVerificationsCharged":1,"source":"dataforseo","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[{"question":"What does the lead score measure?","answer":"How promising a business is as a prospect for web, local-SEO and marketing services, from 0 to 100: points for each gap you could fix (no website +35, a social page instead of a website +30, a website that does not load +25, no HTTPS or a broken certificate +15, not mobile-friendly +15, an unclaimed Google listing +15, an outdated site +10, fewer than 10 reviews +10, a slow site +5, no ad pixels +5, a rating under 4 +5) and for reachability (e-mail found +10, verified +5, phone +5). Every point comes with a tag such as no-website or unclaimed-listing and a sentence in leadReasons, so you can filter and personalise outreach."},{"question":"Which emails are verified, and what does a verification cost?","answer":"With verifyEmails on (paid plans), up to 2 addresses per business are verified at mailbox level, addresses on the business's own domain first, for $0.004 each. Every candidate first goes through a free local pre-check: an address whose domain does not exist or accepts no mail, a disposable address or one with invalid syntax is marked invalid or disposable right away (method precheck), is never sent to the verifier and is not charged."}],"mcpExamplePrompt":"Find 10 coffee roasters in Portland, Oregon on Google Maps with their websites, emails and phone numbers, and list the ones that have an email address.","related":["google-maps-search","company-contacts-finder","google-business-profile","local-business-audit","email-validator"],"urls":{"site":"https://www.sfoln.com/actors/google-maps-business-leads/","siteJson":"https://www.sfoln.com/actors/google-maps-business-leads.json","siteMarkdown":"https://www.sfoln.com/actors/google-maps-business-leads.md","runSync":"https://api.apify.com/v2/actors/sfoln~google-maps-business-leads/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~google-maps-business-leads/runs","mcp":"https://mcp.apify.com?tools=sfoln/google-maps-business-leads","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Google%20Maps%20Leads%20Scraper%20%2B%20Emails%20(sfoln%2Fgoogle-maps-business-leads)&body=Please%20publish%20google-maps-business-leads.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}