Mindket

Google Maps local business scraper

Newversion 1 · updated

Overview

An n8n workflow with the pieces for collecting local businesses from Google Maps through an Apify Actor: start a run, wait, then read the places. One JSON body sets the place, the kind of business and how many results to collect. Its nodes come unjoined.

Google Maps local business scraper is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file, the same steps
  • A sheet or a CRM: add a node after Get Results to save the places
  • A schedule: put a Schedule Trigger before Google Maps Actor for a regular scrape

Platform

Connects 1 app

How it works

Trigger

Run by hand

The file has no trigger node. You run Google Maps Actor from the editor, with its JSON body set to:

  • The place, in locationQuery
  • The kind of business, in searchStringsArray
  • The number of places, in maxCrawledPlacesPerSearch

Actions

  1. Google Maps Actor starts Apify’s Google Maps extractor for your search
  2. Wait pauses while the scraping goes on in Apify
  3. Get Results reads the places from the Actor’s last run
  4. Sync Run is a second route that starts the Actor and waits in one call

Result

A list of local businesses from Google Maps, one item per place

Integrations

What you need before you start.

Apify

Web scraping

Runs the Google Maps extractor Actor with your search and keeps the places it finds in a dataset you read back.

NeedsApify API token, and credit for the places scraped

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
It has no trigger node, so a run reaches no step
API keys
No API key is left in the file

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow holds the pieces for collecting local businesses from Google Maps with an Apify Actor. Four nodes do the work, and none is joined to another. The first, Google Maps Actor, starts the Compass Google Maps extractor with a JSON body that names a place, a kind of business and how many results to collect. Then Wait pauses while Apify scrapes, and Get Results reads the places from the Actor’s last run. A fourth node, Sync Run, starts the Actor and waits in one call. The file has no trigger node and no lines, so you run the nodes from the editor or join them yourself.

Who it suits

Freelancers, small agencies and sales teams that build prospect lists of local businesses, and analysts who count competitors by area.

Who uses it, and how
IndustryWho uses itHow they use itExample
Local marketingAgency account managersScrape one trade in one city, then pitch each business on a better websiteAn agency pulls dentists in a target city and sends each one an offer.
Equipment and suppliesSales repsList the contractors in a region before a tripA supplier lists electricians in its sales area and plans its calls by town.
Market researchAnalystsCount businesses of one kind per district and compare their ratingsAn analyst counts coffee shops in two districts and compares their scores.

You need some n8n and a little JSON, plus an Apify account. The nodes arrive unjoined, so you draw the lines. Skip it if you want a finished lead pipeline that ends in a sheet or a CRM: this stops at the raw list. Its author puts setup at about 5 minutes.

Where to use it

Any n8n you run will do, as long as it can reach Apify, because the workflow does nothing beyond sending web requests and reading what comes back.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file, the same steps
  • A sheet or a CRM: add a node after Get Results to save the places
  • A schedule: put a Schedule Trigger before Google Maps Actor for a regular scrape

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Have these ready before you import it.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
ApifyAn account and its API token
Apify creditThe Actor is paid per place scraped. Its Apify page, read on 2 November 2026, gives a base price from $1.50 per 1,000 places
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. In Google Maps Actor, Get Results and Sync Run, replace <YOUR_APIFY_TOKEN> in the address with your token.
  3. Set your search in the JSON body of Google Maps Actor, and copy it into Sync Run if you use that route.
  4. Draw the lines Google Maps Actor to Wait to Get Results, and add a trigger in front if the chain should start by itself.
  5. Open Wait and set its unit and amount to the length of your scrape.
  6. Save and run the chain from the editor.

The body in Google Maps Actor is this:

{
  "language": "en",
  "locationQuery": "New York, USA",
  "maxCrawledPlacesPerSearch": 50,
  "searchStringsArray": ["plumbers"],
  "skipClosedPlaces": false
}

Wait stores only its amount, 25, and n8n’s default unit is seconds, so it pauses 25 seconds. A large scrape needs longer: set minutes there.

How to use it

Run Google Maps Actor once. Apify answers at once with the run’s details and keeps scraping. When the run has finished, Get Results returns the places as items, one per business, which you can save to a sheet, filter by rating or pass to another workflow. In a chain started by a trigger, Wait is what gives Apify time to finish.

What to change for a different result
To changeWhere
PlacelocationQuery, free text such as a city, a state or a country
Kind of businesssearchStringsArray, one or more search terms, typed as you would into Google Maps
Number of placesmaxCrawledPlacesPerSearch, the most results for each term. Leave it out and the Actor collects every place it finds
Closed placesskipClosedPlaces, set to true to leave them out
Languagelanguage, the language of the results

Example

This body in Google Maps Actor:

{
  "language": "en",
  "locationQuery": "Austin, USA",
  "maxCrawledPlacesPerSearch": 20,
  "searchStringsArray": ["yoga studios"],
  "skipClosedPlaces": true
}

