# Places & Local Businesses Leads Scraper | 17M+ Global Places (`saregaa/apify-google-data`) Actor

Extract verified B2B leads from 17M+ local businesses across 48 countries. Get phone numbers, emails, websites, ratings, and social profiles. Fast database export without proxies.

- **URL**: https://apify.com/saregaa/apify-google-data.md
- **Developed by:** [Saregaa](https://apify.com/saregaa) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Places & Local Business Data Scraper | Extract B2B Leads, Phone Numbers, Emails & Maps Data

### Short Description

**Instantly extract local business leads, verified contact details, and location intelligence from a pre-indexed database of over 17 million places across 48 countries. Designed for sales teams, marketing agencies, growth hackers, and data analysts, this Actor bypasses rate limits, IP bans, and slow browser scrapers by delivering clean, structured records on demand. Filter by country, city, industry, and specifically target leads that already have verified phone numbers, email addresses, or social media links.**

**✅** **Direct access to 17M+ pre-scraped places** **across 48 countries (US, UK, EU, MENA, APAC, LatAm)**
✅ **Verified contact info toggle**: Filter only businesses with phones, emails, or social profiles
✅ **No proxy fees or browser overhead**: Instant data delivery at high speed
✅ **Export ready**: Download instantly to Excel, CSV, JSON, XML, or Parquet
✅ **Full API & webhook support**: Connect seamlessly to Make, Zapier, n8n, and custom CRMs

```
---
```

### What Data Can Be Extracted?

**Every record provides comprehensive firmographic, geographic, and direct contact details:**

| **Field**           | **Description**                               | **Example**                                           |
| ------------------------- | --------------------------------------------------- | ----------------------------------------------------------- |
| **place\_id**        | **Unique Google place identifier**            | **ChIJN1t\_tDeuEmsRUsoyG83frY4**                       |
| **title**           | **Business or place name**                    | **Blue Bottle Coffee**                                |
| **category**        | **Normalized industry category**              | **cafes**                                             |
| **google\_category** | **Native Google Maps category**               | **Coffee shop**                                       |
| **rating**          | **Star rating (1.0 to 5.0)**                  | **4.6**                                               |
| **phone**           | **Direct contact phone number**               | **+1 510-653-3394**                                   |
| **phone\_formatted** | **Locally formatted phone number**            | **(510) 653-3394**                                    |
| **website**         | **Official company website URL**              | **https://bluebottlecoffee.com**                      |
| **emails**          | **List of verified company emails**           | **\["support@bluebottle.com", "info@..."]**            |
| **social\_links**    | **Social profiles (Instagram, LinkedIn, FB)** | **{"instagram": "https://...", "linkedin": "..."}**   |
| **address**         | **Full formatted street address**             | **300 Webster St, Oakland, CA 94607, USA**            |
| **street**          | **Street name and number**                    | **300 Webster St**                                    |
| **district**        | **Neighborhood or district**                  | **Jack London District**                              |
| **city**            | **City name**                                 | **Oakland**                                           |
| **state\_province**  | **State, province, or region**                | **California**                                        |
| **postal\_code**     | **Postal / ZIP code**                         | **94607**                                             |
| **country**         | **Country slug**                              | **usa**                                               |
| **country\_code**    | **ISO 2-letter country code**                 | **US**                                                |
| **latitude**        | **GPS latitude coordinate**                   | **37.7972**                                           |
| **longitude**       | **GPS longitude coordinate**                  | **-122.2711**                                         |
| **google\_maps\_url** | **Direct Google Maps profile link**           | **https://www.google.com/maps/place/?q=place\_id:...** |
| **data\_updated\_at** | **Timestamp of last verified update**         | **2026-06-15 12:45:00**                               |

***

### Features

- **Massive Global Coverage**: Search across 48 major markets across North America, Europe, Asia-Pacific, Latin America, and the Middle East.
- **Leads With Contacts Toggle**: Eliminate wasted records by enabling **onlyWithContacts** **to retrieve only businesses that have active phone numbers, emails, or social media channels.**
- **Dual Category Filtering**: Filter using 26 high-level sectors (e.g. **Restaurants, Clinics, Real Estate, Gyms**) or search granular native Google categories (e.g. **Specialty Coffee Shop, Cosmetic Dentist**).
- **Instant Delivery**: No waiting for automated browsers to click buttons or solve captchas; data is extracted straight from an optimized backend.
- **Flexible Export Options**: Download datasets in CSV, Excel (XLSX), JSON, or connect directly to Google Sheets.
- **Built-in Automation**: Schedule recurring jobs or trigger extraction directly via Webhooks, Zapier, Make, and n8n.

***

### How to Extract Places & Local Business Data

**Extracting verified business leads takes less than a minute:**

- **Select Country**: Pick your target country from the dropdown (e.g., **United States**, **Germany**, **United Kingdom**).
- **Choose Category**: Pick a primary industry from the dropdown or type a custom Google category into the text field.
- **Set Optional Filters**: Enter a city name to narrow down geography, or turn on **Only with contacts** **to collect sales-ready leads.**
- **Set Max Items**: Define how many records you need (or enter **0** **for all available results).**
- **Click Save & Start**: Your dataset will start populating immediately. Once finished, export your data into CSV, Excel, or JSON.

***

### Input Example

**code**JSON

```
{
  "country": "usa",
  "category": "restaurants",
  "googleCategory": "Italian restaurant",
  "city": "Miami",
  "onlyWithContacts": true,
  "maxItems": 100
}
```

***

### Output Example

**code**JSON

```
[
  {
    "place_id": "ChIJb_kYqVvE2YgRz5yK0X4H4X4",
    "title": "Fiola Miami",
    "category": "restaurants",
    "google_category": "Italian restaurant",
    "rating": 4.7,
    "address": "1500 San Ignacio Ave, Coral Gables, FL 33146, United States",
    "street": "1500 San Ignacio Ave",
    "district": "Coral Gables",
    "city": "Miami",
    "state_province": "Florida",
    "postal_code": "33146",
    "country": "usa",
    "country_code": "US",
    "phone": "+1 305-912-2639",
    "phone_formatted": "+13059122639",
    "website": "https://www.fiolamiami.com",
    "emails": [
      "info@fiolamiami.com",
      "reservations@fiolamiami.com"
    ],
    "social_links": {
      "instagram": "https://instagram.com/fiolamiami",
      "facebook": "https://facebook.com/fiolamiami"
    },
    "google_maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJb_kYqVvE2YgRz5yK0X4H4X4",
    "latitude": 25.71424,
    "longitude": -80.28012,
    "data_updated_at": "2026-05-18 10:20:00"
  }
]
```

***

### Use Cases

#### 1. B2B Cold Outreach & Lead Generation

**Populate your CRM (HubSpot, Salesforce, Pipedrive) with verified local business leads. Toggle** **Only with contacts** **to obtain valid phone numbers, corporate emails, and Instagram/LinkedIn profiles for targeted cold email and calling campaigns.**

#### 2. Marketing Agencies & Local SEO Audits

**Identify local businesses with low ratings, missing websites, or incomplete profiles. Pitch digital marketing, SEO, Google Business Profile management, and review generation services directly to decision-makers.**

#### 3. Competitor Intelligence & Market Expansion

**Analyze business density across specific cities, postal codes, or neighborhoods before opening a new location or launching localized advertising campaigns.**

#### 4. B2B Software & POS Sales

**Target high-intent segments (e.g., boutique hotels, dental practices, fitness centers, independent restaurants) to pitch specialized SaaS solutions, booking software, delivery integrations, and point-of-sale hardware.**

#### 5. Building Directories & Local Aggregators

**Kickstart or enrich localized business directories, travel guides, or niche industry portals without spending months setting up fragile scrapers and paying massive proxy bills.**

***

### API Access & Integrations

**Integrate extracted places directly into your production pipelines and data stacks:**

- **Apify REST API**: Fetch datasets programmatically using standard HTTP GET requests:

  **code**Text

```
  https://api.apify.com/v2/datasets/{DATASET_ID}/items?clean=true&format=json
```

- **Python & Node.js Clients**: Start Actor runs and stream results directly into your Python (Pandas/Polars) or Node.js applications with native Apify SDKs.
- **No-Code Automation**: Connect this Actor to **Make**, **Zapier**, or **n8n** **via native integrations to automatically forward extracted leads to Google Sheets, Airtable, or your email automation system.**
- **Scheduled Runs**: Configure automated schedules (daily, weekly, monthly) to receive regular batches of newly discovered local businesses.

***

### Pricing

This Actor operates on a simple, transparent usage model: **0.50 USD per 1,000 extracted records** (0.0005 USD per place).

| **Records Extracted** | **Estimated Total Cost** |
| --------------------------- | ------------------------------ |
| **100 records**       | **$0.05**                |
| **1,000 records**     | **$0.50**                |
| **5,000 records**     | **$2.50**                |
| **10,000 records**    | **$5.00**                |
| **50,000 records**    | **$25.00**               |

- **No separate proxy fees, CAPTCHA solving charges, or hidden platform compute costs.**
- **You only pay for records successfully delivered to your dataset.**

***

### Why Use This Instead of Official APIs or Live Browser Scrapers?

| **Feature**               | **This Actor**                    | **Live Browser Scrapers**                      | **Official Google Places API** |
| ------------------------------- | --------------------------------------- | ---------------------------------------------------- | ------------------------------------ |
| **Cost per 1,000 places** | **$0.50 flat**                   | \*\*$\*\***3.00 – $7.00+ (compute + proxies)**  | **$17.00 – $32.00+**        |
| **Emails & Social Links** | **✅ Included**                   | **❌ Rarely available (requires 2nd scraper)** | **❌ Not provided**            |
| **Speed**                 | **⚡ Seconds (Indexed database)** | **🐢 Slow (clicks pages in real time)**        | **⚡ Fast (per request)**      |
| **Proxy Costs**           | **🆓 None needed**                | **💸 Expensive residential proxies required**  | **🆓 None**                    |
| **IP Bans & Captchas**    | **🛡️ Zero risk**                | **⚠️ Frequent blocking & broken runs**       | **🛡️ None**                  |
| **Data Cleanliness**      | **🧹 Pre-normalized & validated** | **⚠️ Dependent on live DOM changes**         | **🧹 Standard JSON**           |

***

### Frequently Asked Questions (FAQ)

##### Is scraping local business and places data legal?

**Yes. The data extracted consists exclusively of publicly accessible business information published by companies for discoverability (names, addresses, business phone numbers, public websites, and official social media handles). It complies with major global data collection regulations for public business directories.**

##### Do I need to provide proxies or an API key?

**No. Everything is fully handled by the Actor backend. You do not need residential proxies, third-party captcha solvers, or separate API keys.**

##### Can I download results directly to Excel or CSV?

```
**Yes. As soon as the run finishes (or even while it is running), click the** **Export** **button in the Apify Console and select** **CSV**, **Excel (XLSX)**, **JSON**, or **XML**.

#### What if a search returns 0 results?
```

**If a search query yields no matches (for instance, searching for a very rare category in a small town), the Actor will log an informative message and finish with status** **SUCCEEDED**. It will not fail or consume unnecessary credits.

##### Can I search across the entire country at once?

**Yes. Simply leave the** **City** **input empty and select your desired** **Country** **and** **Category**. The Actor will extract places across the entire nation up to your specified **maxItems**.

##### What does the "Only with contacts" filter do?

**When enabled, the Actor returns only businesses that have at least one verified contact method: a direct phone number, an email address, or an active social media profile.**

##### Does this Actor work worldwide?

**The dataset actively covers** **48 major worldwide economies**, including the United States, Canada, the United Kingdom, all 27 EU member states, Australia, New Zealand, Japan, South Korea, UAE, Saudi Arabia, Brazil, Mexico, and more.

##### How often is the data refreshed?

**Records are continuously normalized and verified against live directory updates. Check the** **data\_updated\_at** **field in your dataset output to see when each record was last verified.**

##### Can I automate runs with webhooks?

**Yes. Under the Actor's** **Integrations** **tab, you can configure webhooks to automatically trigger payloads to your backend, Slack, or webhook listener whenever an extraction completes.**

##### What happens if I set Max Items to 0?

**Setting** **maxItems** **to** **0** **enables unlimited extraction mode. The Actor will return all available matching records in the database for the selected parameters.**

***

### SEO & Comparison Guides

#### How to Scrape Local Business Leads Without Getting Blocked

**Traditional scrapers launch emulated Chrome or Playwright instances to crawl search result pages. This technique frequently encounters CAPTCHAs, IP bans, and DOM changes. By contrast, this Actor queries a pre-indexed data layer containing 17M+ verified entities, enabling you to extract thousands of leads in seconds without managing proxy pools.**

#### An Affordable Alternative to Google Places API

The official Google Places API costs between $17 and $32 per 1,000 requests, strictly prohibits permanently storing or caching business data, and does not provide direct emails or social media links.

This Actor provides a cost-effective alternative at just $0.50 per 1,000 places. You get permanent data ownership, verified phone numbers, business websites, and enriched contact channels (emails, Instagram, Facebook, and LinkedIn) ready for your CRM or outreach campaigns.

#### How to Export B2B Leads to CSV for Cold Email Outreach

- **Run the Actor with your target industry (e.g.** **restaurants**, **dentists**, **gyms**) and country.
- **Enable the** **Only with contacts** **option.**
- **Open the** **Dataset** **tab in Apify.**
- **Click** **Export**, choose **CSV**, and select columns: **title**, **phone**, **emails**, **website**, **city**.
- **Upload the CSV directly into your cold outreach software (Instantly, Lemlist, Smartlead).**

***

### Support

**Need help setting up a custom workflow, requesting a specific region, or experiencing unexpected results?**

- **Open an issue in the** **Issues** **tab on the Actor page.**
- **Contact our team through Apify Messages for enterprise custom exports.**
- **Feature requests and new category suggestions are reviewed weekly.**

# Actor input Schema

## `country` (type: `string`):

Target country (Required)

## `category` (type: `string`):

Select business category (Required if Google Category is empty)

## `googleCategory` (type: `string`):

Exact Google place type (e.g. 'Coffee shop', 'Bakery', 'Dentist')

## `city` (type: `string`):

Filter by city name (e.g. 'Berlin', 'New York', 'Paris')

## `onlyWithContacts` (type: `boolean`):

Return only places that have a phone number, email address, or social profile

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

Maximum number of records to return (0 for unlimited)

## Actor input object example

```json
{
  "country": "usa",
  "category": "",
  "onlyWithContacts": false,
  "maxItems": 100
}
```

# Actor output Schema

## `places` (type: `string`):

Extracted places and businesses records

## `dataset` (type: `string`):

Web view of the full dataset

# 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("saregaa/apify-google-data").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("saregaa/apify-google-data").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 saregaa/apify-google-data --silent --output-dataset

```

## MCP server setup

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

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/uRLBzfDIBShfZWW6L/builds/WYQiDlXStu2IhdXat/openapi.json
