Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key

POST /v1/maps

Google Maps API

Search Google Maps like a user does and get every business with its place ID, rating, review count, coordinates, opening hours, phone number and website. Pick any city with location, or pin a viewport with ll.

Get a free API key Try in playground
1 credit per page of results 2,500 free credits, no card Failed calls are free

Overview

What the Google Maps API does

The Google Maps API returns the list of places Google Maps shows for a search such as "coffee roasters in Berlin". It's the data a person sees in the Maps sidebar, not Google's paid Places API, so there's no per-field SKU pricing and no Cloud billing account.

Every place includes place_id, cid and fid, which you can pass to the Google Reviews API to fetch its reviews. Use location for a city or region, or ll (for example @52.52,13.40,14z) to search a precise map viewport.

What you get

places[] array
position, title, address, latitude, longitude, rating, rating_count, price_level, type, types, website, phone_number, opening_hours, thumbnail_url, place_id, cid, fid.
request object
Echo of the normalized request (endpoint, engine, q, country, language, page…), handy for logging.
meta object
request_id, credits_used, cached, engine, latency_ms, resolved_urls and parse_quality. parse_quality=empty means the call was not billed.

Request

curl https://api.serpkite.com/v1/maps \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"coffee roasters","location":"Berlin, Germany"}'

Response (illustrative, placeholder domains)

200 OK · application/json
{
  "request": {
    "endpoint": "maps",
    "engine": "google",
    "q": "coffee roasters",
    "location": "Berlin, Germany",
    "country": "de",
    "language": "en",
    "page": 1
  },
  "results": [
    {
      "position": 1,
      "title": "Example Coffee Roasters",
      "address": "Beispielstraße 12, 10115 Berlin, Germany",
      "latitude": 52.5321,
      "longitude": 13.3849,
      "rating": 4.7,
      "rating_count": 1284,
      "price_level": "€€",
      "type": "Coffee roasters",
      "types": [
        "Coffee roasters",
        "Cafe"
      ],
      "website": "https://roasters.example.com",
      "phone_number": "+49 30 0000000",
      "opening_hours": {
        "Monday": "8 AM–6 PM",
        "Saturday": "9 AM–5 PM",
        "Sunday": "Closed"
      },
      "place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
      "cid": "10219612364826466528"
    }
  ],
  "meta": {
    "request_id": "req_01J8ZK4M6Q2V7",
    "credits_used": 1,
    "engine": "google",
    "cached": false,
    "latency_ms": 812,
    "resolved_urls": true,
    "parse_quality": "ok"
  }
}

Every response also carries X-Credits-Used, X-Credits-Remaining, X-Cache and X-Tokens-Estimate headers. Run this query in the playground

Reference

Parameters

The parameters /v1/maps accepts, in the JSON body or the query string.

Google Maps API parameters
Name Type Default Description
q required string – The search query. Required. Up to 2,048 characters.
country string us Country to search from, as a two-letter ISO code (us, gb, de, in…).
language string en Interface language, as a language code (en, de, fr, pt-BR…).
location string – Canonical location for local results, e.g. "Austin, Texas, United States". Overrides country for geo.
ll string – Map viewport as "@lat,lng,zoomz", e.g. @52.52,13.40,14z. Overrides location.
page integer 1 Results page, 1–10. Each page is billed separately.
format string json Response format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. Values: json, compact, markdown.
fields string – Comma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens.
max_age integer – Accept a cached result up to this many seconds old. Cache hits cost 50% of the credits.

Full reference, error codes and headers are in the API docs. Send a JSON array of up to 100 request objects to run them in one call.

Use cases

What people build with the Google Maps API

01

Local market research

Count businesses by category and city, with their rating, hours and website.

02

Local SEO audits

See who ranks in Maps for a keyword, and their rating and review count.

03

Local agents

Let an assistant answer "find a dentist open Saturday near me" with real data.

04

Market mapping

Count and geocode competitors across neighborhoods or cities.

05

Store locator checks

Verify that your locations' hours and phone numbers are right on Google.

Pricing

Google Maps API pricing

Cost per call

1 credit

per page of results

  • From $0.60 per 1,000 calls at volume.
  • Credits never expire. No subscription.
  • Failed, empty and blocked calls are refunded.
  • 2,500 free credits = 2,500 calls, then 1,000 credits a month.

For reference: Serper lists Google searches at $1.00 per 1k on its entry tier and $0.30 at its best tier, and its credits expire after 6 months. SerpKite credits cost $1.00 to $0.60 per 1k.

See all pricing
Google Maps API cost per pack
Pack Price Per 1k credits Per 1k calls Calls per pack
Starter $10 $1.00 $1.00 10,000
Growth $50 $0.80 $0.80 62,500
Pro $300 $0.60 $0.60 500,000

FAQ

Google Maps API: common questions

Start building

Start with the Google Maps API

2,500 free credits, then 1,000 every month. No credit card.