Google Places Search
Pricing
from $1.50 / 1,000 place scrapeds
Google Places Search
Extract business and place data for any area or free-text query — names, addresses, phones, websites, opening hours, ratings, and review counts.
Google Places Search
Pricing
from $1.50 / 1,000 place scrapeds
Extract business and place data for any area or free-text query — names, addresses, phones, websites, opening hours, ratings, and review counts.
e.g. "Restaurants and cafes in Brooklyn rated above 4 stars" or "Cheap hostels within 5 km of Bondi Beach".
What to look for, e.g. restaurant, cafe, bar. Each term is searched separately; results are merged and duplicates removed.
[ "restaurant", "cafe"]Only keep places of these types. Leave empty for all types. If no search term is given, each type is used as the term too.
[ "restaurant", "cafe"]A rectangle as lowLat,lowLng,highLat,highLng. E.g. 48.80,2.25,48.90,2.40
A point plus a radius in km: lat,lng,radiusKm. E.g. 48.8566,2.3522,5
A region reference as country:ADMtype:shapeID, e.g. FRA:ADM1:12345.
A GeoJSON polygon — the coordinates array (rings of [lng,lat], longitude first) as a JSON string.
Google place IDs (e.g. ChIJ...) to fetch directly. Results are merged and duplicates removed.
[ "ChIJ..."]Only keep places rated this high or higher (0 to 5, in 0.5 steps).
Only keep these price levels.
[ "MODERATE", "EXPENSIVE"]Bias results toward a country/region (2-letter code, e.g. fr, us).
Only keep places whose primary type exactly matches one of the Place types.
Also include businesses that visit or deliver to customers but have no physical address (e.g. plumbers, cleaning services).
Also include businesses that are not open yet but will open in the future.
Conditions checked against each place's fetched details (the search request itself can't filter these). Each key is a detail field and each value is a condition. Fields: website, phone ({"exists": true|false}), is_open ({"eq": true|false}), reviews, rating ({"gt"|"gte"|"lt"|"lte": number}), price ({"in": ["MODERATE",...]} or {"contains": "$$"}), name, group ({"contains": "..."} or {"not_contains": ["decor"]} to include/exclude by business name or Google category; matching ignores case and accents).
{ "website": { "exists": false }, "reviews": { "gte": 200 }}Maximum number of places to return across the whole run. Higher values take longer and cost more.
Language code for returned text, e.g. en, fr, es, de, pt-BR, zh-TW. Results are returned in this language where the source supports it.
Optional. Continue a run that was aborted or failed: paste its run id and the targets it already finished are skipped, so the new run only scrapes what is left. Leave empty for a normal run. A run's id is shown in the Apify Console run detail, or run scripts/resurrect.mjs --run .