# Hotels, Resorts & Hospitality Leads Scraper (`saregaa/apify-google-data-hotels`) Actor

Extract 1.1M+ hotels, boutique resorts, motels, and B\&Bs across 48 countries with direct booking phone numbers, management emails, websites, ratings, and coordinates.

- **URL**: https://apify.com/saregaa/apify-google-data-hotels.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

## Hotels, Resorts & Hospitality Leads Scraper | Extract Accommodations, Booking Contacts & Maps Data

### Short Description

**Instantly extract verified hospitality leads, direct booking contacts, and property intelligence from our dedicated database of over 1.1 million hotels, resorts, boutique lodges, motels, and bed-and-breakfasts across 48 countries. Built for hotel technology providers, PMS vendors, wholesale linen and amenity suppliers, travel agencies, and hospitality marketing firms, this Actor delivers clean, structured records on demand. Bypass slow browser crawling, proxy expenses, and IP bans to access verified front-desk and management phone numbers, direct booking websites, corporate emails, and location details in seconds.**

```
**✅** **Direct access to 1,100,000+ verified accommodations** **across 48 countries**
```

✅ **Only with contacts filter**: Extract only properties with working phone numbers, direct emails, or active social media
✅ **Zero proxy fees or browser overhead**: Instant data extraction straight from pre-indexed hospitality databases
✅ **Ready-to-export datasets**: Download instantly in CSV, Excel (XLSX), JSON, or XML
✅ **Seamless API & CRM automation**: Connect directly to HubSpot, Salesforce, Make, Zapier, and n8n

```
---
```

### What Data Can Be Extracted?

**Every extracted accommodation record provides comprehensive property intelligence, geographical coordinates, and verified direct contact channels:**

| **Field**           | **Description**                                     | **Example**                                              |
| ------------------------- | --------------------------------------------------------- | -------------------------------------------------------------- |
| **place\_id**        | **Unique Google Maps place identifier**             | **ChIJb\_kYqVvE2YgRz5yK0X4H4X4**                          |
| **title**           | **Hotel or resort business name**                   | **The Miami Beach EDITION**                              |
| **category**        | **High-level industry category**                    | **hotels**                                               |
| **google\_category** | **Native Google Maps accommodation type**           | **Hotel**                                                |
| **rating**          | **Average guest review rating (1.0 to 5.0)**        | **4.6**                                                  |
| **phone**           | **Direct front-desk or reservation phone number**   | **+1 305-912-2639**                                      |
| **phone\_formatted** | **Standardized international phone number**         | **+13059122639**                                         |
| **website**         | **Direct hotel website or booking portal URL**      | **https://www.editionhotels.com/miami-beach**            |
| **emails**          | **Verified reservations or management emails**      | **\["reservations.mia@editionhotels.com"]**               |
| **social\_links**    | **Social profiles (Instagram, Facebook, LinkedIn)** | **{"instagram": "https://instagram.com/editionhotels"}** |
| **address**         | **Full street address**                             | **2901 Collins Ave, Miami Beach, FL 33140, USA**         |
| **street**          | **Street address and building number**              | **2901 Collins Ave**                                     |
| **district**        | **Neighborhood or tourist district**                | **Mid-Beach**                                            |
| **city**            | **City name**                                       | **Miami Beach**                                          |
| **state\_province**  | **State, province, or tourism region**              | **Florida**                                              |
| **postal\_code**     | **Postal / ZIP code**                               | **33140**                                                |
| **country**         | **Normalized country slug**                         | **usa**                                                  |
| **country\_code**    | **ISO 2-letter country code**                       | **US**                                                   |
| **latitude**        | **GPS latitude coordinate**                         | **25.80482**                                             |
| **longitude**       | **GPS longitude coordinate**                        | **-80.12458**                                            |
| **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-11 16:40:00**                                  |

***

### Features

