Google Local API

Search Google Local results - the local pack inside Google Search SERPs. Extract businesses with rating, reviews, phone, hours, place_id, GPS coordinates. Country, language, and device targeting. Pay per page. MCP-ready for AI agents.

MEDIAN LAGon demand
PARAMETERS10
TOTAL USERS38
MONTHLY ACTIVE18
TOTAL RUNS2,890
RUNS SUCCEEDED92.6%
RATING5.0 (4)

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
q string yes The Google Local search query.
location string no City-level location (e.g., 'Austin, Texas, United States', 'London', 'Brooklyn, New York').
uule string no Advanced: Google-encoded location string for precise geographic targeting.
google_domain string no Which Google domain to query (e.g., 'google.com', 'google.co.uk', 'google.fr', 'google.de').
gl string no Two-letter country code (ISO 3166-1 alpha-2, e.g., 'us', 'uk', 'fr', 'de', 'jp').
hl string no Two-letter language code (ISO 639-1, e.g., 'en', 'es', 'fr', 'de', 'ja').
ludocid string no Advanced: Google customer identifier (CID) for a specific place.
tbs string no Advanced: Google search filter string for criteria not exposed elsewhere.
device enum no desktop Which device to emulate.
max_pages integer no 1 Maximum number of result pages to fetch (1-indexed). — drives your bill

Worked examples

Basic — the required input, with the schema's own example values
{
  "q": "coffee"
}

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~google-local-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"q": "coffee"}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/google-local-api").call(
    run_input={'q': 'coffee'}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)