Skip to content

Perufitlife/google-maps-lead-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Maps Lead Generator - Free API + Scripts

npm version License: MIT PRs Welcome

Extract business leads from Google Maps for free. Get phone numbers, websites, addresses, ratings, and more. No API key required.

Generate hundreds of B2B leads in minutes using the free LeadFinder API. Perfect for sales prospecting, cold outreach, CRM enrichment, and local business research.


Try it now

leadscraper-coral.vercel.app — Free web app with export to CSV


What You Get

Each lead returned by the API includes:

Field Description Example
businessName Company name "Joe's Plumbing"
phone Phone number "(555) 123-4567"
website Business website "https://joesplumbing.com"
address Full street address "123 Main St, Austin, TX"
rating Google Maps rating 4.8
reviewCount Number of reviews 142

Quick Start

Option 1: Use the Web App (No Code)

Go to leadscraper-coral.vercel.app and start searching immediately. Export results to CSV with one click.

Option 2: Use cURL (Fastest)

curl "https://leadscraper-coral.vercel.app/api/v1/leads?niche=plumber&city=Austin"

Option 3: Use the npm Package

npm install leadfinder-api
const { findLeads } = require('leadfinder-api');

const results = await findLeads({ niche: 'plumber', city: 'Austin' });
console.log(results.leads);

Option 4: Use the Python Script

git clone https://github.com/Perufitlife/google-maps-lead-generator.git
cd google-maps-lead-generator
pip install requests
python scripts/get_leads.py --niche "plumber" --city "Austin" --output leads.csv

Option 5: Use the Node.js Script

git clone https://github.com/Perufitlife/google-maps-lead-generator.git
cd google-maps-lead-generator
npm install node-fetch
node scripts/get_leads.js --niche "plumber" --city "Austin" --output leads.csv

Free API Reference

Base URL:

https://leadscraper-coral.vercel.app/api/v1/leads

Parameters:

Parameter Required Description
niche Yes Business type / keyword (e.g., "dentist", "plumber", "restaurant")
city Yes City name (e.g., "Austin", "New York", "London")

Example Request:

curl "https://leadscraper-coral.vercel.app/api/v1/leads?niche=dentist&city=Miami"

Example Response:

{
  "leads": [
    {
      "businessName": "Bright Smile Dental",
      "phone": "(305) 555-0123",
      "website": "https://brightsmile.com",
      "address": "456 Ocean Drive, Miami, FL 33139",
      "rating": 4.9,
      "reviewCount": 312
    }
  ],
  "total": 20,
  "query": {
    "niche": "dentist",
    "city": "Miami"
  }
}

Code Examples

Python

import requests

response = requests.get(
    "https://leadscraper-coral.vercel.app/api/v1/leads",
    params={"niche": "plumber", "city": "Austin"}
)

data = response.json()
print(f"Found {data['total']} leads")

for lead in data["leads"]:
    print(f"{lead['businessName']} - {lead['phone']} - {lead['website']}")

Node.js

const fetch = require('node-fetch');

async function getLeads(niche, city) {
  const url = `https://leadscraper-coral.vercel.app/api/v1/leads?niche=${encodeURIComponent(niche)}&city=${encodeURIComponent(city)}`;
  const response = await fetch(url);
  const data = await response.json();

  console.log(`Found ${data.total} leads`);
  data.leads.forEach(lead => {
    console.log(`${lead.businessName} - ${lead.phone} - ${lead.website}`);
  });

  return data;
}

getLeads('plumber', 'Austin');

cURL + jq

# Get leads and pretty-print
curl -s "https://leadscraper-coral.vercel.app/api/v1/leads?niche=plumber&city=Austin" | jq '.leads[] | {name: .businessName, phone: .phone, website: .website}'

# Save directly to CSV
curl -s "https://leadscraper-coral.vercel.app/api/v1/leads?niche=plumber&city=Austin" | jq -r '.leads[] | [.businessName, .phone, .website, .address, .rating, .reviewCount] | @csv' > leads.csv

Using the leadfinder-api npm Package

npm install leadfinder-api
const { findLeads } = require('leadfinder-api');

(async () => {
  // Simple search
  const results = await findLeads({ niche: 'dentist', city: 'Los Angeles' });

  console.log(`Found ${results.total} leads`);
  results.leads.forEach(lead => {
    console.log(`${lead.businessName} | ${lead.phone} | ${lead.website}`);
  });
})();

Included Scripts

Script Description
scripts/get_leads.py Python: Fetch leads for a niche + city, export to CSV
scripts/get_leads.js Node.js: Fetch leads for a niche + city, export to CSV
scripts/bulk_search.py Python: Bulk search from a CSV of niche + city combinations
scripts/enrich_leads.py Python: Visit lead websites and extract email addresses

Bulk Search (Multiple Niches & Cities)

Search dozens of niche+city combinations at once using a CSV file:

python scripts/bulk_search.py --input sample-input.csv --output all_leads.csv

The input CSV should have two columns: niche and city. See sample-input.csv for an example.

Email Enrichment

After collecting leads, find email addresses by visiting each website:

python scripts/enrich_leads.py --input leads.csv --output enriched_leads.csv

This script visits each lead's website and extracts email addresses found on the page.

Use Cases

  • Sales Prospecting - Build targeted lead lists for cold outreach campaigns
  • B2B Lead Generation - Find local businesses in any niche and any city
  • CRM Enrichment - Bulk import business data into your CRM (HubSpot, Salesforce, etc.)
  • Market Research - Analyze local business landscapes and competition
  • Real Estate - Find property management companies, agents, and contractors
  • Agency Outreach - Find potential clients for your marketing or web design agency
  • Local SEO - Research local businesses for SEO audits and proposals

Frequently Asked Questions

Is this free?

Yes. The API and web app at leadscraper-coral.vercel.app are free to use.

Do I need an API key?

No. The API requires no authentication and no API key.

What data can I extract from Google Maps?

Business name, phone number, website URL, full address, Google rating (1-5 stars), and review count.

Can I use this for commercial purposes?

Yes. The data is sourced from publicly available Google Maps listings. This project is MIT licensed.

How many leads can I get?

Each API call returns up to 20 leads. Use the bulk search script to search many niches and cities.

Contributing

Contributions are welcome! Feel free to:

  • Add scripts in other languages (Go, Ruby, PHP, etc.)
  • Improve the email enrichment script
  • Add integrations with CRMs
  • Report bugs or suggest features

Related

License

MIT License - see LICENSE for details.


Built with the free LeadFinder API

Get Leads Now

About

Scripts and tools to extract business leads from Google Maps. Free API included. Python, Node.js, cURL examples. Export to CSV.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors