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

- **URL**: https://apify.com/tyegen/google-maps-scraper.md
- **Developed by:** [Tan Yegen](https://apify.com/tyegen) (community)
- **Categories:** Lead generation, Social media, E-commerce
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🗺️ Google Maps Contact & Social Scraper

The ultimate, ultra-fast solution for B2B Lead Generation. Say goodbye to bloated scrapers that charge you for useless data (like 100 review photos or opening hours you don't need). This actor focuses exclusively on what sales and marketing teams actually care about: **Getting direct contact info and social media links.**

### 🤖 Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```text
tyegen/google-maps-scraper on Apify. Call: ApifyClient("TOKEN").actor("tyegen/google-maps-scraper").call(run_input={"keywords": ["Software Agencies"], "locations": ["London"], "extractSocialMedia": true}), then client.dataset(run["defaultDatasetId"]).list_items().items for results.
````

### 🚀 The Dual-Engine Technology (How it Works)

Other Google Maps scrapers just give you the website URL. If you want the company's Instagram or LinkedIn, you have to do it yourself manually.

**This actor uses a smart 2-step Hybrid Engine:**

1. **Maps Engine:** Uses browser automation to scroll through Google Maps search results, extracting the Business Name, Phone Number, Address, Category, and Website URL.
2. **Deep Social Scan:** If a website is found, it immediately fires an ultra-fast, lightweight HTTP request (Cheerio) to that website. It scans the source code to find their `Instagram`, `LinkedIn`, `Facebook`, and `Twitter/X` profiles.

#### ✨ Unbeatable Features

- **Laser Focused on Leads:** Extracts only highly actionable B2B data (Name, Phone, Website, Address, Socials).
- **Auto Social Media Discovery:** No other Maps scraper natively hunts down LinkedIn and Instagram links from the company's website in the same run.
- **Incredibly Cost-Effective:** By skipping heavy review extraction and photos, this actor runs much faster and uses far fewer Compute Units than the competition.
- **Smart Pagination:** Automatically scrolls to load up to your specified `maxPlacesPerQuery` limit.

### 🎯 Top Use Cases & Target Audience

- **B2B Sales Teams (Cold Calling/Emailing):** Build perfectly targeted lists of local businesses complete with phone numbers and website links.
- **Marketing Agencies (SMM/SEO):** Find businesses (e.g. "Plumbers in NYC"), analyze their websites, and pitch them social media management or SEO services by instantly checking if they have an Instagram or LinkedIn presence.
- **Market Researchers:** Map out all competitors in a specific category and geography.

***

### 📥 Input Configuration

| Field | Type | Description |
| ----- | ---- | ----------- |
| `keywords` | Array | What to search for (e.g. `["Sinema", "Restaurants"]`). |
| `locations` | Array | Where to search (e.g. `["İstanbul", "Kadıköy"]`). |
| `maxPlacesPerQuery` | Integer | Limit the number of businesses extracted per combination (Default: 120). |
| `extractSocialMedia` | Boolean | Turn on/off the secondary engine that scans the business website for social links (Default: `true`). |
| `language` | String | Language code for Google Maps results (Default: `tr`). |
| `proxyConfiguration` | Object | Apify Datacenter Proxies work perfectly for this. |

***

### 📤 Output Schema

For each business found, you will receive a clean, flat JSON object.

| Field | Type | Description |
| ----- | ---- | ----------- |
| `name` | String | The official name of the business. |
| `category` | String | The primary category (e.g. "Software Company"). |
| `address` | String | Full physical address. |
| `phone` | String | Contact phone number. |
| `website` | String | The business's official website URL. |
| `googleMapsUrl` | String | Direct link to their Google Maps listing. |
| `socials.instagram` | String | (If found) Link to their Instagram profile. |
| `socials.linkedin` | String | (If found) Link to their LinkedIn company page. |
| `socials.facebook` | String | (If found) Link to their Facebook page. |
| `socials.twitter` | String | (If found) Link to their Twitter/X profile. |
| `scrapedAt` | String | ISO timestamp of extraction. |

#### 💡 Output Example

```json
{
  "name": "Acme Digital Agency",
  "category": "Marketing agency",
  "address": "123 Tech Lane, Shoreditch, London",
  "phone": "+44 20 1234 5678",
  "website": "https://www.acmedigital.co.uk",
  "googleMapsUrl": "https://goo.gl/maps/...",
  "socials": {
    "instagram": "https://instagram.com/acmedigital_uk",
    "facebook": "https://facebook.com/acmedigital",
    "linkedin": "https://linkedin.com/company/acme-digital-agency"
  },
  "scrapedAt": "2026-05-04T12:00:00.000Z"
}
```

### ⚠️ Best Practices

- **Search Term Specificity:** Instead of just "Plumbers", use "Plumbers in Brooklyn, NY" for the best and most accurate geographical results.
- **Timeouts:** If a business's website is dead or extremely slow, the deep social scanner will automatically timeout after a few seconds and continue to the next business so your run doesn't get stuck.

# Actor input Schema

## `keywords` (type: `array`):

What businesses are you looking for? e.g. 'Sinema', 'Plumbers'

## `locations` (type: `array`):

Where are you looking for these businesses? e.g. 'İstanbul', 'Kadıköy'

## `maxPlacesPerQuery` (type: `integer`):

Maximum number of businesses to extract per search combination.

## `extractSocialMedia` (type: `boolean`):

If true, the scraper will visit the business website (if available) and scan it for Instagram, Facebook, Twitter, and LinkedIn links.

## `language` (type: `string`):

Google Maps language code (e.g. 'tr', 'en', 'de')

## `proxyConfiguration` (type: `object`):

Select proxies to be used.

## Actor input object example

```json
{
  "keywords": [
    "Sinema"
  ],
  "locations": [
    "İstanbul",
    "Kadıköy"
  ],
  "maxPlacesPerQuery": 50,
  "extractSocialMedia": true,
  "language": "tr",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "maxPlacesPerQuery": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("tyegen/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 = {
    "maxPlacesPerQuery": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "maxPlacesPerQuery": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call tyegen/google-maps-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=tyegen/google-maps-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Scraper",
        "description": null,
        "version": "1.2",
        "x-build-id": "CBjkZPFXHB5hgRSj8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tyegen~google-maps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tyegen-google-maps-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/tyegen~google-maps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-tyegen-google-maps-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/tyegen~google-maps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-tyegen-google-maps-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords",
                    "locations"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "What businesses are you looking for? e.g. 'Sinema', 'Plumbers'",
                        "default": [
                            "Sinema"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Where are you looking for these businesses? e.g. 'İstanbul', 'Kadıköy'",
                        "default": [
                            "İstanbul",
                            "Kadıköy"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPlacesPerQuery": {
                        "title": "Max Places Per Search",
                        "type": "integer",
                        "description": "Maximum number of businesses to extract per search combination.",
                        "default": 120
                    },
                    "extractSocialMedia": {
                        "title": "Extract Social Media (Deep Scan)",
                        "type": "boolean",
                        "description": "If true, the scraper will visit the business website (if available) and scan it for Instagram, Facebook, Twitter, and LinkedIn links.",
                        "default": true
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Google Maps language code (e.g. 'tr', 'en', 'de')",
                        "default": "tr"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Select proxies to be used."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
