1. Outscraper Pricing Tiers & The 'Stacked Enrichment' Multiplier
Outscraper uses a tiered usage model where the first 500 records/month are free, records 501–100,000 cost $3.00 per 1,000, and volume above 100,000 drops to $1.00 per 1,000 (with a $10 minimum balance recharge). However, engineering teams building B2B outbound pipelines frequently encounter two hidden bottlenecks: stacked add-on SKUs and asynchronous batch latency.
- Stacked Per-Service Billing ($3 + $3 + $3 = $6–$9 / 1K Leads): A raw Google Maps scrape on Outscraper ($3/1K) returns business names, phone numbers, and website URLs—not email addresses. Enabling the Contacts & Leads Scraper adds +$3.00/1K domains, and Email Validator adds another +$3.00/1K, multiplying effective cost per 1,000 outreach-ready leads by 2x–3x.
- Async Queue & CSV Export Latency (30s – 180s per Task): Outscraper's /maps/search-v3 API queues background batch jobs by default, requiring webhook receivers or while-loop status polling. That works for overnight CSV exports, but breaks interactive SaaS UIs, Clay/n8n real-time HTTP columns, and Claude/ChatGPT MCP tool calls that time out after 15–30 seconds.
- Zero-Result & Empty-Domain Protection: On GoogleMapsAPI.io, GET /v1/places/search and GET /v1/leads/enrich (/docs/leads-enrich) deduct 0 Credits whenever a map grid cell is empty or a business website publishes no discoverable email or social profile.
| Monthly Workload / Feature | GoogleMapsAPI.io (PAYG / Starter) | GoogleMapsAPI.io (Business $499/mo) | Outscraper (Medium Tier 501–100k) | Scrap.io (Monthly Subscription) |
|---|---|---|---|---|
| Minimum Entry / Free Sandbox | $0 ($1.20 / 12,000 Credits free, no card; $10 PAYG) | $3.20 (32,000 total free sandbox credits) | $0 (500 free/mo), $10.00 min balance top-up | $49.00 / mo minimum (10,000 export credits) |
| 10,000 Google Maps Places (Phone, Web, Hours, Coords) | $4.10 – $5.00 | $2.00 | $28.50 (after 500 free @ $3.00/1K) | $49.00 / mo ($4.90 / 1K, city-only cap) |
| 50,000 Places + Website B2B Email & Social Enrichment | $80.00 – $125.00 (0 Credits on empty domains) | $50.00 ($0.20/1K places + $0.80/1K enriched) | $300.00 – $450.00 ($3/1K places + $3–$6/1K add-ons) | $199.00 – $499.00 / mo (credits expire in 30d) |
| 100,000 Verified Google Maps Customer Reviews | $20.00 (2 Credits / review) | $8.00 ($0.08 / 1K reviews) | $298.50 ($3.00 / 1K reviews) | Not offered as a dedicated review stream API |
| Response Architecture & p50 Latency | Sync HTTP JSON (21–50ms cached / 0.8–2.2s live) | Sync HTTP JSON + 3,000 RPM (50 RPS) | Async task queue polling / CSV (30s–180s) | Async UI / batch CSV export (minutes) |
| 1-Click Claude Web & ChatGPT Remote MCP | Built-in OAuth 2.1 (https://mcp.googlemapsapi.io/v1/mcp) | Built-in OAuth 2.1 + API-Key Streamable HTTP | No hosted 1-click OAuth 2.1 MCP connector | No hosted 1-click OAuth 2.1 MCP connector |
2. GoogleMapsAPI.io Exact Plan & Endpoint Rate Card ($1 = 10,000 Credits)
Every tier—including Free Trial and $10 Never-Expiring Pay-As-You-Go packs—unlocks all 8 synchronous REST endpoints (/docs/places-search, /docs/places-nearby, /docs/places-details, /docs/places-reviews, /docs/places-photos, /docs/leads-enrich, /docs/places-autocomplete, /docs/geocode-reverse) with zero feature gating.
Per-endpoint credit consumption is fixed and predictable across all plans: GET /v1/places/search (5 Credits / place returned (min 10 Credits; 0 if empty) = $0.20 – $0.50 / 1,000 places); GET /v1/places/nearby (5 Credits / place returned (min 10 Credits; 0 if empty) = $0.20 – $0.50 / 1,000 places); GET /v1/places/details, GET /v1/places/{place_id} (20 Credits / business profile = $0.80 – $2.00 / 1,000 profiles); GET /v1/places/reviews, GET /v1/places/{place_id}/reviews (2 Credits / review returned (min 10 Credits; 0 if empty) = $0.08 – $0.20 / 1,000 reviews); GET /v1/places/photos, GET /v1/places/{place_id}/photos (2 Credits / photo returned (min 6 Credits; 0 if empty) = $0.08 – $0.20 / 1,000 photos); GET /v1/leads/enrich, GET /v1/domains/{domain}/contacts (20 Credits / enriched domain (0 Credits if no emails/socials found) = $0.80 – $2.00 / 1,000 enriched domains); GET /v1/places/autocomplete, GET /v1/geocode/reverse (5 Credits / request = $0.20 – $0.50 / 1,000 calls).
Payment rails supported at /dashboard/billing: instant Credit & Debit Card, Apple Pay, and Google Pay via Stripe (with downloadable tax/VAT invoices), plus 0%-fee Cryptocurrency checkout (+5% bonus credits on BTC, ETH, SOL, USDT, USDC).
| Plan / Pack | Monthly Sub Price | Never-Expiring PAYG | Monthly Credits Included | Rate Limit | Effective Cost / 1K Places |
|---|---|---|---|---|---|
| Free Trial | $0 (No card) | 12,000 instant + 20,000 streak | 12,000 Credits | 60 RPM (5 RPS) | $0.00 (Free Sandbox) |
| Starter | $29.00 / mo | $10.00 (100,000 Credits) | 350,000 Credits | 300 RPM (10 RPS) | $0.41 / 1K places |
| Growth | $79.00 / mo | $50.00 (550,000 Credits) | 1,100,000 Credits | 600 RPM (10 RPS) | $0.36 / 1K places |
| Pro | $199.00 / mo | $100.00 (1,200,000 Credits) | 3,500,000 Credits | 1,200 RPM (20 RPS) | $0.28 / 1K places |
| Business | $499.00 / mo | $500.00 (7,500,000 Credits) | 12,500,000 Credits | 3,000 RPM (50 RPS) | $0.20 / 1K places |
3. Replace Async Outscraper Polling with Synchronous cURL & Python Calls
Instead of submitting an async task ID, sleeping in a while-loop, and parsing nested CSV rows, call GET /v1/places/search and chain GET /v1/leads/enrich (/docs/leads-enrich) to get structured leads and verified emails in milliseconds:
Real-Time Google Maps Search + Website B2B Email Enrichment (/docs/leads-enrich)
Runnable cURL, Python, and TypeScript snippets with real live-captured production JSON (0 empty placeholders):
# 1) Real-time Google Maps business search (5 Credits / place returned)
curl -s "https://api.googlemapsapi.io/v1/places/search?q=coffee+in+Austin&limit=2" \
-H "x-api-key: gm_live_your_api_key"
# 2) Enrich business website domain for B2B emails & social links (20 Credits; 0 if none found)
curl -s "https://api.googlemapsapi.io/v1/leads/enrich?domain=houndstoothcoffee.com" \
-H "x-api-key: gm_live_your_api_key"import requests
API_KEY = "gm_live_your_api_key"
HEADERS = {"x-api-key": API_KEY}
# Synchronous response in ~25ms (cached) to 1.8s (live SERP) — zero task polling!
search_res = requests.get(
"https://api.googlemapsapi.io/v1/places/search",
headers=HEADERS,
params={"q": "coffee in Austin", "limit": 20},
timeout=15,
)
places = search_res.json()["data"]
for place in places:
domain = place.get("domain")
if not domain:
continue
# Crawl homepage, /contact & /about for verified emails + LinkedIn/Instagram
contacts = requests.get(
"https://api.googlemapsapi.io/v1/leads/enrich",
headers=HEADERS,
params={"domain": domain},
timeout=15,
).json()["data"]
print(place["name"], place.get("phone"), contacts.get("emails"))const headers = { "x-api-key": process.env.GOOGLEMAPS_API_KEY ?? "gm_live_your_api_key" };
const searchRes = await fetch(
"https://api.googlemapsapi.io/v1/places/search?q=coffee+in+Austin&limit=20",
{ headers }
);
const { data: places } = await searchRes.json();
for (const place of places) {
if (!place.domain) continue;
const enrichRes = await fetch(
`https://api.googlemapsapi.io/v1/leads/enrich?domain=${encodeURIComponent(place.domain)}`,
{ headers }
);
const { data: contacts } = await enrichRes.json();
console.log(place.name, place.phone, contacts.emails, contacts.social_links);
}{
"code": 0,
"provider": "https://googlemapsapi.io",
"status": "ok",
"msg": "success",
"data": [
{
"place_id": "ChIJL9ZfURW1RIYR120Vj4oOnPg",
"cid": "17914209406041812439",
"google_id": "0x8644b515515fd62f:0xf89c0e8a8f156dd7",
"name": "Black Cat Coffee",
"category": "Coffee shop",
"phone": "+1650-640-6906",
"website": "https://blkcatcoffee.com/",
"domain": "blkcatcoffee.com",
"rating": 5,
"reviews_count": 151,
"address": "603 W Live Oak St, Austin, TX 78704",
"city": "Austin",
"state": "Texas",
"zip_code": "78704",
"country_code": "US",
"latitude": 30.2444179,
"longitude": -97.7580971,
"business_status": "OPERATIONAL"
}
],
"enrichment_example": {
"domain": "houndstoothcoffee.com",
"company_name": "Houndstooth Coffee",
"emails": ["[email protected]", "[email protected]"],
"phones": ["+1 512-531-9417"],
"social_links": {
"twitter": "https://x.com/houndstoothatx",
"facebook": "https://www.facebook.com/houndstoothcoffee",
"linkedin": "https://www.linkedin.com/company/houndstooth-coffee",
"instagram": "https://www.instagram.com/houndstoothcoffee"
}
},
"meta": {
"request_id": "1307debc-36de-4bb5-955f-1d157e60de30",
"endpoint": "/v1/places/search",
"count": 1,
"credits_charged": 5,
"took_ms": 21
}
}4. Connect Claude Web, ChatGPT & Cursor via 1-Click OAuth 2.1 Remote MCP
Because GoogleMapsAPI.io responds in milliseconds rather than queueing multi-minute CSV jobs, AI agents can search live businesses, inspect customer reviews, and enrich B2B emails mid-conversation without timing out.
- Claude.ai & ChatGPT Connectors (1-Click OAuth 2.1 PKCE): Paste https://mcp.googlemapsapi.io/v1/mcp into Claude Settings -> Connectors -> Add Custom Connector (or ChatGPT Developer Mode). Sign in with Google or email in one click to mint an isolated read-only mcp_at_... token backed by your 12,000 free credits.
- Cursor, Windsurf, Claude Desktop & n8n (API-Key Streamable HTTP): Connect directly to https://api.googlemapsapi.io/mcp with header x-api-key: gm_live_your_api_key. Handshake and tools/list are unauthenticated HTTP 200; credits are deducted only on tools/call.
Remote MCP Connector Config & JSON-RPC Discovery Probe
Add https://mcp.googlemapsapi.io/v1/mcp in Claude/ChatGPT or configure API-key MCP in Cursor / Claude Desktop:
# Verify all 8 live MCP tools (no API key required for tools/list)
curl -s -X POST "https://api.googlemapsapi.io/mcp" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'# Use with OpenAI Responses API Remote MCP tool:
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-5",
tools=[{
"type": "mcp",
"server_label": "googlemaps",
"server_url": "https://api.googlemapsapi.io/mcp",
"headers": {"x-api-key": "gm_live_your_api_key"},
"require_approval": "never",
}],
input="Find 5 specialty coffee roasters in Austin TX with their phone numbers and websites.",
)
print(resp.output_text)// claude_desktop_config.json / .cursor/mcp.json
{
"mcpServers": {
"googlemapsapi-oauth": {
"url": "https://mcp.googlemapsapi.io/v1/mcp"
},
"googlemapsapi-apikey": {
"url": "https://api.googlemapsapi.io/mcp",
"headers": {
"x-api-key": "gm_live_your_api_key"
}
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{ "name": "places_search", "title": "Search Google Maps Local Businesses" },
{ "name": "places_nearby", "title": "Discover Nearby Businesses by GPS Coordinates" },
{ "name": "places_details", "title": "Get Full Google Business Profile Details" },
{ "name": "places_reviews", "title": "Extract Verified Google Maps Customer Reviews" },
{ "name": "places_photos", "title": "Fetch Business Storefront, Interior & Menu Photos" },
{ "name": "leads_enrich", "title": "Enrich Business Website Domain with B2B Emails & Social Links" },
{ "name": "places_autocomplete", "title": "Google Maps Place & Address Autocomplete" },
{ "name": "geocode_reverse", "title": "Reverse Geocode GPS Coordinates to Address & Place ID" }
]
}
}Interactive Engineering Workbench · GET /v1/leads/enrich
Verify real-time latency, credit math & JSON schema
Frequently Asked Questions
- Does GoogleMapsAPI.io have a drop-in endpoint alias if I am migrating from Outscraper?
- Yes. In addition to GET /v1/places/search and GET /v1/places/reviews, our gateway supports migration aliases /maps/gmap/search-v3 and /maps/gmap/reviews-v3 plus parameter synonyms like query -> q and count -> limit so you can switch with minimal code changes.
- Do Pay-As-You-Go credits expire on GoogleMapsAPI.io?
- Never. One-time PAYG credit packs ($10 for 100,000 Credits, $50 for 550,000 Credits, $100 for 1,200,000 Credits, and $500 for 7,500,000 Credits) never expire. Monthly subscriptions ($29/$79/$199/$499) include +20% to +150% bonus credits for continuous high-volume pipelines.
- How can I test email & phone enrichment before writing code?
- Try our free browser-based Local Business Email Finder at /tools/local-business-email-finder, estimate volume costs at /tools/google-places-api-pricing-calculator, or sign up at /signup for 12,000 instant free credits ($1.20, no card required).