# Google Maps Scraper (`wisteria_banjo/google-maps-scraper`) Actor

Enter one or more keywords and get Google Maps Information back, including Business Name, Address, Website, Business Hours, Number of Reviews and Number of Stars.

- **URL**: https://apify.com/wisteria_banjo/google-maps-scraper.md
- **Developed by:** [Chris Xavier](https://apify.com/wisteria_banjo) (community)
- **Categories:** Automation, Lead generation, SEO tools
- **Stats:** 105 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 3.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Map Scraper (Google Maps Extractor)

Scrape Google Maps search results and pull key contact + business details into a clean dataset.

This actor is built for people who want a fast way to create lead lists, vendor lists, or market research lists—without manually opening every listing.

### What it does

For each search query you provide (example: “roofers in Atlanta, GA”), the actor:

1. Finds the businesses shown in Google Maps results
2. Opens each listing
3. Collects the most useful details and saves them to a dataset

#### Details captured (when available)

- Business name
- Google Maps link
- Phone number
- Website
- Full address
- Rating
- Review count
- Hours (when shown)

### Common use cases

#### Lead lists for outreach

- Contractors (roofing, HVAC, plumbing, electricians)
- Local service businesses (cleaning, landscaping, pest control)
- Health and wellness (dentists, chiropractors, gyms, salons)
- Professional services (law firms, CPAs, insurance agents)

#### Vendor sourcing

Build a shortlist of vendors in a city or region with direct contact info and websites.

#### Market research

- Compare ratings and review volume across locations
- Identify top competitors in a category
- Map out who’s active in a niche (e.g., “wedding photographers in Naples, FL”)

#### Sales territory building

Create consistent lists by city, zip code, neighborhood, or service area.

### How to use it

#### Step 1: Add your search queries

Use **Search Queries** to enter one or more Google Maps searches, such as:

- `restaurants in Atlanta, GA`
- `HVAC repair in Tampa, FL`
- `pest control near Marietta, GA`

You can add as many queries as you want—each query runs as its own search.

#### Step 2 (optional): Limit how many listings you collect

Use **Maximum Items** to limit results per query.\
Helpful when testing, or when you only need the first handful of listings.

### Output

Results are saved to the actor’s dataset. Each row represents one business listing.

Tip: Export the dataset to CSV or JSON if you want to use it in a spreadsheet, CRM, or automation workflow.

### Notes & expectations

- Not every listing includes every detail (some businesses hide phone numbers, websites, or hours).
- Google Maps can show different layouts over time; if you notice missing fields, re-run later or try slightly different queries.
- If a query returns very few results, try making it more specific (city + service type usually works best).

### Example queries to try

- `plumbers in Atlanta, GA`
- `roofing contractors in Orlando, FL`
- `estate planning attorney in Miami, FL`
- `property management in Savannah, GA`
- `pediatric dentist in Jacksonville, FL`

### Best practices

- Use clear, location-based searches: “service + city/state”
- Start with a low Maximum Items number when testing (like 5–10)
- Run multiple focused queries instead of one broad query

### Support

If you run into issues (missing details, empty results, timeouts), share:

- the exact query you used
- a couple of example listing links from the output

That makes it easy to pinpoint what changed and adjust the actor.

# Actor input Schema

## `queries` (type: `array`):

List of search queries (e.g., \['restaurants in Atlanta', 'plumbers in Miami']).

## `maxItems` (type: `integer`):

Optional. The maximum number of listings to process per query.

## Actor input object example

```json
{
  "queries": [
    "restaurant in Atlanta, GA"
  ],
  "maxItems": 5
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("wisteria_banjo/google-maps-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("wisteria_banjo/google-maps-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call wisteria_banjo/google-maps-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,wisteria_banjo/google-maps-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kbucDUaJSGeBRO9zQ/builds/5cTcmhf60wsyTpGMt/openapi.json