- **Global Hospitality Reach**: Access 1.1M+ verified accommodation entities covering luxury resorts, independent boutique hotels, business hotels, motels, eco-lodges, and B\&Bs across 48 countries.
- **Lead Quality Filtering**: Activate the **onlyWithContacts** **switch to eliminate properties that lack direct phone numbers, email addresses, or active social media profiles.**
- **Specialized Property Types**: Filter by the primary **hotels** **category or specify exact Google place categories like** **Boutique hotel, Resort hotel, Bed & breakfast, Extended stay hotel, Motel, Hostel**.
- **Instant Delivery Without Browsers**: Data is retrieved from an indexed database, completely bypassing headless browser latency, CAPTCHA hurdles, and proxy blocks.
- **Multi-Format Downloads**: Export datasets in seconds to CSV, Excel, JSON, or stream directly into Google Sheets.
- **Scheduled Pipeline Automation**: Configure recurring runs (e.g. monthly or quarterly) to automatically discover newly opened accommodations and resorts in target tourist regions.

***

### How to Scrape Hotels & Accommodations Data

**Extracting verified hotel leads takes just a few clicks:**

- **Select Country**: Pick your target country from the dropdown (e.g., **United States, Spain, France, Italy, United Kingdom, UAE**).
- **Choose Category**: Select **Hotels** **from the dropdown, or enter an exact accommodation niche in** **Google Category** **(e.g.,** **Boutique hotel**, **Resort hotel**, **Bed & breakfast**).
- **Specify City (Optional)**: Filter by city or tourist destination (e.g., **Paris, Orlando, Barcelona, Dubai**) to localize your lead pool.
- **Enable "Only with contacts" (Optional)**: Check this box to guarantee that every exported record has an active phone number, email address, or social channel.
- **Set Max Items**: Specify how many records you need (enter **0** **for all available matching properties).**
- **Click Save & Start**: Your dataset will immediately populate. Download the results in CSV, Excel, or JSON.

***

### Input Example

**code**JSON

```
{
  "country": "usa",
  "category": "hotels",
  "googleCategory": "Boutique hotel",
  "city": "Miami Beach",
  "onlyWithContacts": true,
  "maxItems": 100
}
```

***

### Output Example

**code**JSON

```
[
  {
    "place_id": "ChIJb_kYqVvE2YgRz5yK0X4H4X4",
    "title": "The Miami Beach EDITION",
    "category": "hotels",
    "google_category": "Boutique hotel",
    "rating": 4.6,
    "address": "2901 Collins Ave, Miami Beach, FL 33140, United States",
    "street": "2901 Collins Ave",
    "district": "Mid-Beach",
    "city": "Miami Beach",
    "state_province": "Florida",
    "postal_code": "33140",
    "country": "usa",
    "country_code": "US",
    "phone": "+1 305-912-2639",
    "phone_formatted": "+13059122639",
    "website": "https://www.editionhotels.com/miami-beach",
    "emails": [
      "reservations.mia@editionhotels.com",
      "concierge.mia@editionhotels.com"
    ],
    "social_links": {
      "instagram": "https://instagram.com/editionhotels",
      "facebook": "https://facebook.com/editionhotels"
    },
    "google_maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJb_kYqVvE2YgRz5yK0X4H4X4",
    "latitude": 25.80482,
    "longitude": -80.12458,
    "data_updated_at": "2026-06-11 16:40:00"
  }
]
```

***

### Use Cases

#### 1. Hotel Management Software (PMS) & Tech Sales

**Vendors of Property Management Systems (PMS), channel managers, contactless check-in kiosks, digital key systems, and revenue management software can reach general managers and hotel directors directly.**

#### 2. Wholesale Amenities, Linen & Hotel Supplies

**Manufacturers and B2B distributors of hotel toiletries, luxury bed linens, bathrobes, commercial laundry equipment, mini-bars, and eco-friendly guest amenities can generate targeted prospect lists across any resort territory.**

#### 3. Hospitality Marketing & Direct Booking Agencies

**Agencies specializing in reducing OTA (Booking.com/Expedia) commission dependency can target independent hotels with low direct-booking presence, offering website redesign, local SEO, and meta-search advertising management.**

#### 4. Corporate Travel & Event Venue Sourcing

**Corporate event planners, DMC (Destination Management Companies), and wedding coordinators can rapidly pull contact databases of boutique hotels and resort properties with direct phone numbers and front-desk emails.**

#### 5. Travel Aggregators & Niche Directory Portals

**Founders building specialized accommodation portals (e.g., pet-friendly hotels, boutique eco-resorts, wellness retreats) can seed and enrich their platforms with clean, structured hotel data in minutes.**

***

### API Access & Integrations

**Integrate extracted hotel data directly into your sales systems and outreach tools:**

