Google Maps Places Search API
Search Google Maps by keyword and place, such as coffee shops in San Francisco. Get up to 120 places per call with address, phone, website, hours, rating, review count and coordinates.
- 1 credit per call
- Failed calls are free
- Updated
- googlemaps.search
{ "summary": { "has_more": true, "total_items": 20 }, "items": [ { "name": "The Coffee Movement", "rating": 4.8, "review_count": 637, "address": "1737 Balboa St, San Francisco, CA 94121", "cid": "2726196137705445702", "feature_id": "0x808587fb77f5f64d:0x25d564f177f99946", "lat": 37.7764721, "lng": -122.47782249999999, "maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJTfb1d_uHhYARRpn5d_Fk1SU", "place_id": "ChIJTfb1d_uHhYARRpn5d_Fk1SU", "website": "https://www.thecoffeemovement.com/", "hours": [ { "day": "Monday", "hours": "7 AM–2 PM" }, { "day": "Tuesday", "hours": "7 AM–2 PM" } ], "types": [ "Coffee shop" ] }, { "name": "The Coffee Berry SF", "rating": 4.9, "review_count": 657, "address": "1410 Lombard St, San Francisco, CA 94123", "cid": "5181132708478222499", "feature_id": "0x80858135f0db680b:0x47e714bf5f0080a3", "lat": 37.8014124, "lng": -122.4249979, "maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJC2jb8DWBhYARo4AAX78U50c", "phone": "(415) 800-7073", "place_id": "ChIJC2jb8DWBhYARo4AAX78U50c", "website": "http://thecoffeeberrysf.com/", "hours": [ { "day": "Monday", "hours": "7 AM–6 PM" }, { "day": "Tuesday", "hours": "7 AM–6 PM" } ], "types": [ "Coffee shop" ] } ]}
| # | Name | Address | Phone | Rating | Reviews | Website | Place ID | Cid | Lat | Lng |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | The Coffee Movement | 1737 Balboa St, San Francisco, CA 94121 | 4.8 | 637 | https://www.thecoffeemovement.com/ | ChIJTfb1d_uHhYARRpn5d_Fk1SU | 2726196137705445702 | 37.78 | -122.48 | |
| 2 | The Coffee Berry SF | 1410 Lombard St, San Francisco, CA 94123 | (415) 800-7073 | 4.9 | 657 | http://thecoffeeberrysf.com/ | ChIJC2jb8DWBhYARo4AAX78U50c | 5181132708478222499 | 37.8 | -122.42 |
| 3 | Paper Son Coffee | 303 2nd St N102, San Francisco, CA 94107 | (415) 355-4463 | 4.7 | 195 | http://papersoncoffee.com/ | ChIJXVRIc9aBhYARDuJoNx2IVAg | 600254309412168206 | 37.79 | -122.4 |
| 4 | Better Half Coffee | 1448 Pacific Ave, San Francisco, CA 94109 | 4.9 | 131 | https://betterhalf.coffee/ | ChIJrcoKeYqBhYAReNsG0XWfYZs | 11196405476986641272 | 37.8 | -122.42 | |
| 5 | Saint Frank Coffee | 2340 Polk St, San Francisco, CA 94109 | (415) 881-8062 | 4.5 | 1403 | http://www.saintfrankcoffee.com/ | ChIJmfgIQ-iAhYARq5osc-JybBo | 1904023059391355563 | 37.8 | -122.42 |
| 6 | Third Wheel Coffee | 991 Oak St, San Francisco, CA 94117 | 4.9 | 267 | http://www.thirdwheel.coffee/ | ChIJXVOcv9SBhYAR84QtGtCafxk | 1837357391573517555 | 37.77 | -122.44 | |
| 7 | Hedge Coffee | 434 Shotwell St, San Francisco, CA 94110 | (415) 603-9818 | 4.6 | 368 | http://hedge.coffee/ | ChIJN6Ruz-2AhYARgtds57VLcVw | 6661188568501507970 | 37.76 | -122.42 |
| 8 | Compton’s Coffee House | 1910 Fillmore St, San Francisco, CA 94115 | (415) 416-6173 | 4.7 | 385 | https://comptonscoffeehouse.com/ | ChIJ844xLVCBhYARnhgW3uG5GqU | 11897025745397356702 | 37.79 | -122.43 |
| 9 | Ocean Beach Cafe | 734 La Playa St, San Francisco, CA 94121 | (415) 753-9352 | 4.7 | 816 | https://www.oceanbeachcafe.com/ | ChIJg4qwGKeHhYARo41FFI_aOss | 14644257446403870115 | 37.77 | -122.51 |
| 10 | The Coffee Movement | 1030 Washington St, San Francisco, CA 94108 | 4.7 | 1416 | https://www.thecoffeemovement.com/ | ChIJoTMb3PKAhYARsXkQt469sBw | 2067360649617373617 | 37.79 | -122.41 |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| query | string | yes | What to search for, such as pizza restaurants or dentists. | coffee shops |
| lat | number | one of | Latitude to centre the search on, with lng, instead of a place name. | |
| lng | number | one of | Longitude to centre the search on, with lat. | |
| country | string | no | Two-letter country code, such as us or gb. It leans results towards that country rather than filtering them. | |
| lang | string | no | Language for names and labels, such as en or en-US. | |
| limit | integer | no | How many places to return, up to 120. The default is 60. | 20 |
| location | string | no | Where to search, such as New York, NY. It is added to the search the way you would type it in Google Maps. | San Francisco, CA |
| zoom | integer | no | How tight the search area is: higher is a smaller area, lower a wider one. The default is 14. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].name | string | The place's name on Google Maps. | The Coffee Movement |
| items[].address | string | The place's address as Google Maps shows it. | 1737 Balboa St, San Francisco, CA 94121 |
| items[].rating | number | The place's average star rating. | 4.8 |
| items[].review_count | integer | How many reviews the place has. | 637 |
| items[].website | string | The website the place links to. | https://www.thecoffeemovement.com/ |
| items[].place_id | string | Google's place ID for this place. | ChIJTfb1d_uHhYARRpn5d_Fk1SU |
| items[].cid | string | Google Maps' numeric ID (CID) for the place. | 2726196137705445702 |
| items[].feature_id | string | Google Maps' feature ID for the place; the reviews endpoint accepts it. | 0x808587fb77f5f64d:0x25d564f177f99946 |
| items[].hours | array | Opening hours, one entry per day. | 7 records |
| items[].hours[].day | string | Monday | |
| items[].hours[].hours | string | Opening hours on that day. | 7 AM–2 PM |
| items[].lat | number | The place's latitude. | 37.78 |
| items[].lng | number | The place's longitude. | -122.48 |
| items[].maps_url | string | A link to the place on Google Maps. | https://www.google.com/maps/place/?q=place_id:ChIJTfb1d_uHhYARR… |
| items[].types | array | The categories Google Maps lists for the place. | Coffee shop |
| items | array | The places found. | 20 records |
| summary | object | Totals for this response. | 2 fields |
| summary.has_more | boolean | Whether Google had more places than this response holds. | true |
| summary.total_items | integer | How many places this response holds. | 20 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "googlemaps.search", "input": { "limit": 20, "location": "San Francisco, CA", "query": "coffee shops" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "googlemaps.search", "input": { "limit": 20, "location": "San Francisco, CA", "query": "coffee shops" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "googlemaps.search", "input": { "limit": 20, "location": "San Francisco, CA", "query": "coffee shops" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Use Upscrape to find coffee shops in San Francisco on Google Maps. Give me a table of name, address, phone, website and rating, best rated first.
More from the Google Maps API
Google Maps Places Search API FAQ
The short answers. The docs have the long ones.
How much does the Google Maps Places Search API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send query. The input fields below list every option with its type and limits.
Do I need a Google Maps login?
No. It reads public Google Maps data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds googlemaps.search, checks its price and runs it with the same credits as the REST API.
Your first Google Maps call is free.
Up to 100 free credits to start, no card needed.