Skip to content
GTM & Outbound Automation · Clay / n8n / Python6 min read·Updated 2026-11-05

Build an Automated B2B Local Lead & Cold Email Pipeline with Clay, n8n & GoogleMapsAPI.io

Combine /v1/places/search with /v1/leads/enrich in Clay, n8n, or Python to source local SMBs with verified websites, phone numbers, and contact emails at 90% lower cost than bundled SaaS databases.

$1 = 10,000 Credits ($0.20–$0.50 / 1K Places) · 0 Credits for Empty Searches · All 8 Endpoints Included

Instant Quickstart · Copy & Run in 30 Seconds

Search Local Businesses + Enrich Emails & LinkedIn URLs

Execute in Live Playground →
import requests

API_KEY = "gm_live_your_api_key"
HEADERS = {"x-api-key": API_KEY}

places = requests.get(
    "https://api.googlemapsapi.io/v1/places/search",
    headers=HEADERS,
    params={"q": "dental clinics in Scottsdale AZ", "has_website": "true", "limit": 25},
    timeout=30,
).json()["data"]

qualified_leads = []
for p in places:
    if not p.get("domain"):
        continue
    contacts = requests.get(
        "https://api.googlemapsapi.io/v1/leads/enrich",
        headers=HEADERS,
        params={"domain": p["domain"]},
        timeout=20,
    ).json().get("data", {})
    if contacts.get("emails"):
        qualified_leads.append({
            "name": p["name"],
            "phone": p["phone"],
            "domain": p["domain"],
            "emails": contacts["emails"],
            "linkedin": contacts.get("social_links", {}).get("linkedin"),
        })

print(f"Enriched {len(qualified_leads)} ready-to-send B2B leads")

Key Engineering Takeaways (TL;DR)

  • ✓Static B2B databases miss 60%+ of newly opened clinics, contractors, agencies, and brick-and-mortar SMBs that appear on Google Maps first.
  • ✓Filter leads programmatically by rating (e.g., 3.5–4.4 stars for reputation management offers) or has_website=true before enriching emails.
  • ✓Chain GET /v1/places/search (5 Credits/place) -> GET /v1/leads/enrich (20 Credits only when emails/socials are found; 0 Credits if empty).
  • ✓Total all-in data cost for 1,000 enriched local businesses with verified emails and social handles is under $2.50 on PAYG.

1. Unit Economics: Direct API Pipeline vs Bundled Lead Credits

Using your own GoogleMapsAPI.io key inside Clay or n8n eliminates 5x–10x platform credit markups on local SMB prospecting.

Cost to source and enrich 1,000 local businesses with websites & contact emails
Pipeline StageEndpointCreditsPAYG Base Cost (1K Leads)
1. Discover 1,000 targeted local SMBsGET /v1/places/search?has_website=true5,000 Credits$0.50
2. Crawl official domains for emails & socialsGET /v1/leads/enrich?domain=...20 Credits / hit (0 if empty)$1.20 (at 60% hit rate)
Total All-In Enriched PipelineSearch + Contact Enrichment~17,000 Credits$1.70 per 1,000 leads

2. End-to-End Python & Node.js Lead Enrichment Pipeline

Fetch local businesses in any target metro, filter by review velocity or rating, and enrich every business domain concurrently.

Search Local Businesses + Enrich Emails & LinkedIn URLs

Zero credits are deducted for domains that do not publish an email or social link:

curl "https://api.googlemapsapi.io/v1/places/search?q=dental+clinics+in+Scottsdale+AZ&has_website=true&limit=25" \
  -H "x-api-key: gm_live_your_api_key"

Interactive Engineering Workbench · GET /v1/places/search

Verify real-time latency, credit math & JSON schema

5,000 places/day
5,000 reviews/day
500 domains/day
HTTP Calls / Day
600
Up to 100 items/call
Credit Unit
$1 = 10,000
Unified across 8 routes
Empty Result Fee
0 Credits
$0.00 for 0 matches
Estimated Monthly Pipeline Cost (30 Days)
$54.00/ mo on Business ($76.95 on Pro)
Monthly consumption: 1,350,000 Credits (45,000 Credits/day)
GoogleMapsAPI.io (Business $0.20/1K):$54.00 / mo
Official Google Places API ($32/1K):$5175.00 / mo
Empty search / unfound email fee:$0.00 (0 Credits)

Frequently Asked Questions

How do I configure GoogleMapsAPI.io in Clay's HTTP API integration?
Add an HTTP API column with Method = GET, URL = https://api.googlemapsapi.io/v1/leads/enrich?domain={{domain}}, and Header x-api-key: gm_live_your_api_key. Enable Clay's conditional run formula so it only runs when {{domain}} is non-empty.
What happens if my credits run out mid-workflow?
The gateway returns HTTP 402 with JSON fields credits_remaining, credits_required, and topup_url: https://googlemapsapi.io/dashboard/topup so your workflow can pause cleanly without losing progress.