Local Business Leads Scraper - MX-Checked Emails & Phones avatar

Local Business Leads Scraper - MX-Checked Emails & Phones

Pricing

from $2.48 / 1,000 business leads

Go to Apify Store
Local Business Leads Scraper - MX-Checked Emails & Phones

Local Business Leads Scraper - MX-Checked Emails & Phones

Find local businesses by category and city, then get the emails, phones and social links each one publishes on its own website. Every email is MX-checked and graded. OpenStreetMap data, no Google. $4 per 1,000 leads.

Pricing

from $2.48 / 1,000 business leads

Rating

0.0

(0)

Developer

Plot Point Technologies

Plot Point Technologies

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

Local Business Leads Scraper: MX-Checked Emails and Phones

Find local businesses by category and city, then get the email addresses each business publishes on its own website. Every email comes with the page it was found on, a DNS mail-server (MX) check and a plain-language confidence grade, so you can see why it is in your list before you send anything. Business listings come from OpenStreetMap, not Google, so there are no Maps terms to worry about.

What can this local leads scraper do?

  1. Finds businesses in OpenStreetMap by exact category (dentist, plumber, restaurant, lawyer, accountant, hairdresser, car repair, pest control and 100+ more, or raw tags like craft=roofer) inside the official boundary of a city, county, state or region.
  2. Visits each business's own website (homepage plus the most likely contact, about and imprint pages) and collects emails, phones and social profile links. robots.txt is respected.
  3. Checks every email: valid syntax, a working MX record, junk and platform addresses removed. Emails are never guessed from name patterns.
  4. Grades each email high, medium or low, and picks a bestEmail.
GradeMeaning
highPublished on the business's website, on its own domain, with a working MX record
mediumA free-mail address matching the business name, an own-domain address listed only in OpenStreetMap, or similar
lowAn unrelated domain (often the web agency), a non-matching free-mail address, or no MX record

What data do you get?

name, category, osmTags, address, street, city, state, postcode, country, latitude, longitude, phone, phones, website, bestEmail, bestEmailConfidence, emails[] (email, confidence, reason, type, ownDomain, freeMail, mxRecord, sourceUrl, foundOn, foundVia), socials, openingHours, osmId, osmUrl, websiteStatus, pagesChecked, dataSource.

Who uses it?

  • Agencies and freelancers prospecting local businesses in one sector and city.
  • Software and service companies building outreach lists for clinics, trades, restaurants or shops.
  • Researchers who need local businesses with addresses, coordinates and opening hours.

How to use it

  1. Click Try for free (or Start).
  2. Enter Business categories (for example dentist) and a Location (for example Madison, Wisconsin, USA).
  3. Turn on Only leads with an email to pay only for businesses with a checked email.
  4. Run it and export to Excel, CSV or your CRM.

Input example

{
"categories": [
"dentist"
],
"location": "Madison, Wisconsin, USA",
"maxResults": 20,
"onlyWithEmail": true,
"minEmailConfidence": "medium"
}

Output example

