2,500 free credits — no credit card required. Start building

SenseCollect logoSenseCollect
  • Sources
  • Solutions
  • Pricing
  • Tools
  • Blog
  • About
DocsGet API key
SourcesSolutionsPricingToolsBlogAboutDocs
Get API keyLog in
Blog
Google Maps5 min readUpdated 2026-08-07

Scraping the Google Local Pack: What You Can and Cannot Get

The local pack, local services ads, and the map view return different data. Here is what each surface actually exposes, what no API can give you, and how to collect the parts that exist.

Search for dentists near me and Google shows you at least three different things that all look like a list of local businesses. They are not the same surface, they do not carry the same fields, and only some of them can be collected reliably.

This trips people up constantly. Someone asks for a "local pack scraper", builds against one surface, and finds half the fields they expected are missing — because those fields were never on that surface to begin with.

Here is what each one actually is.

The three surfaces

1. The local pack (the three-result box)

The block of three businesses with a map above it, sitting between the ads and the organic results. It is a preview of Maps results, not a separate index.

What it shows:

  • Business name
  • Star rating and review count
  • Category
  • Partial address or neighbourhood
  • Sometimes hours or a "closes soon" flag

What it does not show: phone, website, or email. Those live one click deeper, on the listing itself.

The practical consequence: scraping the local pack alone gets you names and ratings. It does not get you a lead list, because a lead needs a way to contact it.

2. Local Services Ads (the "Google Guaranteed" block)

Above the local pack in some categories — mostly trades, legal, and home services — you sometimes get a block with green checkmarks and "Google Guaranteed" badges. This is a paid surface with its own verification process.

What is distinctive here:

  • Only businesses that passed Google's background check appear
  • The badge itself is a qualification signal — these businesses already spend on acquisition
  • Ranking is bid-influenced, not organic

Two things follow. First, the composition of this block is fundamentally different from the local pack: it is a list of businesses that already buy leads. If you sell to businesses that buy leads, that is a useful signal. Second, the surface is smaller and less stable than the map index, so treating it as a comprehensive market list will give you a badly skewed sample.

3. The map view (Maps proper)

The full result set behind maps.google.com, which is where every field people actually want lives:

  • Name, category, full address
  • Phone number
  • Website URL
  • Rating, review count
  • Hours, attributes, photos

This is the surface worth collecting. It is also the one the SenseCollect Maps endpoints run against.

What no API gives you

Some fields get asked for constantly and do not exist publicly, regardless of tooling:

Owner names. Listings carry the business, not the person. Nothing on the public listing identifies who owns it. Anyone selling you "owner data" from map listings is joining it against another source, with the accuracy cost that implies.

Business Profile analytics. Impressions, search terms that triggered the listing, direction requests, call clicks — this is owner-only data behind the Business Profile login. There is no public endpoint and no scraper that reaches it.

Email addresses. Not on the listing. Ever. An email has to be resolved from somewhere else, almost always the business's own website. This is why enrichment is a separate, slower step: the run has to visit each site.

Exact ranking position. Local pack ordering is personalised by the searcher's precise location, which means "position 2" is a statement about one query from one point on the map, not a property of the business.

The carousel

A related surface worth naming, because people search for it specifically: the horizontally-scrolling result strip that appears for some queries — hotels, restaurants, "things to do".

It behaves like a filtered map view with a different presentation layer. The fields underneath are the map fields. If you are trying to collect carousel results, you are almost always better off querying the underlying map data directly with the same query terms and skipping the presentation layer entirely.

How to collect the part that exists

Once you know the map view is the surface with the fields, the job is straightforward:

bash
curl "https://sensecollect.com/v1/maps/search?query=dentists&location=Austin&limit=100" \  -H "x-api-key: $SENSECOLLECT_KEY"

Each record comes back with the name, phone, website, address, rating and review count — plus an email where enrichment could resolve one from the business's site.

Three things worth knowing before you scale it up:

Keep queries narrow. One business type, one market. dentists in Austin returns cleaner rows than healthcare in Texas, and costs fewer credits for the same usable output. This is also how you avoid the ceiling — the map index thins out past a couple of hundred results per query, so covering a region works better as several city-level calls than one enormous one.

Treat the no-website case as a filter, not a failure. A business with an empty contact.website is not a broken row. In the trades especially it is the most valuable row on the list, which is why there is a dedicated endpoint for exactly that filter.

Collect at request time. Local data decays quickly — businesses open, close, change hands, and let their sites lapse. A cached extract from three months ago is measurably wrong. If you want changes without re-running the whole search, a watch reports only what moved and costs no credits to run.

Is scraping the local pack legal?

Collecting public business listing data is broadly accepted, and every field discussed here is one any visitor can read.

The obligations land on what you do next. Contacting the businesses puts you under GDPR in the EU, UK GDPR and PECR in Britain, CAN-SPAM in the US, and CASL in Canada. A B2B phone number is still personal data in the EU. Get your own compliance position straight before the first outreach campaign — this is a summary, not legal advice.

The short version

  • Local pack: names and ratings, no contact details. Not a lead list on its own.
  • Local Services Ads: a small, paid, pre-qualified subset. Useful as a signal, misleading as a sample.
  • Map view: where the phone, website and address actually are. This is the one to collect.
  • Owner names, profile analytics, exact rank: not public, from any source.

If what you need is the third one, the Google Maps export walkthrough covers the call end to end, and local business leads covers what to do with the rows once you have them.

Get the data behind this research.

One API key returns the same structured records from Maps, Amazon reviews, and TikTok. Start free with 25 credits.

Get your API key

Keep reading

Google Maps Lead Scraper: How to Export Local Business Leads

A practical guide to exporting local business leads from Google Maps searches without code, browser extensions, or a custom scraping setup.

Read next
sensecollect/
SenseCollect logo

The local lead data API. One key, one unified schema, priced by the rows you get back.

No subscriptionCredits never expireNo per-call minimumRefund on failed runs

API

DocumentationResponse schemaMCP serverExplorerCatalog (JSON)Error codesChangelog

Sources

MapsAmazon reviewsTikTokAll sources

Guides

Leads by niche & cityLocal business leadsRestaurant leadsNo-website leadsExport Maps dataExport Amazon reviewsAuf Deutsch

Company

PricingComparisonsSolutionsToolsBlogAboutContact

Account

Get API keyLog inAPI keysCredits

© 2026 SenseCollect

Public data only. Review every response before you act on it.