Google Local API | Local Pack & Business Search SERPs
Pricing
from $0.01 / 1,000 results
Google Local API | Local Pack & Business Search SERPs
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.
Pricing
from $0.01 / 1,000 results
Rating
5.0
(4)
Developer
John
Maintained by CommunityActor stats
9
Bookmarked
36
Total users
20
Monthly active users
a day ago
Last modified
Categories
Share
Google Local API | Local Pack & Business Search SERPs (MCP-ready)
Search Google Local results - the local pack inside Google Search SERPs - and get clean JSON back. Local businesses with rating, reviews, phone, hours, place_id, GPS coordinates, ads, and related place suggestions. Pay per page. MCP-ready for Claude, ChatGPT, Cursor, and other AI agents.
Pass a search query (and optionally a city) to the Google Local API and it returns the same structured data Google shows in the local pack on its Search results page: titles, ratings, review counts, addresses, phone numbers, opening hours, business categories, price tiers, place IDs, GPS coordinates, action links (directions, website, order, phone, reservations), and the related-place suggestions Google surfaces under the main results. Country, language, Google domain, and device controls are all exposed.
This is the only Apify Actor focused on the Google Local Search SERP (the local pack inside a normal Google Search), as opposed to scraping Google Maps directly. The result is 100% reliability (no browsers, no captchas), the exact data layout Google ships to users on the web, and per-page pricing that is predictable regardless of how many businesses appear.
Use with Claude, ChatGPT, Cursor & other AI agents (MCP)
This Actor is a first-class tool on the Apify MCP Server. Any MCP-compatible AI agent - Claude (Desktop, Web, Code), ChatGPT (via custom GPT or MCP bridge), Cursor, VS Code, Cline, Windsurf, Kilo Code, Opencode, Glama - can discover and call this Actor in natural language.
What an AI agent does with this:
User: "Find me the highest-rated dentists in Brooklyn that take walk-ins."
Agent calls
search-actors("google local")on the Apify MCP server, picks this Actor, calls it with{"q": "dentists walk-ins", "location": "Brooklyn, New York, United States", "max_pages": 2}, gets the local pack businesses back, ranks them by rating and review count, and returns a short list to the user with phone numbers.
Quick setup - Claude Desktop
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server"],"env": {"APIFY_TOKEN": "YOUR_APIFY_API_TOKEN"}}}}
Restart Claude Desktop. Then ask Claude something like "Find vegan restaurants in Austin with at least 4.5 stars and 200+ reviews." Claude will discover this Actor, ask permission to call it, and return structured results.
Quick setup - Cursor / VS Code / Cline / Windsurf
These editors support dynamic tool discovery, so after the first call this Actor is registered as a named tool for the rest of the session, and subsequent prompts skip the discovery step entirely.
Point your MCP client at:
https://mcp.apify.com
…with header Authorization: Bearer YOUR_APIFY_API_TOKEN. Full setup: Apify MCP integration docs.
Quick setup - ChatGPT (and other static MCP clients)
ChatGPT, Gemini CLI, and Amazon Q connect through the same https://mcp.apify.com endpoint and call this Actor via the generic call-actor tool. Same result, just no session-level tool registration.
Use cases for AI agents
- Local lead-gen agents - "Pull every plumber in {city} with under 50 reviews so I can pitch SEO services."
- Local SEO copilots - "Where does {brand} rank in the local pack for 'best coffee' across these 25 cities?"
- Reservation / booking assistants - "Find me three Italian places near Union Square with a 4.5+ rating and a phone link."
- Competitor monitoring agents - "Watch the top-3 local pack results for 'pediatric dentist Brooklyn' weekly."
- Market research agents - "How many CrossFit gyms are in each of these 100 zips, and what is the median rating?"
What this Actor does
A Google Local search wrapper that takes a query and returns the local pack businesses Google would show on the Search results page, plus the local ads and the related-place suggestions Google adds beneath them. Localize by country, language, Google domain, and device. Set max_pages to walk through more results. Each page is one billable event.
Whether you are powering an AI agent through MCP, building a local-business directory, running local SEO rank tracking, or generating outreach lists, this Actor produces the structured local pack data you need.
SEO benefit: Local pack data lets agencies and in-house teams measure visibility for geo-targeted keywords, benchmark competitors, and prioritize Google Business Profile optimization.
What data you get
| Field | Description |
|---|---|
| Business details | Title, type/category, description, price tier ($, $$, $$$, $$$$) |
| Ratings & reviews | Average star rating, total review count, raw review text label |
| Contact | Address, phone number, opening hours, "Open 24 hours" labels |
| Identifiers | place_id (Google CID), provider_id, lsig signature, place-search URL |
| Geo | gps_coordinates (latitude + longitude) for every listing |
| Action links | Directions, website, order, schedule, phone (when available) |
| Media | Thumbnail image, large thumbnail |
| Service options | Dine-in, takeout, delivery, in-store shopping, curbside pickup, no-contact delivery, etc. |
| Ads | Paid local placements (Google Local Ads) with the same business fields plus an ad title |
| Related places | "Discover more places" suggestions Google appends under the main results |
| Pagination | pagination.current (page index). Use the max_pages input to fetch more pages. |
| Metadata | Pages processed, total results estimate, pagination status |
Key features
Comprehensive coverage - Every public local pack field Google returns: rating, reviews, phone, hours, GPS, place_id, service options, ad placements, related places.
Country, language, and Google domain controls - gl (200+ country codes), hl (200+ languages), google_domain (regional google.* domains). Localize the search exactly the way a real user in that market would see it.
Device emulation - device switches between desktop (about 20 results per page) and mobile (about 10 results per page) layouts.
Smart pagination - Set max_pages to fetch as many pages as you need, or 0 for unlimited (bounded by a 20-page safety cap). The Actor walks pages automatically; you do not need to manage offsets.
Transparent pay-per-page pricing - $0.02 setup + $0.02 per page. No subscriptions, no result-count surprises, no per-business markup.
Production-grade reliability - API-backed instead of browser-based, so no captchas, no proxies, no rate-limit gymnastics. Schema-validated output. Structured error records for invalid input.
Pre-flight budget check - Before any work is done, the Actor compares the projected cost against your remaining spending limit and exits cleanly with an InsufficientFunds error record if there is not enough headroom.
MCP-ready - First-class tool on the Apify MCP Server for Claude, ChatGPT, Cursor, and any other MCP-compatible agent.
Usage examples
Example 1: Basic search
{"q": "coffee","location": "Austin, Texas, United States","max_pages": 1}
Example 2: Local SEO rank tracking
{"q": "best pizza","location": "Brooklyn, New York, United States","gl": "us","hl": "en","max_pages": 3}
Example 3: International market
{"q": "boulangerie","location": "Paris, France","google_domain": "google.fr","gl": "fr","hl": "fr","max_pages": 2}
Example 4: Mobile layout
{"q": "gym near me","location": "San Francisco, California, United States","device": "mobile","max_pages": 2}
Example 5: Specific place by Google CID
{"q": "the standard hotel","ludocid": "14414772292044717666","max_pages": 1}
Example output
Each dataset item is one page of Google Local results. Excerpt:
{"page_number": 1,"search_timestamp": "2026-05-12T10:30:00.123456","search_parameters": {"q": "coffee","location": "Austin, Texas, United States","gl": "us","hl": "en","device": "desktop","max_pages": 1},"search_metadata": {"pages_processed": 1,"max_pages_set": 1,"pagination_limit_reached": false,"total_results_estimate": null},"local_results": [{"position": 1,"title": "Houndstooth Coffee","rating": 4.6,"reviews_original": "(1.2K)","reviews": 1200,"price": "$$","type": "Coffee shop","address": "401 Congress Ave Suite 100C, Austin, TX","hours": "Open until 7 PM","place_id": "1234567890123456789","gps_coordinates": {"latitude": 30.2672, "longitude": -97.7431},"service_options": {"dine_in": true, "takeout": true, "delivery": false},"links": {"directions": "https://www.google.com/maps/dir/?...","website": "https://houndstoothcoffee.com","order": "https://order.example.com/houndstooth"},"thumbnail": "https://lh3.googleusercontent.com/...","thumbnail_large": "https://lh3.googleusercontent.com/...","place_id_search": "https://www.google.com/maps?cid=1234567890123456789"}],"ads_results": [],"local_map": {"image": "https://..."},"discover_more_places": [{"title": "Best coffee", "places": "Mozart's, Cafe Medici, Houndstooth..."}],"pagination": {"current": 1}}
Input parameters
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
q | string | yes | coffee | Search query |
location | string | no | Austin, Texas, United States | City-level location; cannot combine with uule |
uule | string | no | - | Google-encoded location for precise targeting |
google_domain | string | no | google.com | Regional Google domain |
gl | string | no | us | 2-letter country code |
hl | string | no | en | 2-letter language code |
ludocid | string | no | - | Google CID for a specific place |
tbs | string | no | - | Advanced filter string |
device | enum | no | desktop | desktop, tablet, or mobile |
max_pages | integer | no | 1 | 0 = unlimited (safety cap 20) |
Pricing
This Actor uses Apify's pay-per-event model:
| Event | Cost | When charged |
|---|---|---|
setup | $0.02 | Once per run |
page_processed | $0.02 | Per page of results |
Worked example: a 10-page run costs $0.02 (setup) + 10 x $0.02 (pages) = $0.22. A single-page run costs $0.04. Failed validation (missing q, conflicting location + uule) writes a structured error record to the dataset and exits without charging anything beyond setup.
You always know your maximum cost up front: setup + (max_pages x page_processed).
How to get started
- Click Try for free at the top of this Actor's Apify Store page.
- Set a
q(search query) and, if you want geo-targeted results, alocation. - Run the Actor. Each page is pushed as its own dataset item; you can export to JSON, CSV, or Excel.
- (Optional) Wire this Actor into Claude, ChatGPT, or Cursor through the Apify MCP Server - see the MCP section above.
For a Python quick-start and an MCP setup walkthrough, see the example repo on GitHub.
🔌 Integrations: Automate Local Pack Monitoring with the Google Local API
A single run answers one question: who ranks in the Austin coffee local pack today. The real value of the Google Local API comes from running it on a schedule, so local pack rankings, new competitors, and review counts land in your stack automatically. See the full list of Apify platform integrations.
Tasks and Schedules (the core recipe). Save one task per query and city you track, for example "plumber" in Phoenix, then attach a schedule from the Actor's Actions, then Schedule menu. Useful cron strings: 0 7 * * * (daily at 7 AM), 0 */6 * * * (every six hours), 0 9 * * 1 (Mondays). One schedule can trigger many tasks at once, so an agency can refresh every client keyword in a single nightly run. The Google local pack rank tracker for SEO agencies task is a ready-made starting point.
n8n. This API ships an n8n community node (see the n8n integration section below). A four-step monitor: Schedule Trigger, then the Google Local API node, then a Filter on rating or position, then Slack or email with the day's local pack.
Make and Zapier. The same pattern works no-code with Make and Zapier: trigger on a schedule, run the Actor, then route the results where you need them.
Store the history (Supabase). Send each run's businesses into a table so a local pack ranking history accumulates over time. No-code: the n8n Actor node, then a Supabase node. Or in Python, using the real Actor id johnvc/google-local-api and the output fields (each dataset item is one page with a local_results array; each business carries title, rating, reviews, place_id, and gps_coordinates):
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("YOUR_APIFY_TOKEN")supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")run = apify.actor("johnvc/google-local-api").call(run_input={"q": "plumber","location": "Phoenix, Arizona, United States","max_pages": 2,})rows = []for page in apify.dataset(run["defaultDatasetId"]).iterate_items():for biz in page.get("local_results", []):rows.append({"query": "plumber","city": "Phoenix","position": biz.get("position"),"title": biz.get("title"),"rating": biz.get("rating"),"reviews": biz.get("reviews"),"place_id": biz.get("place_id"),})supabase.table("local_pack_rankings").upsert(rows).execute()
MCP and AI agents. Add the Google Local API as a tool in Claude or Cursor through the Apify MCP server so an agent can pull the live local pack on demand (see the MCP section near the top). In Claude Code (free trial) or Claude Cowork (free trial), an agent can answer "which three plumbers rank in the Phoenix local pack, and what are their ratings?" with structured data.
Webhooks. For anything custom, fire an Apify webhook on ACTOR.RUN.SUCCEEDED to push each run's dataset into your own service.
🔗 Related Tools
Building a local search or lead-generation pipeline? These tools from the same catalog pair well with the Google Local API:
- Google Maps Places Scraper: pull the full place profile (photos, complete hours, popular times, and more) for any business you find in the local pack, by
place_id. - Google Maps Directions API: compute routes and travel times between the local businesses this Actor returns.
- Google Local Services API: the companion for Local Services Ads and Google Guaranteed pros, a different local surface from the organic local pack.
- Yelp Search API: cross-reference the same businesses on Yelp for extra reviews and category data.
Alternatives such as the Google SERP Scraper fold the local pack into a general search-results scraper: it carries no user rating and returns the local pack as one nested array among organic results, ads, and snippets. This API is purpose-built for the local pack and returns clean, per-business records with rating, reviews, phone, hours, place_id, and GPS coordinates.
FAQ
Is this a Google Maps scraper?
No. This Actor targets the Google Local Search SERP - the local pack inside a normal Google Search results page. The data layout, ranking, and ad behavior differ from Google Maps. Use this when you care about the SERP surface (local SEO rank tracking, snippet-style results, ad presence inside Search) rather than the Maps app.
How many businesses are returned per page?
Roughly 20 on desktop and 10 on mobile, matching what Google ships. Set device and max_pages to control.
Will my cost spike if Google returns more results than I expected?
No. You pay per page fetched, not per business. The cost of a single-page run is fixed at $0.04 regardless of how many local results that page contains.
Why are there both a location and a uule input?
location is the easy path (just a city name). uule is for advanced users who want sub-city or coordinate-level precision via Google's encoded-location format. They cannot be used together.
What happens if I supply an invalid input?
The Actor exits with a structured error record before doing any billable work. No setup or page charges are applied.
Does this work with AI agents through MCP?
Yes. See the Use with Claude, ChatGPT, Cursor & other AI agents (MCP) section near the top. MCP-compatible clients can discover and call this Actor natively.
Where do I see results?
In the Apify console under your run's Dataset tab. Export as JSON, CSV, or Excel from there. Each dataset item is one page; iterate them to walk all results.
What data does the Google Local API return?
Each dataset item is one page of the local pack. Every business in local_results carries a title, rating, reviews count, price tier, type (category), address, hours, place_id, gps_coordinates, service_options (dine-in, takeout, delivery), and action links (directions, website, order, phone). The record also includes ads_results (paid local placements) and discover_more_places (the related-place suggestions Google appends). See the What data you get section above for the full field list.
Can I schedule the Google Local API?
Yes, and this is where most of the value is. Any run can be automated on a schedule: save a task with your query and city, then attach a schedule from the Actor's Actions, then Schedule menu. Concrete cron strings: 0 7 * * * for daily at 7 AM, 0 */6 * * * for every six hours, and 0 9 * * 1 for Mondays. One schedule can trigger many tasks at once, so an agency can refresh every client keyword in a single run. See the Integrations section above for the full local pack monitoring recipe.
Should I use an API or a Web Scraper?
Both, and this Actor is both. An official API for local search is usually rate limited, quota bound, and often missing fields, while a hand-rolled web scraper fights captchas and breaks when the page changes. This Actor gives you the clean, structured result of a purpose-built API you call yourself, with no quotas and no browser to babysit, over the same local pack a real user sees.
Can I integrate this local search Scraper with other apps?
Yes. It connects to almost any cloud service through Apify integrations: Make, Zapier, Slack, the n8n community node, and webhooks on ACTOR.RUN.SUCCEEDED for custom actions. See the Integrations section above for full recipes.
Can I use the Google Local API with the API?
Yes. The Apify API runs the Actor, schedules it, and fetches datasets, and the apify-client package exists for both Node.js and Python. See the Actor's API tab for ready-made snippets in each language.
Can I use the Google Local API through an MCP server?
Yes. Add it as a tool in any MCP client (Claude, Cursor, and others) through the hosted Apify MCP server with the Actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/google-local-api. In Claude Code (free trial) or Claude Cowork (free trial) your agent can then answer questions like "who ranks in the Chicago dentist local pack?" with live data. See the Apify MCP docs.
Will AI replace Google for local business discovery?
AI assistants increasingly answer "find me a highly rated business near me" directly, but they still pull from the same underlying local results Google ranks. That makes the local pack more important to monitor, not less: feeding an agent live local pack data through MCP is how you keep AI answers grounded in current rankings, reviews, and contact details.
How do I track visibility in Google's AI Overviews for local businesses?
This Actor covers the organic local pack. To monitor how a local business shows up in Google's AI-generated answers, pair it with the Google AI Overview API, then compare the two surfaces for the same query and city.
How else can I collect local business data?
Pair the Google Local API with related tools in the same catalog: the Google Maps Places Scraper for full place profiles by place_id, the Google Maps Directions API for routing between businesses, the Google Local Services API for Local Services Ads, and the Yelp Search API for a second review source. The local pack itself comes from Google; for background see local search.
Whether you are wiring this up as an MCP tool for Claude, ChatGPT, or Cursor - or pulling Google Local data directly through Apify's API - you will have clean, structured local pack results in minutes. Click Try for free to run your first search.
n8n integration
Available as an n8n community node, n8n-nodes-google-local-api. In n8n: Settings, Community Nodes, install n8n-nodes-google-local-api, then use it in any workflow (it also works as an AI Agent tool).
Featured Tasks
Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.
-
Track local pack rankings for plumbers in Phoenix - which plumbers rank in the Phoenix local pack, with rating, reviews, phone, and address.
-
Find HVAC contractor leads in Dallas - HVAC contractors in Dallas from the local pack, with contact details for outreach.
-
Check the Google local pack for dentists in Chicago - who ranks in the Chicago dentist local pack, with rating, reviews, and rank.
-
Google local pack rank tracker for SEO agencies - track local pack rankings across keywords and cities for SEO clients.
-
Check Google local pack rankings for restaurants in Miami - which restaurants rank in the Miami local pack, with rating, reviews, and rank.
-
Track plumber near me local pack rankings - track which plumbers rank in Google's local pack for 'plumber near me' in any city.
-
Monitor local SERP visibility for dentist SEO - monitor a dentist's visibility in Google's local SERP for any city.
-
Find local plumber leads in Tampa Florida - build a plumber lead list for Tampa, Florida from Google's local results.
-
Find HVAC contractor leads in Phoenix Arizona - build an HVAC contractor lead list for Phoenix, Arizona from Google's local results.
-
Build a roofer contact list for Dallas Texas - get every roofer in Google's local results for Dallas, Texas as structured data.
-
List water damage restoration companies in Houston - list water damage restoration companies in Houston from Google's local results, with phone, address, rating, review count, and GPS for each business..
-
Find med spas in Scottsdale with ratings - find every med spa in Google's local results for Scottsdale, Arizona.
-
Find water damage restoration leads in Dallas - find water damage restoration companies in Dallas from the Google local pack.
-
Find water damage restoration leads in Phoenix - find water damage restoration companies in Phoenix from the Google local pack.
-
Find dental implant leads in Phoenix - find dental implant providers in Phoenix from the Google local pack.
-
Find assisted living facility leads in Phoenix - find assisted living facilities in Phoenix from the Google local pack.
-
Find financial advisor leads in Denver - find financial advisors in Denver from the Google local pack.
-
Find med spa leads in Dallas - find med spas in Dallas from the Google local pack.
-
Find home care agency leads in Philadelphia - find home care agencies in Philadelphia from the Google local pack.
-
Find immigration lawyer leads in New York - find immigration lawyers in New York from the Google local pack.
-
Find tree service leads in Houston - find tree service companies in Houston from the Google local pack.
-
Find pest control leads in Tampa - find pest control companies in Tampa from the Google local pack.
-
Find junk removal leads in Houston - find junk removal companies in Houston from the Google local pack.
-
Find appliance repair leads in Chicago - find appliance repair companies in Chicago from the Google local pack.
-
Find concrete contractor leads in Dallas - find concrete contractors in Dallas from the Google local pack.
-
Find solar installer leads in San Diego - find solar installers in San Diego from the Google local pack.
-
Find Medicare insurance agent leads in Houston - find Medicare insurance agents in Houston from the Google local pack.
-
Find mortgage broker leads in Chicago - find mortgage brokers in Chicago from the Google local pack.
-
Find painting contractor leads in Denver - find painting contractors in Denver from the Google local pack.
-
Find water damage restoration leads - find water damage restoration companies in any city from the Google local pack.
-
Find dental implant leads - find dental implant providers in any city from the Google local pack.
-
Find assisted living facility leads - find assisted living facilities in any city from the Google local pack.
-
Find financial advisor leads - find financial advisors in any city from the Google local pack.
-
Find med spa leads - find med spas in any city from the Google local pack.
-
Find home care agency leads - find home care agencies in any city from the Google local pack.
-
Find immigration lawyer leads - find immigration lawyers in any city from the Google local pack.
-
Find tree service leads - find tree service companies in any city from the Google local pack.
-
Find pest control leads - find pest control companies in any city from the Google local pack.
-
Find junk removal leads - find junk removal companies in any city from the Google local pack.
-
Find appliance repair leads - find appliance repair companies in any city from the Google local pack.
-
Find concrete contractor leads - find concrete contractors in any city from the Google local pack.
-
Find solar installer leads - find solar installers in any city from the Google local pack.
-
Find Medicare insurance agent leads - find Medicare insurance agents in any city from the Google local pack.
-
Find mortgage broker leads - find mortgage brokers in any city from the Google local pack.
-
Find painting contractor leads - find painting contractors in any city from the Google local pack.
Last Updated: 2026.07.14