Google Maps Scraper API
Every business a Google Maps search shows, with phone, website, and rating.
Overview
What teams build with the Google Maps Scraper API
Local lead lists
Search plumbers in Denver or dentists in Chicago and get each business's phone, website, and address.
Market mapping
Count and plot competitors around a point by category, rating, and price level, from their coordinates.
Listing audits
Check that your locations show the right phone, hours, and website, and how they rank for a search nearby.
Official API available
Is there an official Google Maps API?
Yes. Google's Places API is official, and priced per request by the fields you ask for.
Google's Places API (New) returns up to 20 places per text search page. It prices each call by the most expensive field requested: phone number, website, rating, and opening hours are Enterprise fields, and Text Search Enterprise is listed at $35 per 1,000 requests up to 500,000 a month, after a free monthly allowance.
Clair reads the Maps results list the way a visitor scrolls it, returning every place it loaded, usually 20 to 70, with phone, website, and coordinates in one request. The trade-off is that it is a scrape: Google sometimes gives logged-out visitors a limited view of a place, and place.view says when that happened.
Read from these pages on September 28, 2026.
Data samples
From the page to JSON
The page the Google Maps Scraper API reads, and the response it returns for the same query.
https://www.google.com/maps/search/plumbers+in+Denver?hl=en

{
"engine": "google_maps",
"family": "local",
"query": {
"q": "plumbers in Denver",
"country": "us",
"latitude": null,
"longitude": null,
"zoom": null
},
"count": 65,
"results": [
{
"position": 1,
"title": "Applewood Plumbing Heating & Electric",
"place_id": "ChIJkWUJx22Ha4cRVVLq4AJk7Ng",
"data_id": "0x876b876dc7096591:0xd8ec6402e0ea5255",
"cid": "15630978370222314069",
"latitude": 39.7583004,
"longitude": -105.0512657,
"rating": 4.8,
"reviews_count": 17793,
"category": "Plumber",
"price": null,
"address": "5000 W 29th Ave",
"open_state": "Open · Closes 10 PM",
"phone": "(303) 444-1633",
"website": "https://www.applewoodfixit.com/",
"description": null,
"wheelchair_accessible": null,
"action_links": [
{
"label": "Book online",
"url": "https://book.servicetitan.com/lhxa271djh03w5bfje81s0qd"
}
],
"thumbnail": null,
"sponsored": false,
"url": "https://www.google.com/maps/place/?q=place_id:ChIJkWUJx22Ha4cRVVLq4AJk7Ng"
},
{
"position": 2,
"title": "Brothers Plumbing, Heating & Electric",
"place_id": "ChIJszGcvzV0bIcR3_6j5Gru8sM",
"data_id": "0x876c7435bf9c31b3:0xc3f2ee6ae4a3fedf",
"cid": "14119609924629823199",
"latitude": 39.8096461,
"longitude": -104.9881312,
"rating": 4.7,
"reviews_count": 9173,
"category": "Plumber",
"price": null,
"address": "6201 Broadway",
"open_state": "Open · Closes 8 PM",
"phone": "(720) 994-7132",
"website": "http://www.brothersplumbing.com/",
"description": null,
"wheelchair_accessible": true,
"action_links": [
{
"label": "Book online",
"url": "https://book.servicetitan.com/xlcp8o3v3fnyrpk2sh94bcux"
}
],
"thumbnail": null,
"sponsored": false,
"url": "https://www.google.com/maps/place/?q=place_id:ChIJszGcvzV0bIcR3_6j5Gru8sM"
}
],
"next_cursor": null
}Source page captured separately from the recorded response, so live values can differ.
Code
Integrate in minutes
One host, one Bearer key for every Clair API. Each call returns JSON with the same envelope, so a second API is a new path, not a new client.
curl -G "https://api.clair.im/v1/google-maps/search?q=plumbers+in+Denver&country=us" \ -H "Authorization: Bearer YOUR_API_KEY"
Reference
Query and response fields
One scrolled Maps results list per request, usually 20 to 70 places, repeats removed. Put the area in q, or pass latitude and longitude to search around a point. Trade searches (plumbers, HVAC) show phone and website on each card. Storefront searches (cafés, restaurants, shops, dentists) show a photo instead, with no phone, website, or usually price, so call GET /v1/google-maps/place for those.
GET /v1/google-maps/search
Authorizationheader · stringrequired
- Bearer <api_key>. Create keys under API keys.
qstringrequired
- What and where, as typed into Maps:
coffee in Austin TX. countrystring
- ISO 3166-1 alpha-2 country the search is made from. Default
us. Results are in English. latitudenumber
- Center the map here. Send with
longitude. longitudenumber
- Center the map here. Send with
latitude. zoominteger
- Map zoom 3 to 21 when
latitudeis set. Default 14.
Pricing
One subscription. Every API. | |||||
|---|---|---|---|---|---|
| Google Maps | $11.50/1K requests Up to 86 requests | $10.00/1K requests Up to 3K requests | $9.00/1K requests Up to 11.1K requests | $8.00/1K requests Up to 37.5K requests | Custom rate Volume pricing |
Paid plans run at 10 requests a second. Need more? Email us and we will raise your limit.
How many places does a search return?
Every place the Maps results list loads after scrolling, usually 20 to 70, with repeats removed.
Why are some phones or websites missing?
Maps shows them on the result card for service businesses but often not for restaurants and shops. The Google Maps Place API reads them from the place page.
Can I search around a location?
Yes. Name the area in q, such as coffee in Austin TX, or pass latitude, longitude, and a zoom level.
What does the Google Maps Scraper API return?
One scrolled Maps results list per request, usually 20 to 70 places, repeats removed. Put the area in q, or pass latitude and longitude to search around a point. Trade searches (plumbers, HVAC) show phone and website on each card. Storefront searches (cafés, restaurants, shops, dentists) show a photo instead, with no phone, website, or usually price, so call GET /v1/google-maps/place for those. place_id comes from a search result or any Google Places source. place.view is full or limited: the limited view has no review count, histogram, topics, or reviews, and usually only today's hours. reviews are the few Google shows first, with their full text.
Which endpoints does a plan include?
All of them: Search, Place. Each call spends this API's rate from your plan's balance.
How is a request counted?
Each call is one request, and each extra page is a new call. A malformed request (400) is not counted, and a request that fails on our side (5xx) is refunded.
Is there a free tier?
Yes. The free tier is $1 of usage a month across every Clair API, with no card: about 86 Google Maps Scraper API requests if it all goes here. It resets monthly, and calls stop when the balance runs out.
What happens when I use up my plan's balance?
The API returns 429 until the next period, on every plan, and nothing is billed past the balance. An upgrade starts a new month at once, and the unused balance carries over.
Does my plan cover other Clair APIs?
Yes. One plan and one key cover every Clair API, and every call spends from the same monthly balance. Your first call starts the free tier.
Guides
Learn more about the Google Maps Scraper API
Use cases
- Local lead generation
Businesses by category and city, with phones and websites.
- Local SEO competitor audit
Where a business ranks on Maps, and why others outrank it.
Comparisons
Google Maps
More from the Google Maps API
The same key covers every endpoint. See the full Google Maps API.
Related
Related APIs
APIs teams often combine with the Google Maps API.
One plan, every API.
Your plan's price is your monthly usage balance, spent across every Clair API. Start free, no card.

Glassdoor API
Crunchbase API
Bloomberg API
Associated Press API