cloro

Google Local Pack API

Capture the map-backed 3-pack that ranks local businesses — every visible place as structured JSON: position, rating, reviews, category, address, phone, and hours. Target any country or city, sample desktop and mobile separately, and get it in the same call as organic results — no separate request.

4.8 · 42 reviewsG2.com software review platform logo
Used by the top SEO and AI SEO companies
1,000,000,000 monthly API calls

The local 3-pack in one request

The result.localResults array preserves pack order, and result.localResultsMoreLink points at Google's expanded Local Finder when a “More places” control is rendered.

Request example

python
from cloro import Cloro

client = Cloro(api_key="sk_live_your_api_key_here")

response = client.monitor.google(
    query="best pizza in new york city",
    location="New York,New York,United States",
    device="desktop",
)

print(response["result"]["organicResults"])

Response example

200 OKapplication/json
{
  "success": true,
  "result": {
    "localResults": [
      {
        "position": 1,
        "title": "Joe's Pizza Broadway",
        "placeId": "/g/11bw4ws2mt",
        "rating": 4.4,
        "reviews": "26K",
        "type": "Pizza",
        "address": "1435 Broadway"
      },
      {
        "position": 2,
        "title": "John's of Bleecker Street",
        "placeId": "/g/11b8zbnw8g",
        "rating": 4.6,
        "reviews": "8.4K",
        "type": "Pizza",
        "address": "278 Bleecker St"
      }
    ],
    "localResultsMoreLink": "https://www.google.com/search?q=best+pizza+in+new+york+city&udm=1"
  }
}

Every local-pack field, documented

Field names match the OpenAPI spec exactly. Only position and title are always present — everything else appears when Google renders it for that place.

FieldTypeDescription
positionnumberPosition within the pack (1-indexed).
titlestringBusiness name as displayed on the SERP.
placeIdstringGoogle entity id for the place (e.g. "/g/11bw4ws2mt").
ratingnumberAverage star rating (0–5).
reviewsstringReview count as displayed by Google (e.g. "26K"). Free-form string, not normalized to a number.
pricestringPrice band as displayed by Google (e.g. "$10–20"). Currency symbol matches the locale.
typestringBusiness category (e.g. "Pizza", "Plumber").
yearsInBusinessstringYears-in-business badge, when shown (typical on service-style packs).
addressstringStreet address or locality as displayed on the SERP.
phonestringPhone number, when shown (locale-formatted).
hoursstringOpening-hours text as displayed (e.g. "Open · Closes 11 PM", "Open 24 hours").
descriptionstringTrailing snippet — a review quote or a service-options line.
linksobjectAction links, when rendered — website and directions (absolute Google Maps URL). Service-style packs carry these; restaurant packs typically don't.
localResultsMoreLinkstringTop-level field: absolute URL of Google's expanded Local Finder, present when a “More places” control is rendered.

Pricing that scales with you

Pick a plan that fits your volume. Price per credit drops as you scale.

Free
$0.00
per 1,000 credits
  • $0/mo
  • 500 credits
  • 1 concurrent job
  • 1 seat
  • Community support
Lite
$0.80
per 1,000 credits
  • $30/mo
  • 37,500 credits
  • 10 concurrent jobs
  • Unlimited seats
  • Email support
Hobby
$0.40
per 1,000 credits
  • $100/mo
  • 250,000 credits
  • 20 concurrent jobs
  • Unlimited seats
  • Email support
Starter
$0.39
per 1,000 credits
  • $250/mo
  • 650,000 credits
  • 50 concurrent jobs
  • Unlimited seats
  • Email support
Scale
$500+/mo
More credits
  • Volume discounts
  • More concurrency
  • Unlimited seats
  • Faster support
Compare all 11 tiers
PlanPrice / moCreditsPer 1kConcurrencySeatsSupport
Free$050011Community
Lite$3037,500$0.8010UnlimitedEmail
Hobby$100250,000$0.4020UnlimitedEmail
Starter$250650,000$0.3950UnlimitedEmail
GrowthPopular$5001,350,000$0.3775UnlimitedPriority email
Business$1,0002,800,000$0.36100UnlimitedPriority email
Enterprise 2K$2,0005,871,025$0.34135UnlimitedSlack
Enterprise 3K$3,0009,306,606$0.32175UnlimitedSlack
Enterprise 4K$4,00012,756,261$0.31215UnlimitedSlack
Enterprise 5K$5,00016,391,783$0.31255UnlimitedSlack
Enterprise$5,000+Increased concurrency, overages on credits and credit discounts for annual contracts.Know more

Credit cost per request varies by provider. The figures below are for async/batch requests; sync requests add a +2 credit surcharge.

ChatGPT (full response) 7 credits
ChatGPT (web search) 5 credits
Perplexity 3 credits
Grok 4 credits
Copilot 5 credits
AI Mode 4 credits
AI Overview (incl. SERP) 5 credits
Gemini 4 credits
Google Search 3 credits +2/page
Google News 3 credits +2/page

ChatGPT full response includes query fan-out, ads, and shopping data. Google News uses the same pricing as Google Search.

Estimate your monthly cost and plan

7 credits each
5 credits each
3 credits each
4 credits each
5 credits each
4 credits each
4 credits each
3 credits / 1 page
3 credits / 1 page
Monthly requests
0
Credits needed
0
Recommended plan:

Google local pack scraping, answered

How many places does the local pack return?+

The pack exposes only its visible places — typically 3, which is why it's called the 3-pack. The full expanded list isn't embedded in the response; when Google renders a “More places” control, `result.localResultsMoreLink` gives the absolute URL of the expanded Local Finder, which you can follow or scrape separately.

Why are fields like phone and hours sometimes missing?+

Only `position` and `title` are always present. Every other field is included solely when Google renders it for that place, so availability varies by query. Restaurant and retail packs tend to carry `price` and a review snippet; service packs (plumbers, salons, dentists) tend to carry `yearsInBusiness`, `phone`, `hours`, and a `links` object with website and directions.

Do I need a separate call to get the local pack?+

No. The local pack ships inside the standard Google SERP response alongside organic results and ads — one call, one credit price. When the query triggers a pack, `result.localResults` is populated automatically.

Can I get the local pack for a specific city?+

Yes — and for local-intent queries you should. Use `location` with Google's canonical location name (e.g. "New York,New York,United States") or a pre-encoded `uule` for city-level sampling. The pack re-ranks heavily by city and even by neighborhood, so country-level targeting misses most local-search reality. See our local rank tracking use case.

What does a local pack call cost?+

A base Google SERP request is 3 credits, and credits run from $0.40 per 1,000 on Hobby down to $0.31 at the largest self-serve tier — the local pack is included when present, no add-on flags. See pricing for the full credit table.

Start scraping the local 3-pack today

Real rendered SERPs, structured JSON, pay only for what you scrape.