# AI Google Maps Extractor (`raizen/ai-google-maps-extractor`) Actor

AI Google Maps Extractor helps you extract business details, reviews, ratings, contact info, menus, working hours, and more from Google Maps. Automate local business research, analyze trends, or integrate data into your apps. Supports keyword search, direct URLs & bulk extraction powered by AI.

- **URL**: https://apify.com/raizen/ai-google-maps-extractor.md
- **Developed by:** [Raizen Technology](https://apify.com/raizen) (community)
- **Categories:** AI, Automation, Agents
- **Stats:** 272 total users, 0 monthly users, 97.4% runs succeeded, 6 bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

$5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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

## AI Google Maps Extractor

### Overview

The **AI Google Maps Extractor** is an Apify Actor that extracts structured data from **Google Maps**. This tool allows users to **extract business details, contact information, opening hours, reviews, and more** from Google Maps based on either:

1. **A search query** (e.g., `"restaurants near Central Station, New York"`)
2. **A list of Google Maps URLs** to scrape specific locations.

With the ability to **extract reviews** and **structured metadata**, this extractor is perfect for **market research, lead generation, competitor analysis, and local business data collection**.

### Features

✅ Extracts **Google Maps business information**, including:

- Name, category, and address
- Contact details (phone, website)
- Rating and reviews count
- Opening hours and full business hours
- Price range
- Plus Code (Google's short code for location)
- Location image

✅ Supports **search-based extraction** using queries.

✅ Extracts **reviews** (if enabled) for sentiment analysis, customer insights, and business evaluation.

✅ Works with **Google Maps URLs** for targeting specific businesses.

✅ AI-Powered Google Maps Data Extraction – Powered by **Crawl4AI**, this Actor enables seamless extraction of business data, reviews, and location insights from Google Maps. Perfect for AI automation, lead generation, and business intelligence. Integrates effortlessly with Make.com, n8n, and Zapier for enhanced workflows.

### Input Configuration

The **AI Google Maps Extractor** uses the following input parameters:

#### **Input Schema**

| Parameter        | Type     | Description |
|-----------------|----------|-------------|
| `searchQuery`   | String   | **(Required)** Google Maps search query (e.g., `"best cafes in Los Angeles"`). If provided, the Actor will extract results based on this query. |
| `urls`          | Array    | **(Optional)** A list of Google Maps URLs to extract business details. This is useful for **targeted extraction** when you already have specific places to scrape. |
| `numberOfResults` | Integer  | **(Default: 5)** The number of locations to extract from search results. |
| `extractReviews` | Boolean  | **(Default: false)** If enabled, the Actor will also extract reviews for each location. Otherwise, it will only scrape general business details. |

⚠ **At least one of `searchQuery` or `urls` must be provided.**

### Output Data Structure

The output is a structured JSON object containing extracted business data.

#### **Example Output**

```json
{
  "url": "https://www.google.com/maps/place/Grand+Central+Oyster+Bar/data=!4m7!3m6!1s0x89c25901805ed947:0x9c3d57c181395b6b!8m2!3d40.7524823!4d-73.9774311!16s%2Fm%2F027_nj1!19sChIJR9legAFZwokRa1s5gcFXPZw?authuser=0&hl=en&rclk=1",
  "success": true,
  "data": {
    "overview": {
      "name": "Luke's Lobster Grand Central",
      "category": "Seafood restaurant",
      "location_image": "https://lh5.googleusercontent.com/p/AF1QipPPO1AW8Ms2teiBqfdCZfnyXqJneIUT3xwRRajP=w408-h305-k-no",
      "rating": "4.3",
      "reviews_count": "(244)",
      "located_in": "Located in: City Blossoms",
      "phone": "+1 646-899-7400",
      "website": "https://lukeslobster.com/pages/grand-central",
      "working_hours": "Open⋅ Closes 9 pm",
      "full_hours": "Saturday11 am–9 pmSunday11 am–9 pmMonday11 am–9 pmTuesday11 am–9 pmWednesday11 am–9 pmThursday11 am–9 pmFriday11 am–9 pm",
      "price_range": "USD 10–20",
      "plus_code": "Q23F+43 New York, USA",
      "accessibility": "Wheelchair-accessible entrance"
    },
    "about": "Upscale scene where an international crowd tucks into Italian food chased with Bellinis.\n## Accessibility\n  * Wheelchair-accessible entrance\n  * Wheelchair-accessible seating\n  * Wheelchair-accessible toilet\n  * Wheelchair-accessible car park\n\n\n## Service options\n  * Delivery\n  * Takeaway\n  * Dine-in\n\n\n## Highlights\n  * Fast service\n  * Great cocktails\n  * Great coffee\n  * Great dessert\n  * Great wine list\n\n\n## Popular for\n  * Lunch\n  * Dinner\n  * Solo dining\n\n\n## Offerings\n  * Alcohol\n  * Beer\n  * Cocktails\n  * Coffee\n  * Food\n  * Spirits\n  * Wine\n\n\n## Dining options\n  * Brunch\n  * Lunch\n  * Dinner\n  * Dessert\n  * Seating\n\n\n## Amenities\n  * Bar on site\n  * Toilet\n\n\n## Atmosphere\n  * Casual\n  * Cozy\n  * Trendy\n  * Upmarket\n\n\n## Crowd\n  * Groups\n  * Tourists\n\n\n## Planning\n  * Dinner reservations recommended\n  * Accepts reservations\n\n\n## Payments\n  * Credit cards\n  * Debit cards\n  * NFC mobile payments\n  * Credit cards\n\n\n## Children\n  * High chairs\n\n\n",
    "reviews": [
      {
        "reviewer_name": "Anthony Mendez",
        "reviewer_profile": "https://www.google.com/maps/contrib/110273415879516501982/reviews?hl=en",
        "reviewer_image": "https://lh3.googleusercontent.com/a/ACg8ocKmIDXvrz37uznRSZ69dL1uLd0SscrGts1cfeewYzUy4NmkR3k=w36-h36-p-rp-mo-br100",
        "review_text": "The food was great, the only problem was the staff. I ordered a meal and for some reason the cashier told me it would be put in a takeout box and that I “could” sit down. I was dressed in comfort clothes unlike the other patrons so I’m …",
        "review_date": "a month ago",
        "star_rating": "3 stars",
        "owner_response": "Hi Anthony !\nThank you for sharing your feedback and photo with us ! We're delighted to hear you enjoyed our delicious Egg and Smoked Salmon Toast, and are saddened to hear …More"
      },
      {
        "reviewer_name": "Sheryl Lait",
        "reviewer_profile": "https://www.google.com/maps/contrib/106712661375196051312/reviews?hl=en",
        "reviewer_image": "https://lh3.googleusercontent.com/a/ACg8ocJB6L1CgCIlezG9ACuNYvBNjk9H593rSp8vu4SqGVzpjgwvRQ=w36-h36-p-rp-mo-br100",
        "review_text": "The food is UNBELIEVABLE!! Extremely fresh, gourmet quality at a reasonable price.  Staff is kind, attentive and courteous, the location charming and convenient.  Who knew such a culinary gem was at our disposal- in the dining concourse of Grand Central!  Well worth the trip!",
        "review_date": "a week ago",
        "star_rating": "5 stars",
        "owner_response": "Hi Sheryl Lait, \nThank you for taking the time to share this lovely feedback with us and others! We’re happy to see you enjoyed your recent experience at our restaurant with our …More"
      },
      {
        "reviewer_name": "MS",
        "reviewer_profile": "https://www.google.com/maps/contrib/108692423897947721372/reviews?hl=en",
        "reviewer_image": "https://lh3.googleusercontent.com/a-/ALV-UjVN95zPojIPVTmcK533E8YfoomjTfwp8AsXzQ79FEW1Yx3lxowT=w36-h36-p-rp-mo-ba3-br100",
        "review_text": "I used to come here for takeout only before catching the Metro-North, but my recent visit marked my third pleasant dine-in experience at this location. I have tried the other location in Manhattan, and just like my previous visits, it was …",
        "review_date": "2 months ago",
        "star_rating": "5 stars",
        "owner_response": "Hello MS, \nThank you for taking the time to share this awesome feedback with us and others regarding your experience at our restaurant ! We’re delighted to hear you …More"
      },
      // rest of reviews ...
    ]
  }
}
```

- The **overview** contains general business information.
- The **reviews** section (only if `extractReviews` is `true`) includes customer feedback.

### How to Use

1. **Create a new task on Apify** and set up the input:
   - Provide a `searchQuery` (e.g., `"best restaurants in London, UK"`) **or**
   - Provide specific `urls` from Google Maps.
   - Configure `extractReviews` (`true` if you want reviews).
   - Set the `numberOfResults` to control how many places to extract.

2. **Run the Actor.** It will process the request and scrape business details.

3. **View and download results** in JSON format.

### Use Cases

🔍 **Market Research** - Extract competitor data, pricing information, and customer sentiment.

📍 **Local Business Intelligence** - Track businesses in a region and monitor customer feedback.

📊 **Lead Generation** - Collect business contacts, websites, and phone numbers for outreach.

📢 **SEO & Marketing Insights** - Analyze customer reviews and ratings for brand positioning.

***

🚀 **Get Started with AI Google Maps Extractor Today!** 🚀

# Actor input Schema

## `searchQuery` (type: `string`):

Enter a Google Maps search query, e.g., 'restaurants near me'.

## `urls` (type: `array`):

URLs to start with

## `numberOfResults` (type: `integer`):

Number of Google Maps locations to extract.

## `extractReviews` (type: `boolean`):

If enabled, extract reviews. Otherwise, only Overview & About will be scraped.

## Actor input object example

```json
{
  "searchQuery": "restaurants near Central Station, New York",
  "numberOfResults": 5,
  "extractReviews": false
}
```

# 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 = {
    "searchQuery": "restaurants near Central Station, New York"
};

// Run the Actor and wait for it to finish
const run = await client.actor("raizen/ai-google-maps-extractor").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 = { "searchQuery": "restaurants near Central Station, New York" }

# Run the Actor and wait for it to finish
run = client.actor("raizen/ai-google-maps-extractor").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 '{
  "searchQuery": "restaurants near Central Station, New York"
}' |
apify call raizen/ai-google-maps-extractor --silent --output-dataset

```

## MCP server setup

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

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/HAclwlttMNFgHMmzI/builds/6tkr9hJBY1qAuPfaa/openapi.json
