Google API: Search places
Finds businesses and places near a location on Google Maps, in Google Maps order, with rating, hours, contact details and links when shown.
Unofficial. Not affiliated with or endorsed by Google.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Page optional
page Page of results, such as 2. Each page has up to max_results places.
1 (default)
Whole number 1 or more.
- What, required
what Place type or business name, such as dentist or Starbucks.
pizza
- Where, required
where City, neighborhood, address or postcode, such as Austin, TX.
Austin, TX
- Language optional
language Language for place details, such as English or Spanish.
English (default)
- Open Now optional
open_now Only include places Google shows as open now, such as true.
false (default)
True or false.
- Min Rating optional
min_rating Only include places rated at least this many stars, such as 4.5.
4.5
Number from 1 to 5.
- Max Results optional
max_results Maximum number of places, such as 20. Up to 100.
5
Whole number from 1 to 100. Default
20.
Input as JSON
{ "what": "pizza", "where": "Austin, TX", "min_rating": 4.5, "max_results": 5}Output
{ "places": [ { "name": "Home Slice Pizza", "rating": 4.7, "address": "1415 S Congress Ave, Austin, TX 78704", "website": "https://homeslicepizza.com/location/south-congress/" , "category": "Pizza restaurant", "latitude": 30.2492286, "open_now": false, "longitude": -97.7495328, "price_level": null, "today_hours": "11 AM–11 PM", "phone_number": "(512) 444-7437", "review_count": 11123, "google_place_id": "ChIJu96UVvy0RIYRCPxWa4TSr6o", "google_maps_link": "https://www.google.com/maps/search/?api=1&query=Home%20Slice%20Pizza%201415%20S%20Congress%20Ave%2C%20Austin%2C%20TX%2078704&query_place_id=ChIJu96UVvy0RIYRCPxWa4TSr6o" }, { "name": "DeSano Pizzeria Napoletana - Downtown Austin", "rating": 4.7, "address": "301 Lavaca St Ste 200, Austin, TX 78701", "website": "https://desanopizza.com/downtown-austin?utm_source=google" , "category": "Pizza restaurant", "latitude": 30.266316999999997, "open_now": false, "longitude": -97.74595939999999, "price_level": null, "today_hours": "11:30 AM–10 PM", "phone_number": "(512) 256-2426", "review_count": 1434, "google_place_id": "ChIJH1vZsj21RIYR9QNowHxmpDU", "google_maps_link": "https://www.google.com/maps/search/?api=1&query=DeSano%20Pizzeria%20Napoletana%20-%20Downtown%20Austin%20301%20Lavaca%20St%20Ste%20200%2C%20Austin%2C%20TX%2078701&query_place_id=ChIJH1vZsj21RIYR9QNowHxmpDU" }, { "name": "Joe's Slice of Sicily", "rating": 4.8, "address": "Inside Barton Hills Market, 1220 Barton Hills Dr, Austin, TX 78704", "website": "https://www.joessliceofsicily.com/" , "category": "Pizza restaurant", "latitude": 30.2619242, "open_now": false, "longitude": -97.77499189999999, "price_level": null, "today_hours": "11 AM–9 PM", "phone_number": "(512) 920-0880", "review_count": 336, "google_place_id": "ChIJM-q3TwC1RIYR4cMeGroj4wk", "google_maps_link": "https://www.google.com/maps/search/?api=1&query=Joe%27s%20Slice%20of%20Sicily%20Inside%20Barton%20Hills%20Market%2C%201220%20Barton%20Hills%20Dr%2C%20Austin%2C%20TX%2078704&query_place_id=ChIJM-q3TwC1RIYR4cMeGroj4wk" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"google.com/search_places","input":{"what":"pizza","where":"Austin, TX","min_rating":4.5,"max_results":5}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "google.com/search_places" , "input": { "what": "pizza", "where": "Austin, TX", "min_rating": 4.5, "max_results": 5 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "google.com/search_places" , "input": { "what": "pizza", "where": "Austin, TX", "min_rating": 4.5, "max_results": 5 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run google.com/search_places# with {"what":"pizza","where":"Austin, TX","min_rating":4.5,"max_results":5}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "what", "where" ], "properties": { "page": { "type": "integer", "default": 1, "minimum": 1, "description": "Page of results, such as 2. Each page has up to max_results places." }, "what": { "type": "string", "minLength": 1, "description": "Place type or business name, such as dentist or Starbucks." }, "where": { "type": "string", "minLength": 1, "description": "City, neighborhood, address or postcode, such as Austin, TX." }, "language": { "type": "string", "default": "English", "description": "Language for place details, such as English or Spanish." }, "open_now": { "type": "boolean", "default": false, "description": "Only include places Google shows as open now, such as true." }, "min_rating": { "type": "number", "maximum": 5, "minimum": 1, "description": "Only include places rated at least this many stars, such as 4.5." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of places, such as 20. Up to 100." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "places" ], "properties": { "places": { "type": "array", "items": { "type": "object", "required": [ "name", "category", "rating", "review_count", "price_level", "address", "phone_number", "website", "today_hours", "open_now", "google_maps_link", "google_place_id", "latitude", "longitude" ], "properties": { "name": { "type": [ "string", "null" ], "description": "Name of the place." }, "rating": { "type": [ "number", "null" ], "description": "Star rating out of five." }, "address": { "type": [ "string", "null" ], "description": "Full street address." }, "website": { "type": [ "string", "null" ], "description": "Business website." }, "category": { "type": [ "string", "null" ], "description": "Primary place category." }, "latitude": { "type": [ "number", "null" ], "description": "Latitude." }, "open_now": { "type": [ "boolean", "null" ], "description": "Whether Google shows the place as open now." }, "longitude": { "type": [ "number", "null" ], "description": "Longitude." }, "price_level": { "type": [ "string", "null" ], "description": "Price displayed by Google, such as $10–20 or $$." }, "today_hours": { "type": [ "string", "null" ], "description": "Opening hours shown for today." }, "phone_number": { "type": [ "string", "null" ], "description": "Phone number." }, "review_count": { "type": [ "integer", "null" ], "description": "Number of reviews." }, "google_place_id": { "type": [ "string", "null" ], "description": "Google place ID." }, "google_maps_link": { "type": [ "string", "null" ], "description": "Google Maps page link." } }, "additionalProperties": false }, "description": "Matching places in Google Maps order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
google.com/search_places- Returns
- name, category, rating, review count, address, phone, website, today's hours, open now, map link, place ID, coordinates
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method google.com/search_places with the inputs above.
Ask your agent
- Find dentists near Austin, TX with at least 4.5 stars and give me their phone numbers and websites
- Which pharmacies are open right now around 10001? I need addresses and today's hours
- Pull up the second page of Google Maps results for coffee shops in Shoreditch, London
- List up to 50 auto repair shops in Phoenix, AZ with ratings, review counts and coordinates
- Busco restaurantes de tacos en Guadalajara abiertos ahora en Google Maps, con calificación mínima de 4 estrellas, detalles en español
See more
All Google methodsLooks up a public Google Maps place by name and location and returns its profile: address, rating, hours, phone, website and photos.
google.com/get_placeFinds a place on Google Maps by name and location and returns its public reviews in the chosen order.
google.com/get_place_reviewsFinds places to stay in a city or area for given dates on Google Hotels, with nightly and total prices, hotel class, guest ratings, amenities, address and cheapest booking site. Optional filters for price, stars and rating; vacation rentals are left out. Prices and availability can change.
google.com/search_hotelsFinds a hotel on Google Hotels by name and city and returns its guest reviews in the chosen order, its Google rating and review count, and topic ratings averaged from the returned reviews that rate each topic.
google.com/get_hotel_reviewsGets up to three Google Maps routes between two places, with distances, travel times and step-by-step directions.
google.com/get_directionsFinds Android apps on Google Play by keywords, in Play search order, with each listing's developer, star rating, price and currency for the chosen country, download range and link. Results are limited to apps shown on the public search page.
play.google.com/search_appsGets Google Search autocomplete suggestions for words typed so far, in Google's order, for a chosen country and language.
google.com/get_search_suggestionsGets public user reviews for an Android app on Google Play. The app can be given by name, Play Store link, or app ID.
play.google.com/get_app_reviews