Get Results returns up to twenty items, one per studio. On the Actor’s Apify page, read on 2 November 2026, each place carries fields such as title, phone, website, totalScore and reviewsCount, and an address.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. An Apify Actor is a ready-made scraper that you start through a web address. Starting it takes a moment. Scraping takes longer, which is why Wait sits between starting the run and reading it. Run one node at a time from the editor, and each shows what it received and what it sent.

For experts. Three calls reach three Apify endpoints, and one is easy to misread. Apify’s documentation, read on 2 November 2026, says run-sync returns the run’s OUTPUT record, which an Actor need not store, and times out after 300 seconds.

What each call does
NodeCallWhat to know
Google Maps ActorPOST to runsStarts the run and returns its details, including the dataset it writes to
Get ResultsGET on runs/last/dataset/itemsReads the Actor’s last run, so a run started in between replaces the one you meant. The dataset ID from the start call pins it
Sync RunPOST to run-syncReturns the OUTPUT record, not the places. Apify’s run-sync-get-dataset-items returns the places in one call

Good to know

Each scrape costs money, and the token sits in plain view in the file’s addresses.

  • Billing: Apify bills per scraped place, so a large maxCrawledPlacesPerSearch costs more
  • The token: it sits in the address of each node, and addresses show up in logs and exports, so move it into an HTTP Header Auth credential
  • Personal data: a sole trader’s phone number is personal data in many places, so check the rules for cold calls and email where you market
  • As shipped: the nodes have no lines and no trigger, so nothing runs until you run or join them
  • Credentials: the JSON holds none, and nothing from its author’s account

README and files

README

Google Maps local business scraper

An n8n workflow with the pieces for collecting local businesses from Google Maps through an Apify Actor. One JSON body
names the place, the kind of business and how many results to collect.

What is inside

  • workflow.json: the workflow as n8n exports it, eight nodes. It holds no credential, and the Apify token that sat in
    one of its addresses is replaced by a placeholder. Four nodes do the work and four sticky notes label them.
  • README.md: these notes.

The file has no trigger node and no lines between its nodes. Run each node from the editor, or join them as shown
below.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An Apify account and its API token.
  • Credit on Apify. The Actor, Compass's Google Maps extractor, is paid per place scraped. Its Apify page, read on
    2 November 2026, gives a base price from $1.50 per 1,000 places, with add-ons billed apart.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. In Google Maps Actor, Get Results and Sync Run, replace <YOUR_APIFY_TOKEN> in the address with your token.
  3. Open the JSON body of Google Maps Actor and set your search (below). Copy the same body into Sync Run if you use it.
  4. Draw the lines Google Maps Actor to Wait to Get Results. Add a Manual Trigger or a Schedule Trigger before
    Google Maps Actor if you want the chain to start on its own.
  5. Open Wait and set its unit and amount to the length of your scrape. The file stores only the amount, 25, so the
    node takes n8n's default unit, seconds, and pauses 25 seconds.
  6. Save and run the chain from the editor. Get Results returns one item per business.

The body in Google Maps Actor and Sync Run:

{
  "language": "en",
  "locationQuery": "New York, USA",
  "maxCrawledPlacesPerSearch": 50,
  "searchStringsArray": ["plumbers"],
  "skipClosedPlaces": false
}

The three ways it calls Apify

| Node | Request | What to know |
|---|---|---|
| Google Maps Actor | POST to the Actor's runs address | Starts the run and answers at once with the run's details. The scraping goes on in Apify. |
| Get Results | GET on runs/last/dataset/items | Reads the places from the Actor's last run. Start another run before you read, and you read that run's places instead. For a fixed run, use the dataset ID in the start call's answer. |
| Sync Run | POST to run-sync | Starts the Actor and waits, but Apify's documentation, read on 2 November 2026, says it returns the run's OUTPUT record and not the dataset, and times out after 300 seconds. For the places in one call, Apify offers run-sync-get-dataset-items. |

Change the search

  • Place: locationQuery takes free text, such as a city, a state or a country.
  • Business type: searchStringsArray takes one or more search terms, as you would type them into Google Maps.
  • Number: maxCrawledPlacesPerSearch is the most results for each term. Leave it out and the Actor collects every
    place it finds.
  • Closed businesses: skipClosedPlaces set to true leaves out places Google Maps marks as closed.
  • Language: language sets the language of the results.

Good to know

  • Apify bills per scraped place, so a large maxCrawledPlacesPerSearch costs more.
  • The token sits in the address of each node. Addresses show up in execution logs and in exports. Move the token into
    an HTTP Header Auth credential, with Authorization as the name and Bearer followed by the token as the value,
    and take ?token=<YOUR_APIFY_TOKEN> out of the three addresses.
  • The list holds names, addresses, phone numbers and websites of businesses. A sole trader's phone number is personal
    data in many places, so check the rules for cold calls and email where you market before you contact anyone.
Files
README.md  4 KB
workflow.json  4 KB

2 files, 8 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Marketing & SEO

See all in Marketing & SEO

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New