Google Maps leads
Live · scraping ~12,400 places / hour right now

Turn Google Maps into
your lead source.

Extract data from thousands of Google Maps locations and businesses — reviews, reviewer details, images, contact info, opening hours, prices and more. Pick a query, pick a city, get a clean dataset back in minutes.

No subscription — pay in Ounie credits≈30 seconds per 1,000 resultsCSV · JSON · webhook · MCP · x402
● live scrape1,248 places · 38s
$ curl /api/scrape
query="dentists"
location="Austin, TX"
contacts=true
How it works

From query to dataset in three steps.

1

Describe your search

Pick a query ("yoga studios", "orthodontists", "vegan restaurants") and a location. Optionally enable contact enrichment to pull emails and social links from each business's website.

2

We run the scrape

Job lands in a queue. We hit Google Maps via our distributed scrape network — no bans, no captcha walls. Progress is live; you can close the tab and we'll email you when it's done.

3

Export anywhere

Download as CSV or JSON, fire a webhook into your warehouse, or hit the REST/x402 API. The dataset is yours — no DRM, no usage cap on what you've already paid for.

What you get back

Twelve fields per place. Clean. Normalized. Queryable.

Every row is the same shape no matter what you searched for or where. Phone numbers are normalized to E.164. Addresses are split into street, city, state, postal, country. Emails are deduped per site. Opening hours come back as a JSON array, not a free-text string a regex won't survive.

12
Fields per place
50k
Places per job
≈30s
Per 1,000 results
99.4%
Schema fidelity
Business name & address
Phone numbers
Website URLs
Emails (from site)
Ratings & review count
Review text + reviewer details
Opening hours by day
Price tier ($, $$, $$$)
Place images
Categories & tags
Webhooks on job complete
Native MCP server
REST + x402 API
Use cases

From "I need leads by Friday" to "this is our weekly data feed."

One scraper, six workflows, one queryable dataset. Most teams start with outbound and end up running four of these at once.

Outbound sales lists

Build qualified prospect lists in minutes. Pull business names, websites, emails, and direct phones for every plumber in Phoenix, every law firm in Boston, every yoga studio within a 5-mile radius.

≈2,500 SDR-ready rows / hour

Competitor tracking

Track where competitors operate, how they're rated, how many reviews they've collected this month, and where they're growing fastest. Schedule weekly re-scrapes so the dataset stays fresh.

delta-scrapes by week or city

Market analysis

Analyze market saturation by ZIP code. Find service gaps where the category exists but the rating bar is low. Benchmark local operators by review count, average rating, and pricing tier.

saturation maps in one query

Partnerships

Discover top-rated or highest-volume locations for outreach. Filter by 4.5+ stars and 500+ reviews to find candidates for a co-marketing program, affiliate roster, or distribution deal.

rank by rating × review count

Local SEO ops

Audit your local presence (and your clients') across every city you operate in. Watch for missing GBP fields, broken websites, off-brand categories, and competitor encroachment on your keywords.

schedule, diff, alert

Research workflows

Replace manual Google Maps searches with repeatable jobs. Save a query, queue weekly scrapes, pipe results into your warehouse via webhook. The dataset stays current; the work stops.

webhook → Snowflake / BigQuery
For developers & AI agents

REST, MCP, webhook, or pay-per-call x402.

Ounie accounts get a REST API with bearer-token auth and a native MCP server that drops into Cursor, Claude, ChatGPT, or the AI SDK — your assistant can scrape, poll, and export without writing any glue. One-off scripts can hit our x402 endpoint and pay per request in USDC. Same data, same schema.

MCPCursor · Claude · ChatGPT · AI SDK
RESTBearer token, webhooks, CSV/JSON
x402USDC on Base, no account
DashboardPoint-and-click UI
// One request. Streaming results.
const res = await fetch("https://google-maps.ounie.com/api/scrape", {
  method: "POST",
  headers: {
    "Authorization": "Bearer ${API_KEY}",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    query: "dentists",
    location: "Austin, TX",
    max_places: 1000,
    contact_details: true,
  }),
});

const { job_id } = await res.json();
// → poll /api/jobs/${job_id} or wait on the webhook
Pricing

Pay for places. Not seats, not setup, not surprises.

One scraped place costs 2 Ounie credits (3 with contact enrichment) — the same wallet every Ounie product shares. You are only charged for places actually returned; unused reserves refund automatically. AI agents can skip the account entirely and pay per call in USDC via x402.

FAQ

The questions we get on the first call.

We scrape Google Maps's public web surface — the same one a human visits with a browser. Most jurisdictions and case law (hiQ v. LinkedIn, Meta v. Bright Data) treat scraping publicly accessible data as lawful. We don't bypass authentication, don't pull private profiles, don't republish anything proprietary. You are responsible for how you use the data (CAN-SPAM, GDPR, CCPA all still apply to your outreach).

Sign in with Ounie, run your first scrape in 90 seconds.

Pay for places in credits, not seats. No subscription — keep every row you've already pulled.