{
"name": "University Square Dental",
"category": "dentist",
"osmTags": {
"amenity": "dentist",
"healthcare": "dentist"
},
"address": "517 North Lake Street, Madison, US",
"street": "517 North Lake Street",
"city": "Madison",
"state": null,
"postcode": null,
"country": "US",
"latitude": 43.0754428,
"longitude": -89.3971674,
"phone": "+1 608-256-6839",
"phones": [
"+1 608-256-6839"
],
"website": "https://www.usquaredental.com/",
"bestEmail": "frontdesk@usquaredental.com",
"bestEmailConfidence": "high",
"emails": [
{
"email": "frontdesk@usquaredental.com",
"confidence": "high",
"reason": "published on the business website, on the website's own domain, MX record found",
"type": "role",
"ownDomain": true,
"freeMail": false,
"mxRecord": true,
"sourceUrl": "https://www.usquaredental.com/",
"foundOn": [
"https://www.usquaredental.com/",
"https://www.usquaredental.com/dental-implant",
"https://www.usquaredental.com/meet-the-team"
],
"foundVia": [
"mailto-link",
"structured-data",
"text"
]
}
],
"socials": {
"facebook": [
"https://www.facebook.com/usquaredental",
"https://www.facebook.com/University-Square-Dental-Associates-524897430857375"
],
"instagram": [
"https://www.instagram.com/usquaredental"
]
},
"openingHours": null,
"osmId": "node/6893811219",
"osmUrl": "https://www.openstreetmap.org/node/6893811219",
"websiteStatus": "checked",
"pagesChecked": [
"https://www.usquaredental.com/",
"https://www.usquaredental.com/dental-implant",
"https://www.usquaredental.com/meet-the-team"
],
"dataSource": "Business listing: © OpenStreetMap contributors, available under the Open Database License (ODbL 1.0), https://www.openstreetmap.org/copyright. Emails/phones/social links: published on the business's o..."
}

How much does it cost?

$4 per 1,000 leads ($0.004 per business saved), plus a $0.00005 start fee per run. No separate compute charges.

You getYou pay
20 dentists in one city$0.08
250 restaurants with checked emails$1.00
1,000 leads$4.00

With "Only leads with an email" on, businesses without a checked email are skipped free of charge. Runs that find nothing cost only the start fee.

Use it via API, Make, Zapier, n8n or an AI agent

Apify API. Start a run and get the results back in one HTTP request (replace YOUR_API_TOKEN with the token from Apify Console > Settings > Integrations):

curl -X POST "https://api.apify.com/v2/acts/plotpointtech~local-business-leads/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"categories": ["dentist"], "location": "Madison, Wisconsin, USA", "maxResults": 20, "onlyWithEmail": true, "minEmailConfidence": "medium"}'

For longer jobs, start the run asynchronously and read the dataset when it finishes. Official apify-client libraries exist for Python and JavaScript; the API tab on this page has ready-made code.

No-code automation. Connect the tool to Make, Zapier, n8n, Google Sheets, Slack, Airtable or any webhook with Apify integrations, and use Schedules in Apify Console to run it hourly, daily or weekly.

AI agents (MCP). Give Claude, ChatGPT, Cursor, VS Code or any MCP-compatible agent direct access to this tool through the hosted Apify MCP server. Add this server URL to your client:

https://mcp.apify.com?tools=plotpointtech/local-business-leads

The agent can then call the tool with the same input fields shown above and read the results.

FAQ

Is it legal to collect these leads? Listings come from OpenStreetMap under the Open Database License (credit "© OpenStreetMap contributors" if you share derived data; each row carries this note). Emails and phones are the ones businesses publish on their own public websites. Outreach is regulated (GDPR and ePrivacy in the EU/UK, CAN-SPAM in the US, and others): you are responsible for using the contacts lawfully.

Are the emails verified? They are published by the business and MX-checked, which removes dead domains and typos. The tool does not log in to mail servers (SMTP verification), so a mailbox can still be full or closed.

Why did I get fewer businesses than expected? Coverage depends on OpenStreetMap. It is strong for restaurants, cafes, shops, hotels, clinics and dentists in most of Europe and many US cities, and thinner for some trades. The run log shows how many matching businesses the map had. Try a wider area or a related category.

Does it use Google Maps? No. It uses OpenStreetMap (Nominatim and the Overpass API) politely, plus each business's own website.

Can I search around a point? Yes. Use latitude, longitude and a radius, or a bounding box, instead of a place name.

Plot Point Technologies is not affiliated with OpenStreetMap, the OpenStreetMap Foundation, Nominatim or the Overpass API.


If this tool saved you time, we would be grateful for a short review on this page; it helps other people find it. If something did not work as expected, please open an issue on the Issues tab and we will look into it quickly.