# Restaurants, Cafes & Food Businesses Leads Scraper (`saregaa/apify-google-data-restaurants`) Actor

Extract B2B leads from 7M+ restaurants, cafes, bakeries, bars, and supermarkets across 48 countries. Includes direct phone numbers, emails, websites, and social links.

- **URL**: https://apify.com/saregaa/apify-google-data-restaurants.md
- **Developed by:** [Saregaa](https://apify.com/saregaa) (community)
- **Stats:** 1 total users, 0 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

## Restaurants, Cafes & Food Businesses Leads Scraper | Extract B2B Leads, Phone Numbers, Emails & Google Maps Data

### Short Description

**Instantly extract local business leads, verified contact details, and location intelligence from our dedicated database of over 7 million restaurants, cafes, bakeries, pizzerias, bars, and supermarkets across 48 countries. Built for HoReCa suppliers, food-tech sales teams, POS vendors, and marketing agencies, this Actor delivers clean, structured records on demand without slow browser crawlers, proxy costs, or IP blocks. Filter by country, city, restaurant type, or toggle verified direct contacts to export only places with valid phone numbers, emails, or social media handles.**

```
**✅** **Direct access to 7,000,000+ verified food businesses** **across 48 countries**
```

✅ **Only with contacts filter**: Extract only restaurants with working phone numbers, emails, or Instagram/Facebook profiles
✅ **No browser overhead or proxy fees**: Ultra-fast data extraction delivered in seconds
✅ **Ready-to-use exports**: Download instantly in CSV, Excel (XLSX), JSON, or XML
✅ **Seamless API & CRM integrations**: Connect directly to Make, Zapier, n8n, HubSpot, and custom pipelines

```
---
```

### What Data Can Be Extracted?

**Every extracted restaurant record provides detailed firmographic, location, and direct contact intelligence:**

| **Field**           | **Description**                                 | **Example**                                           |
| ------------------------- | ----------------------------------------------------- | ----------------------------------------------------------- |
| **place\_id**        | **Unique Google Maps place identifier**         | **ChIJb\_kYqVvE2YgRz5yK0X4H4X4**                       |
| **title**           | **Restaurant or business name**                 | **Fiola Miami**                                       |
| **category**        | **High-level industry category**                | **restaurants**                                       |
| **google\_category** | **Specific cuisine or venue type**              | **Italian restaurant**                                |
| **rating**          | **Average customer review rating (1.0 - 5.0)**  | **4.7**                                               |
| **phone**           | **Direct contact phone number**                 | **+1 305-912-2639**                                   |
| **phone\_formatted** | **Locally formatted phone number**              | **(305) 912-2639**                                    |
| **website**         | **Official website or menu URL**                | **https://www.fiolamiami.com**                        |
| **emails**          | **List of verified corporate / booking emails** | **\["info@fiolamiami.com"]**                           |
| **social\_links**    | **Social profiles (Instagram, Facebook, etc.)** | **{"instagram": "https://instagram.com/fiolamiami"}** |
| **address**         | **Full street address**                         | **1500 San Ignacio Ave, Coral Gables, FL 33146, USA** |
| **street**          | **Street name and building number**             | **1500 San Ignacio Ave**                              |
| **district**        | **Neighborhood or local borough**               | **Coral Gables**                                      |
| **city**            | **City name**                                   | **Miami**                                             |
| **state\_province**  | **State, province, or administrative region**   | **Florida**                                           |
| **postal\_code**     | **Postal / ZIP code**                           | **33146**                                             |
| **country**         | **Normalized country slug**                     | **usa**                                               |
| **country\_code**    | **2-letter ISO country code**                   | **US**                                                |
| **latitude**        | **GPS latitude coordinate**                     | **25.71424**                                          |
| **longitude**       | **GPS longitude coordinate**                    | **-80.28012**                                         |
| **google\_maps\_url** | **Direct Google Maps profile link**             | **https://www.google.com/maps/place/?q=place\_id:...** |
| **data\_updated\_at** | **Timestamp of latest record verification**     | **2026-06-15 11:20:00**                               |

***

### Features

- **Massive Food & Beverage Database**: Search across 7M+ culinary establishments, from independent cafes and Michelin-star venues to nationwide supermarket chains and fast-casual franchises.
- **Verified Contacts Only Mode**: Activate **onlyWithContacts** **to retrieve only businesses that have an active phone number, email address, or social profile, saving time on outreach validation.**
- **Cuisine & Concept Filtering**: Filter by broad category (**restaurants**, **supermarkets**) or specify exact Google place categories like **Bakery, Specialty Coffee Shop, Seafood Restaurant, Cocktail Bar, Vegan Restaurant**.
- **Zero Infrastructure Overhead**: No need to configure rotating proxies, manage headless browsers, or worry about Google blocking your IP address.
- **Versatile Data Formats**: Export clean leads into Excel (XLSX), CSV, JSON, or stream directly into Google Sheets.
- **Enterprise-Ready Automation**: Trigger on-demand runs via webhooks, or schedule weekly updates to sync new restaurant openings into your sales funnel.

***

### How to Scrape Restaurant & Food Business Data

**Extracting targeted restaurant leads takes under a minute:**

- **Select Country**: Pick your target country from the dropdown (e.g., **United States, United Kingdom, France, Germany, Italy**).
- **Choose Category**: Select **Restaurants** **or** **Supermarkets** **from the dropdown, or enter a specific cuisine in the** **Google Category** **field (e.g.,** **Sushi restaurant**, **Coffee shop**, **Pizzeria**).
- **Specify City (Optional)**: Filter by city name (e.g., **New York**, **London**, **Berlin**, **Barcelona**) to focus on a particular local market.
- **Enable "Only with contacts" (Optional)**: Check this box if you exclusively need venues with phones, emails, or social channels for cold outreach.
- **Set Max Items**: Specify how many records you want (enter **0** **for all available matching businesses).**
- **Click Save & Start**: Your dataset will immediately populate. Download the results in 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. POS Hardware & Restaurant SaaS Sales

**Sell point-of-sale systems (Toast, Square, Clover), online ordering platforms, table reservation tools, or inventory software. Target decision-makers at independent restaurants, wine bars, and cafes with direct phone numbers and emails.**

#### 2. Wholesale Food & Beverage Distribution

**Distributors of specialty coffee beans, wine, organic produce, packaging supplies, and commercial kitchen equipment can pull complete lists of relevant food venues in any city or metropolitan area.**

#### 3. Hospitality Marketing & Local SEO Agencies

**Identify restaurants with lower star ratings, missing official websites, or outdated Google Maps profiles. Pitch website development, local SEO optimization, and social media management directly to restaurant owners.**

#### 4. Commercial Kitchen & Delivery Service Expansion

**Ghost kitchens, food delivery startups, and kitchen maintenance providers can map out restaurant clusters and assess competitor density across specific neighborhoods.**

#### 5. Market Research & Culinary Trend Analysis

**Analyze regional cuisine distributions, pricing tier indicators, review scores, and independent vs. chain saturation across 48 countries for investment or consultancy reports.**

***

### API Access & Integrations

**Automate your lead pipeline using Apify's API and native integrations:**

- **Direct Dataset API**: Access clean JSON records via standard HTTP GET calls:

  **code**Text

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

- **CRM Integrations**: Feed fresh restaurant leads straight into HubSpot, Salesforce, Pipedrive, or Close using Zapier, Make, or n8n.
- **Python & Node.js SDKs**: Programmatically trigger runs and load data directly into Pandas DataFrames or PostgreSQL databases.
- **Scheduled Extraction**: Configure recurring jobs to monitor new restaurant and supermarket entries in target territories weekly or monthly.

***

### Pricing

**This Actor features flat, transparent usage-based pricing:** **$0.50 per 1,000 extracted places** **($0.0005 per record).**

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

- **No proxy bandwidth surcharges or hidden infrastructure fees.**
- **You only pay for successfully returned records.**

***

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

| **Feature**                | **This Actor**                   | **Traditional Web Scrapers**          | **Official Google Places API**   |
| -------------------------------- | -------------------------------------- | ------------------------------------------- | -------------------------------------- |
| **Cost per 1,000 places**  | **0.50 USD flat**                | **3.00 – 7.00+ USD (compute + proxies)**  | **17.00 – 32.00+ USD**               |
| **Emails & Social Media**  | **✅ Included**                  | **❌ Requires secondary scraping**    | **❌ Never provided**            |
| **Speed**                  | **⚡ Instant database delivery** | **🐢 Slow browser emulation**         | **⚡ Instant per request**       |
| **Proxy Costs**            | **🆓 None needed**               | **💸 Expensive residential proxies**  | **🆓 None**                      |
| **Risk of IP Bans**        | **🛡️ Zero risk**               | **⚠️ High risk of CAPTCHAs & bans** | **🛡️ None**                    |
| **Permanent Data Storage** | **✅ Allowed & unrestricted**    | **✅ Allowed**                        | **❌ Strictly forbidden by ToS** |

***

### Frequently Asked Questions (FAQ)

##### Is scraping restaurant data legal?

**Yes. The extracted records consist of publicly published business information intended by venue owners for public discovery (restaurant names, business phone numbers, public addresses, websites, and official social media handles). It complies with international regulations regarding commercial directory data.**

##### Do I need to supply proxies or API keys?

**No. Everything runs through our pre-indexed infrastructure. You do not need proxy subscriptions, CAPTCHA solving credits, or external API keys.**

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

**When enabled, the scraper filters out entries that lack direct contact channels, returning only restaurants that possess a valid telephone number, verified email address, or social media link (Instagram/Facebook).**

##### Can I download the results in Excel or CSV?

**Yes. In the Apify Console, open the dataset and click** **Export**. You can download your data in CSV, Excel (XLSX), JSON, or XML format.

##### Can I search an entire country without specifying a city?

**Yes. Simply leave the** **City** **input field empty and select your desired** **Country**. The Actor will extract matching venues across the entire nation up to your **maxItems** **limit.**

##### What happens if a specific search returns 0 places?

**If no records match your criteria (for example, searching for a very rare cuisine in a small town), the Actor completes cleanly with status** **SUCCEEDED** **and logs an informative notice without consuming unnecessary credits.**

##### How often is the restaurant database updated?

**Data is continuously refreshed and normalized against verified directory updates. Check the** **data\_updated\_at** **field in each record to see when it was last confirmed.**

##### Can I filter by specific cuisines (e.g., Mexican, Sushi, Bakery)?

**Yes. Enter the specific cuisine name into the** **Google Category** **input field (e.g.,** **Sushi restaurant**, **Mexican restaurant**, **Bakery**, **Steak house**).

##### How many countries are supported?

**The Actor supports** **48 major worldwide economies**, including the US, Canada, UK, all 27 EU countries, Australia, New Zealand, Japan, South Korea, UAE, Saudi Arabia, Brazil, and Mexico.

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

**Setting** **maxItems** **to** **0** **removes all extraction limits, returning every single matching food establishment available in the database for your parameters.**

***

### SEO & Comparison Guides

#### How to Scrape Restaurant Leads for B2B Sales

**Traditional browser-based scrapers simulate real users scrolling through map pages, making them slow, fragile, and prone to IP blocks. This Actor queries an optimized, indexed database of 7M+ venues, letting you extract thousands of enriched restaurant leads in seconds.**

#### An Affordable Alternative to the Google Places API

**The official Google Places API charges up to $32 per 1,000 calls and strictly forbids caching or storing data permanently in a CRM. Furthermore, it does not provide social profiles or direct email contacts. This Actor offers permanent data ownership, enriched multi-channel contacts (emails, Instagram, Facebook), and costs just** **$0.50 per 1,000 places**.

#### How to Export Restaurant Leads to CSV for Cold Calling and Emailing

- **Choose your target country and cuisine type (or pick** **Restaurants** **for all venues).**
- **Check the** **Only with contacts** **toggle.**
- **Once the Actor finishes running, open the** **Dataset** **tab.**
- **Click** **Export** **-> select** **CSV** **-> select columns:** **title**, **phone**, **emails**, **website**, **city**.
- **Import the file directly into your dialer or cold email automation platform (Instantly, Lemlist, Smartlead).**

***

### Support

**Need assistance with custom enterprise exports, specific bulk queries, or automated webhook configurations?**

- **Open a ticket under the** **Issues** **tab on this Actor's page.**
- **Send our team a message through the Apify Console.**
- **Requests for specialized data points or custom filters 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-restaurants").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-restaurants").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-restaurants --silent --output-dataset

```

## MCP server setup

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

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/7JGKWz5CDfbdvLggW/builds/hFNKetCHdh69Jq6ag/openapi.json
