> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spidra.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Maps

> Get Google Maps searches, nearby searches, places, up to 300 reviews per link, grid searches and autocomplete as structured data, for 1 credit per link.

Send a Google Maps link to [Scrape](https://docs.spidra.io/scrape.md) or [Batch scrape](https://docs.spidra.io/batch-scrape.md) and you get the data as JSON: the places in a search with phone, website, rating and hours, a place's full record, its reviews, or autocomplete suggestions. Every Google domain works, and each link costs 1 credit. A place Google doesn't know, or a search with no results, costs nothing.

## Example

```json theme={null}
{ "urls": ["https://www.google.com/maps/search/dentist+in+Lekki,+Lagos"], "output": "json", "wait": true }
```

Each of the 20 places in the item's `result` looks like this (shortened):

```json theme={null}
{
  "position": 1,
  "title": "Hilton Dental Clinic Lekki",
  "placeId": "ChIJ89e4lQv1OxARxaJDaIA0VIE",
  "googleMapsUrl": "https://www.google.com/maps?cid=9319131255046120133",
  "category": "Dentist",
  "address": "13 Whitesands St, Ikate bustop, Lagos 105102, Lagos, Nigeria",
  "location": { "lat": 6.4293659, "lng": 3.4787779 },
  "phone": "+234 701 007 5124",
  "website": "http://www.hiltondental.com.ng/",
  "rating": 4.9,
  "reviewsCount": 844,
  "businessStatus": "OPERATIONAL",
  "openState": "Closed · Opens 8 AM Mon"
}
```

## Links that work

| Link | Example | You get |
| - | - | - |
| Search | `google.com/maps/search/coffee+shops/@30.26,-97.74,13z`, `/maps?q=...`, `/search?tbm=map&q=...` | 20 places per page, each with its details |
| Nearby search | `/maps/search/coffee/@40.7128,-74.006,14z?radius=800` | Places inside the circle, with their distance from the centre |
| Place | `/maps/place/<name>/@lat,lng,...`, `?q=place_id:ChIJ...`, `?cid=...` | The full place and its first page of reviews (up to 60) |
| Reviews | Any place link plus `&reviews=newest`, or Google's own `search.google.com/local/reviews?placeid=...` | Up to 300 reviews per link, in the order you choose |
| Autocomplete | `google.com/s?tbm=map&suggest=p&q=<text>` | Up to 5 suggestions with place ids and coordinates |
| Share link | `maps.app.goo.gl/...` | Whatever the link opens |

Results follow the link's language (`hl=de`) and country (`gl=ng`), or the `proxyCountry` you send with `useProxy: true`. Without either, results are for the US.

## Options

Spidra reads these from the link and doesn't send them to Google:

| Option | For | What it does |
| - | - | - |
| `start=20`, `40`, ... | Search | The next page of 20 places, up to 480. `nextStart` in the result says where the next page starts. |
| `radius=<metres>` | Search | Only places within this distance of the map position (50 m to 50 km). `near=lat,lng` or `near=<place name>` sets the centre. |
| `grid=<cells>&cell=<n>&area=<metres>` | Search | One cell of a square grid over an area, such as `grid=9&cell=4`. Add `zoom=<n>` (and `spacing=<metres>`) for a local rank grid: the list Google shows with the map centred on that cell, in Google's order. |
| `reviews=newest`, `relevant`, `highest`, `lowest` | Place | Return reviews in that order. |
| `reviews_since=2026-01-31` | Reviews | Stop at reviews older than this date. |
| `reviews_max=<n>` | Reviews | At most this many reviews. |
| `reviews_part=<n>` | Reviews | Reviews 301 to 600 for part 2, and so on. `nextCursor` (in `reviews_after`) continues where a link stopped. |
| `reviewer=full` | Reviews | Include each reviewer's photo and profile link. |
| `only=places` | Autocomplete | Drop plain search suggestions. |

Reviews, newest first:

```json theme={null}
{ "urls": ["https://www.google.com/maps/place/?q=place_id:ChIJ89e4lQv1OxARxaJDaIA0VIE&reviews=newest&reviews_max=3"], "output": "json" }
```

```json theme={null}
{
  "type": "reviews",
  "sort": "newest",
  "reviewsReturned": 3,
  "place": { "title": "Hilton Dental Clinic Lekki", "rating": 4.9, "reviewsCount": 844 },
  "reviews": [
    { "position": 1, "rating": 5, "date": "2 days ago", "isoDate": "2026-10-22T13:20:19.001Z", "text": "I had a great experience\nI recommend", "language": "en", "response": null }
  ]
}
```

## Fields

Every place has the same fields in a search and on its own:

* **Identity:** `title`, `placeId`, `dataId`, `cid`, `kgmid`, `googleMapsUrl`
* **Location:** `address`, `addressLines`, `addressComponents` (street, city, postal code, state, country code), `plusCode`, `location`, `timeZone`
* **Contact:** `phone`, `phoneE164`, `website`, `domain`
* **Ratings:** `rating`, `reviewsCount`, `reviewsLink`, `reviewSnippets`
* **Hours:** `businessStatus`, `openNow` (in the place's own time zone), `openState`, `hours` and `hoursByDay` with `HH:MM` times
* **About:** `category`, `categories`, `description`, `attributes`, `thumbnail`, and `hotel` or `gasPrice` where they apply

A place link adds `owner`, `claimed`, `ownerDescription`, `photosCount`, `photos`, `ratingDistribution`, `reviewTopics`, `areas`, `entrances`, `popularTimes` (when Google shows them) and the first page of reviews. Nearby searches add `distanceMeters`.

Each review has `rating`, `date`, `isoDate`, `text`, `textTranslated`, `language`, `images`, `link`, the owner's `response` and the reviewer.

`fieldStatus` on each place says why a field is empty: `absent` (the place doesn't have it), `unavailableAnonymous` (Google doesn't show it to signed-out visitors) or `notRequested` (it only comes with the place link, so scrape the place's `googleMapsUrl`).

## Limits

* **20 places per search page.** Use `start`, a grid, or several smaller areas for more.
* **Signed-in only details.** Menus, reservation links, price level and the full photo gallery aren't shown to signed-out visitors.
* **Prices follow the country.** Hotel and fuel prices are in the currency of the market the request runs in. Set `gl` or `proxyCountry` to choose it.
* Directions, contributor pages and a bare map view aren't read as data; they go through a normal browser scrape.

## Templates

Ready-made [templates](https://docs.spidra.io/templates.md) for Google Maps: leads for a search (with emails and social links from each website), leads for a whole area, reviews export, place details and a local rank grid.

> [!NOTE]
>
> Check Google's terms before you collect data from Google Maps. Reviewer names are personal data in many countries, and you're responsible for how you use what you collect.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.