Airbnb Pro Host Business Email Scraper avatar

Airbnb Pro Host Business Email Scraper

Pricing

$19.00/month + usage

Go to Apify Store
Airbnb Pro Host Business Email Scraper

Airbnb Pro Host Business Email Scraper

🚀 High-performance Airbnb scraper for B2B lead generation. Extracts professional host business information including company names, email addresses, phone numbers, and registration details. Perfect for real estate agencies, property managers, and business development teams.

Pricing

$19.00/month + usage

Rating

1.0

(2)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

2

Bookmarked

95

Total users

6

Monthly active users

4 days ago

Last modified

Share

Airbnb Professional Host Scraper

Find property managers and rental agencies on Airbnb — with emails, phone numbers, and company details.

Airbnb labels certain hosts as "Professional hosts" — these are companies, property management agencies, and concierge services. This scraper finds them by city, extracts their business contact information directly from their listing pages, and exports everything as a clean dataset ready for outreach.

Built for: B2B lead generation · Market research · CRM enrichment · Sales prospecting


What does it extract?

CategoryFields
ContactEmail, phone number, company name, company address, RCS / business ID
Host infoHost name, host type (Pro / Superhost / Private), contact status (Agency / Owner), host profile URL
ListingTitle, URL, property type, room type, bedrooms, bathrooms, max guests
LocationCity, neighbourhood, full address, postal code, country, GPS coordinates
PerformanceRating, number of reviews, badges (Guest Favorite, Superhost), free cancellation
PricingPrice per night, total price, original price, discount amount, discount %, taxes
AmenitiesWiFi, pool, parking, garden, terrace, air conditioning, kitchen, baby equipment, bike
ContentListing description, host description, short description, photos

Output: ~50 columns per listing, exportable as CSV or JSON from Apify Console. Use the Pro Hosts — Contacts view for a simplified export focused on outreach.


Quick Start

You have 3 minutes? Here's the fastest path to your first results:

  1. Open the Input tab
  2. Leave mode as City search
  3. Add one or more cities in Cities or regions (e.g. Lyon, Athens, Barcelona)
  4. Hit Run

In a few minutes you'll have a list of professional hosts with their emails and phone numbers. Results stream live in the run log.


Three Modes

Discover all professional hosts in one or more cities. This is the main mode for building lead lists from scratch.

  • Scrapes Airbnb search results page by page
  • Automatically identifies professional hosts by Airbnb's own labels
  • Visits each listing page to extract company name, email, phone, and address
  • Exports one row per listing with ~50 enriched fields
{
"mode": "city",
"city": ["Lyon"],
"maxPages": 5
}

For multiple cities:

{
"mode": "city",
"city": ["Lyon", "Paris", "Bordeaux"]
}

🔗 Listing URLs

Paste one URL or hundreds. Same field, same mode — the scraper auto-detects: 1 URL = single lookup, 2+ URLs = bulk enrichment.

{
"mode": "bulkUrls",
"listingUrls": ["https://www.airbnb.fr/rooms/12345678"]
}

Bulk:

{
"mode": "bulkUrls",
"listingUrls": [
"https://www.airbnb.fr/rooms/12345678",
"https://www.airbnb.fr/rooms/87654321"
]
}

Each item can also be in Request List format: { "url": "https://..." }.


👤 Host Profile

You have an Airbnb host profile URL. Extracts all their listed properties plus the contact info for each one.

{
"mode": "hostProfileUrl",
"hostProfileUrl": "https://www.airbnb.com/users/show/11036611"
}

By default, a single Airbnb search returns up to ~270 listings per city. Enable Find more listings to run the same city through multiple searches automatically and combine everything into one deduplicated list.

Why it finds more

Airbnb filters results based on your search criteria. A host who only accepts 4+ guests or 3+ nights won't appear in a default 1-guest, 1-night search. The multi-pass mode searches across:

  • Stay durations 1 → 7 nights — catches listings with minimum stay requirements
  • Future dates J+60, J+120, J+180 — catches listings currently fully booked (busy pros)
  • Guest counts 2, 4, 6, 8, 10 people — catches large apartments, villas, group rentals
  • Cross combinations (e.g. 6 guests + J+60) — the hardest-to-find listings

Result: typically 4–6× more listings per city compared to a standard single-pass search.

{
"mode": "city",
"city": ["Athens"],
"multiDateSearch": true
}

Example log output:

📍 Athens — multi-pass search (durations + dates + guests)
🗓️ 1 night · J+21: 270 found — 269 new (269 total)
🗓️ 2 nights · J+21: 270 found — 183 new (452 total)
...
📅 5 nights · J+60: 270 found — 109 new (732 total)
📅 5 nights · J+120: 270 found — 97 new (829 total)
👥 4 guests · J+21: 270 found — 130 new (970 total)
👥 6 guests · J+21: 270 found — 169 new (1139 total)
...
✅ Athens: 1400+ unique listings

