Google Local Services API

Search Google Local Services Ads: Google Guaranteed and Google Screened home-service pros with ratings, reviews, and phone numbers as clean JSON. Built for local SEO agencies, home-services lead gen, and competitor tracking. Pay per business returned. MCP-ready for Claude and AI agents.

MEDIAN LAGon demand
PARAMETERS7
TOTAL USERS12
MONTHLY ACTIVE11
TOTAL RUNS80
RUNS SUCCEEDED100.0%
RATING5.0 (1)

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
query string no REQUIRED (or use `queries`).
queries string[] no Provide a list of services to search in one run, e.g. ['plumber', 'electrician', 'roofer'].
location string no The US city or district to search in, e.g. 'Austin, TX' or 'Brooklyn, NY'. Resolved internally to the Google place ID (one billed resolution for each unique location).
dataCid string no Advanced: the decimal Google CID of a city or district level place, e.g. '6745062158417646970' for Austin, TX.
jobType string no Optional subcategory of the service, e.g. 'restore_power' for electricians or 'unclog_drain' for plumbers.
language string no en Two-letter language code for the results, e.g. 'en' or 'es'. Defaults to 'en'.
maxResultsPerQuery integer no Optional cap on how many businesses to return for each query (a listing typically returns up to about 20). — drives your bill

Worked examples

Basic — the required input, with the schema's own example values
{
  "query": "plumber",
  "queries": [
    "example"
  ]
}

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-services-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "plumber", "queries": ["example"]}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/google-local-services-api").call(
    run_input={'query': 'plumber', 'queries': ['example']}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)