โ† Apify Store
AS
Apify Store
/microworlds/crawler-google-places

Google Maps Scraper $1.5/1k places ๐Ÿ“ with emails ๐Ÿ“ง

Extract data from thousands of Google Maps locations and businesses, including reviews, reviewer details, images, contact info, including full name, email, and job title, opening hours, prices & more.

liveverifiedasyncdegraded ยท 13.1s~30s typical
lead generationaiagentsgoogleplaces
$0.0044
per result + $0.005 call
plus $0.001 platform fee per run
Actor charges $0.0035 per result; Cracked adds 25% plus a $0.005 call fee
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /microworlds/crawler-google-places for me.

Input

FieldTypeDescription
keywordsarrayList of search terms to look for on Google Maps. Each keyword will be searched independently in the specified location. E.g., restaurants, cafes, dentists, plumbers.
locationstringThe geographic area to search in. Can be a city, state, country, or any place name. The scraper will geocode this into a polygon and split it into grid segments for thorough coverage. E.g., Palm Beach, FL, USA or Berlin, Germany.
max_result_per_keywordintegerMaximum number of unique places to collect per keyword. The scraper stops searching for a keyword once this limit is reached. Set to 0 or leave empty for unlimited results.
include_nearby_placesbooleanWhen enabled, places located just outside the location's strict boundary are kept instead of being dropped as 'out of location'. The buffer scales with the location type (~5 km for cities/POIs, ~10 km for states, ~25 km for countries). Useful when results near the border of a city or region are being filtered out. default false
scrape_contactsbooleanEnrich Google Maps places with contact details extracted from the business website, including business emails and social media profiles (Meta, LinkedIn, X, etc). Price is charged per place at $1.5 per 1000 places that have a website. default false
custom_geolocationobjectCustom GeoJSON shape, used **only when the `Location` field is empty**. If both `Location` and `Custom Geolocation` are set, `Location` wins and this field is ignored. Coordinates use **`[longitude, latitude]`** order (GeoJSON standard). Supported shapes: โ€ข **Polygon** โ€” `{"type":"Polygon","coordinates":[[[lon,lat],...]]}` โ€ข **MultiPolygon** โ€” `{"type":"MultiPolygon","coordinates":[[[[lon,lat],...]]]}` โ€ข **Circle** โ€” `{"type":"Point","coordinates":[lon,lat],"radius_km":5}` (or `"type":"Circle"`) `Feature` and `FeatureCollection` envelopes (e.g. exports from geojson.io or Google My Maps) are auto-unwrapped.

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/microworlds/crawler-google-places","input":{"keywords":["restaurants"],"location":"New York, US","max_result_per_keyword":3},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /microworlds/crawler-google-places -i '{"keywords":["restaurants"],"location":"New York, US","max_result_per_keyword":3}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/microworlds/crawler-google-places", input: {"keywords":["restaurants"],"location":"New York, US","max_result_per_keyword":3}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.