⚠️ Takes ~5–10 minutes per city instead of ~30 seconds. Recommended for production runs.


Output Sample

Here's a sample row from a typical professional host:

{
"hostName": "Martin Dupont",
"hostType": "Professional host",
"contactStatus": "Agency",
"companyName": "Lyon Prestige Conciergerie SAS",
"companyEmail": "contact@lyon-prestige.fr",
"companyPhone": "+33 6 12 34 56 78",
"companyAddress": "15 Rue de la République, 69001 Lyon",
"companyRCS": "RCS Lyon 812 345 678",
"url": "https://www.airbnb.fr/rooms/12345678",
"name": "Bright apartment with Saône view - Lyon centre",
"city": "Lyon",
"propertyType": "Apartment",
"roomType": "Entire home",
"bedrooms": 2,
"bathrooms": 1,
"maxGuests": 4,
"rating": 4.97,
"numberOfReviews": 143,
"pricePerNight": 89,
"totalPrice": 534,
"hasWifi": true,
"hasPool": false,
"hasParking": true,
"latitude": 45.7597,
"longitude": 4.8422
}

Input Parameters

Core settings

ParameterRequiredDescription
modecity / bulkUrls / hostProfileUrl
cityCity modeArray of city names, e.g. ["Lyon", "Paris"]
listingUrlsListing URLs mode1 URL → single · 2+ URLs → bulk
hostProfileUrlHost profile modeAirbnb host profile URL

Filters (City mode)

ParameterDefaultDescription
maxPages0 (unlimited)Max search result pages per city (each page = ~18 listings)
multiDateSearchfalseRun 19 search passes per city (durations × dates × guest counts) — finds 4–6× more listings
deduplicateHostsfalseOne row per unique host instead of per listing — adds Listing count column

Performance

ParameterDefaultDescription
extractionQualityrecommendedrecommended / fast / thorough — trade-off between speed and data completeness
antiBlockingmediumlow / medium / high — how aggressively to avoid Airbnb rate limits

Tips & Best Practices

Start small. Set maxPages: 2 on your first run. Check the output, then scale up.

Use multi-pass for production. Enable multiDateSearch when building a full lead list. A city like Athens or Lyon can yield 1,000–1,500 professional host listings instead of ~270.

One row per host. Enable deduplicateHosts for outreach — avoids contacting the same company multiple times when they manage several listings.

Combine modes. Run City search to find listings, export the URLs, then use Listing URLs mode to re-enrich with fresh data later.

Rate limiting. If you see 429 errors, switch antiBlocking to High.

OOM on 10k+ listings? The Actor uses streaming (push + free memory after each batch) to fit in 4 GB. If you still hit OOM, try extractionQuality: "fast" (no browser) or Resurrect with 8 GB.


Running Locally

cd airbnb-professional-host-scraper
npm install
apify run

Input is read from storage/key_value_stores/default/INPUT.json. Copy from input.json.example to get started. Results are written to output.csv and storage/datasets/default/.


Deploying to Apify

$apify push

The Actor name is defined in .actor/actor.json. First-time deploy: make sure you're logged in with apify login.


Use Cases

Use caseModeConfig
Build a city-level lead listCity searchdefault
Maximum listings per cityCity searchmultiDateSearch: true
Enrich a prospect listListing URLs2+ URLs
Research one hostHost profilehost profile URL
Check one listing fastListing URLs1 URL
Outreach (unique contacts)City searchdeduplicateHosts: true
Multi-city lead genCity searchMultiple cities in city array

FAQ

Why are some emails/phones empty? Not all professional hosts display contact info on their listing pages. Some only provide a contact form. The scraper extracts everything that's publicly visible.

What does "Professional host" mean? Airbnb explicitly labels certain hosts as professional — typically property management companies, concierge services, and rental agencies. The scraper identifies these hosts and extracts their business details.

Does it work outside France? Yes — it works for any city in the world. Supported locales: fr (France), es (Spain), en (US/international), de (Germany), it (Italy), pt (Portugal). Use "locale": "de" in input for Berlin, "locale": "it" for Rome, etc. The EU professional host disclosure (company name, email, phone) applies to all European cities.

Will it bypass Airbnb's bot detection? The scraper uses standard HTTP requests (like a browser) plus a Puppeteer fallback when needed. It respects delays and rate limits. No guarantees — Airbnb's detection can change.

Can I run it on a schedule? Yes. Use Apify's built-in scheduler to run weekly or monthly and keep your lead list fresh.

How many listings can I get per city? With multiDateSearch: true, typically 1,000–1,500 unique listings per city. Without it, up to ~270. Airbnb caps search results at ~270 per query regardless of the number of pages.


Having issues? Contact corentin@outreacher.fr

Last updated: February 2026