- **Direct Dataset API**: Query records programmatically using clean JSON endpoints:

  **code**Text

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

- **CRM Integrations**: Feed fresh hospitality leads straight into HubSpot, Salesforce, Pipedrive, or Close using Zapier, Make, or n8n.
- **Python & Node.js Clients**: Programmatically trigger runs and load data directly into Pandas DataFrames or PostgreSQL databases.
- **Scheduled Extraction**: Set up recurring runs (e.g. monthly) to automatically capture newly opened hotels and seasonal resorts in target markets.

***

### Pricing

**This Actor features flat, transparent usage-based pricing:** **0.50 USD per 1,000 extracted records** **(0.0005 USD per place).**

| **Records Extracted**     | **Estimated Total Cost** |
| ------------------------------- | ------------------------------ |
| **100 hotels/resorts**    | **0.05 USD**             |
| **1,000 hotels/resorts**  | **0.50 USD**             |
| **5,000 hotels/resorts**  | **2.50 USD**             |
| **10,000 hotels/resorts** | **5.00 USD**             |
| **50,000 hotels/resorts** | **25.00 USD**            |

- **No proxy subscriptions, compute hour surprises, or CAPTCHA bypass fees.**
- **You only pay for records successfully delivered to your dataset.**

***

### 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 hotel data legal?

**Yes. The extracted records consist exclusively of publicly published commercial information intended by accommodation owners for guest discovery (hotel names, direct reservation phone numbers, business addresses, official booking websites, and social media handles). It complies with international regulations for public commercial directory data.**

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

**No. Everything is fully handled by our pre-indexed infrastructure. You do not need proxy pools, external captcha solvers, or third-party API credentials.**

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

**When enabled, the scraper filters out entries without direct contact methods, returning only hotels and resorts that have a verified phone number, direct email address, or active social media link (Instagram, Facebook, LinkedIn).**

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

**Yes. Open the dataset in the Apify Console and click** **Export**. You can download your data immediately 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 blank and select your target** **Country**. The Actor will extract matching accommodations across the entire nation up to your **maxItems** **limit.**

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

**If no records match your criteria (such as searching for a rare hotel type in a small rural village), the Actor completes cleanly with status** **SUCCEEDED** **and logs an informative message without consuming unnecessary credits.**

##### How often is the hotel database refreshed?

**Records are regularly normalized and verified against directory updates. Check the** **data\_updated\_at** **field in each record to see when it was last confirmed.**

##### Can I filter by specific lodging types (e.g., Boutique, B\&B, Resort)?

**Yes. Use the** **Google Category** **input to target exact lodging types such as** **Boutique hotel**, **Resort hotel**, **Bed & breakfast**, **Extended stay hotel**, or **Motel**.

##### How many countries are supported?

**The Actor supports** **48 major worldwide economies**, including the US, Canada, UK, all 27 EU member states, Australia, New Zealand, Japan, 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 matching accommodation available in the database for your search criteria.**

***

### SEO & Comparison Guides

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

**Traditional browser-based scrapers simulate human browsing across map pages, making them slow, fragile, and prone to IP blocks. This Actor queries an optimized, indexed database of 1.1M+ hotels and resorts, allowing you to extract thousands of enriched hospitality leads in seconds.**

#### An Affordable Alternative to the Google Places API for Hospitality Data

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

#### How to Export Hotel & Resort Leads to CSV for Cold Calling and Email Outreach

- **Select your target country and choose** **Hotels** **(or enter a custom Google Category like** **Resort hotel**).
- **Check the** **Only with contacts** **toggle to guarantee verified phone numbers and emails.**
- **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 sales dialer or cold email platform (Instantly, Lemlist, Smartlead).**

***

### Support

**Need assistance with custom enterprise exports, multi-country hospitality extractions, or custom CRM integrations?**

- **Open a ticket under the** **Issues** **tab on this Actor's page.**
- **Contact our team via Apify Messages.**
- **Custom filter suggestions and data requests are reviewed weekly.**

# Actor input Schema

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

Target country (Required)

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

Select business category (Required if Google Category is empty)

## `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": "hotels",
  "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-hotels").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-hotels").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-hotels --silent --output-dataset

```

## MCP server setup

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

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/dM89PKcPdyJXPhnvI/builds/Bti4JqaJaBZgJz6O9/openapi.json
