Skip to content
RankFabrik · data

02Places · How-to

How to scrape Google Maps — two endpoints, one real response

You don't need a browser, a proxy pool, or your own parser to pull business listings off Google Maps. RankFabrik hosts the two calls that do it: a point search for a handful of results, and an area sweep for everything in a region. Here is what each one actually returns.

The two endpoints

/rechercher

Up to 20 places around a point, or matching a search term. For a quick lookup or a small, known list.

/balayer

A whole area split into cells and swept for a category. For "every business of type X in this region."

Both accept emails=true to read a contact address off the site the response already returned — off by default, since it costs an extra visit per place with a website.

What a sweep response looks like

/balayer takes a radius and a step between query points, pages through the results, and dedupes on the place identifier before anything is billed — two neighbouring cells seeing the same bakery does not mean paying for it twice.

GET /balayer?q=bakery&ville=lyon&rayonKm=8&pas=1.2

{
  "count": 41,
  "truncated": false,
  "completeness": {
    "address": 100,
    "phone": 61,
    "website": 44,
    "reviewsCount": 0
  },
  "places": [
    {
      "id": "ChIJ...",
      "name": "Boulangerie Saint-Vincent",
      "address": "12 rue Royale, 69001 Lyon",
      "phone": "+33 4 78 28 xx xx",
      "website": "https://boulangerie-saint-vincent.fr",
      "rating": 4.6,
      "reviewsCount": null
    }
  ]
}

A run that hits the time budget comes back with truncated: true instead of silently stopping — the response says how much of the area is left, so you resume there rather than guess.

Compliance, in one paragraph

Google's own Maps Platform terms restrict scraping its interface directly — the question and answer below cover that in more detail. RankFabrik's endpoints are a separate, hosted service operating under its own terms, not a script driving Google's website.

Pricing, in plain units

One event is one business record returned — no separate charge for the phone number, no second call for the website.

$1.00/1k

place — map record

$2.00/1k

place-contact — record + email read from the site

Pay per place returned — you are charged only for events the actor actually returns, never for an empty run. Metered and billed by Apify; no separate RankFabrik account to open.

Run it on Apify — pay per place returned →

Questions

Is there a tool that can scrape addresses from Google Maps?

Yes. RankFabrik's `/rechercher` endpoint returns up to 20 places around a point or a search term, address included every time — it's the one field with 100% fill rate on a real sweep. `/balayer` does the same over a whole area, split into cells and deduplicated on the place identifier before anything is billed.

How can I extract data from Google Maps for free?

Google's own Places API has per-SKU free caps — roughly 10,000 Essentials and 5,000 Pro calls a month — but a credit card on a billing account is still required to reach them. RankFabrik's `/villes` endpoint is free and uses no units, though it only lists the 16 preloaded cities, not place records. For anything beyond that, pay-per-event pricing means a small pilot batch is inexpensive rather than free.

Is Google places API free?

Not as a flat allowance. The $200 monthly credit that used to cover most usage ended on 28 February 2025, replaced by per-SKU free caps — roughly 10,000 Essentials and 5,000 Pro calls a month — after which every call is billed. A credit card on a Google Cloud billing account is required even to reach the free caps.

What are the limitations of the Google places API?

Search and details are billed as separate SKUs, so a finished record with phone and website needs two calls, not one. Nothing tells you how complete a batch will be before you pay for it. And Google's terms restrict caching and long-term storage of most Places content, so what you can keep afterward is limited too.

Related