Install
openclaw skills install google-maps-extractor-apifyUse this skill when the user needs Google Maps place and business data through an Apify actor, including Google Places data, local business listings, addresses, websites, phones, ratings, review counts, opening hours, coordinates, Place IDs, CIDs, Google Maps URLs, and optional public website contact enrichment from keywords, URLs, Place IDs, or map areas.
openclaw skills install google-maps-extractor-apifyThis skill helps an AI agent run the Apify Google Maps Extractor actor for Google Maps place data, local business listings, and optional public website contact enrichment.
Default actor:
2A4RTA5PjN7McqJXxx_guru/google-maps-extractorhttps://apify.com/x_guru/google-maps-extractorhttps://console.apify.com/actors/2A4RTA5PjN7McqJXx/sourceUse this skill when a user asks to:
searchStringsArray, locationQuery, maxCrawledPlacesPerSearch, and language for normal search.startUrls or placeIds for exact known sources.maxTotalChargeUsd when spend matters.scripts/google_maps_extractor_actor.py or call the Apify API directly.RUN_SUMMARY for diagnostics.searchStringsArray, locationQuery, and maxCrawledPlacesPerSearch.startUrls as objects: [{"url": "https://www.google.com/maps/..."}].placeIds.locationQuery.countryCode, city, state, county, postalCode, customGeolocation, and strictLocationBounds.locationQuery has priority when it is present and specific.allPlacesNoSearchAction="all_visible" and optional allPlacesZoom; use it only for concrete local areas.categoryFilterWords, placeCategories, searchMatching, placeMinimumStars, website, and skipClosedPlaces.scrapeContacts only when the user needs public website emails, phones, or social links.scrapePlaceDetailPage when the user needs richer opening hours, menu links, plus code, popular times, inside places, web results, or detailed place metadata.scrapeTableReservationProvider, scrapeOrderOnline, includeWebResults, and scrapeDirectories.Use the Apify API token from the environment:
export APIFY_TOKEN='apify_api_xxx'
Never hardcode or print the full token in user-facing output.
The bundled script uses only Python standard library.
Run a quick search:
APIFY_TOKEN='apify_api_xxx' \
python3 scripts/google_maps_extractor_actor.py quick-search \
--query "bike repair shop" \
--location "Portland, Oregon, USA" \
--limit 25 \
--budget-usd 1
Run with public website contact enrichment:
APIFY_TOKEN='apify_api_xxx' \
python3 scripts/google_maps_extractor_actor.py quick-search \
--query "roofing contractor" \
--location "Denver, Colorado, USA" \
--limit 50 \
--with-contacts \
--only-with-website \
--budget-usd 2
Run by Google Maps URL:
APIFY_TOKEN='apify_api_xxx' \
python3 scripts/google_maps_extractor_actor.py quick-url \
--url "https://www.google.com/maps/search/restaurants+near+New+York,+NY" \
--limit 50 \
--budget-usd 1
Run by Place ID:
APIFY_TOKEN='apify_api_xxx' \
python3 scripts/google_maps_extractor_actor.py quick-place-id \
--place-id "ChIJN1t_tDeuEmsRUsoyG83frY4" \
--details \
--budget-usd 1
Run custom JSON:
APIFY_TOKEN='apify_api_xxx' \
python3 scripts/google_maps_extractor_actor.py run \
--input-file references/sample_input.json \
--budget-usd 1
{
"searchStringsArray": ["bike repair shop"],
"locationQuery": "Portland, Oregon, USA",
"maxCrawledPlacesPerSearch": 100,
"language": "en"
}
{
"searchStringsArray": ["roofing contractor"],
"locationQuery": "Denver, Colorado, USA",
"maxCrawledPlacesPerSearch": 50,
"website": "withWebsite",
"scrapeContacts": true
}
{
"startUrls": [
{
"url": "https://www.google.com/maps/search/restaurants+near+New+York,+NY"
}
],
"maxCrawledPlacesPerSearch": 100,
"language": "en"
}
{
"placeIds": ["ChIJN1t_tDeuEmsRUsoyG83frY4"],
"maxCrawledPlacesPerSearch": 1,
"scrapePlaceDetailPage": true
}
The runner returns JSON:
okactorIdfetchedAtinputUseditemCountrows[]Rows are actor dataset items. Important groups:
title, subTitle, description, price, categoryName, categories, rank, isAdvertisementaddress, street, city, state, postalCode, countryCode, location, plusCodewebsite, phone, phoneUnformatted, emails, additionalPhones, social profile arraystotalScore, reviewsCount, reviewsDistribution, reviewsTagsopeningHours, popularTimesHistogram, menu, servicesLink, reserveTableUrl, googleFoodUrl, peopleAlsoSearch, placesTagsplaceId, fid, cid, kgmid, url, searchPageUrl, searchPageLoadedUrlsearchString, language, scrapedAtFor the full contract, read references/input-output-contract.md.
RUN_SUMMARY.scrapeContacts was enabled.scrapePlaceDetailPage was enabled.maxTotalChargeUsd for any user concerned about spend.references/input-output-contract.mdreferences/sample_input.jsonreferences/troubleshooting.md