Airbnb Pro Host Business Email Scraper
Pricing
$19.00/month + usage
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
Actor stats
2
Bookmarked
95
Total users
6
Monthly active users
4 days ago
Last modified
Categories
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?
| Category | Fields |
|---|---|
| Contact | Email, phone number, company name, company address, RCS / business ID |
| Host info | Host name, host type (Pro / Superhost / Private), contact status (Agency / Owner), host profile URL |
| Listing | Title, URL, property type, room type, bedrooms, bathrooms, max guests |
| Location | City, neighbourhood, full address, postal code, country, GPS coordinates |
| Performance | Rating, number of reviews, badges (Guest Favorite, Superhost), free cancellation |
| Pricing | Price per night, total price, original price, discount amount, discount %, taxes |
| Amenities | WiFi, pool, parking, garden, terrace, air conditioning, kitchen, baby equipment, bike |
| Content | Listing 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:
- Open the Input tab
- Leave mode as City search
- Add one or more cities in Cities or regions (e.g.
Lyon,Athens,Barcelona) - 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
🏙️ City Search
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"}
Getting More Results — Multi-Pass Search
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
| Parameter | Required | Description |
|---|---|---|
mode | ✅ | city / bulkUrls / hostProfileUrl |
city | City mode | Array of city names, e.g. ["Lyon", "Paris"] |
listingUrls | Listing URLs mode | 1 URL → single · 2+ URLs → bulk |
hostProfileUrl | Host profile mode | Airbnb host profile URL |
Filters (City mode)
| Parameter | Default | Description |
|---|---|---|
maxPages | 0 (unlimited) | Max search result pages per city (each page = ~18 listings) |
multiDateSearch | false | Run 19 search passes per city (durations × dates × guest counts) — finds 4–6× more listings |
deduplicateHosts | false | One row per unique host instead of per listing — adds Listing count column |
Performance
| Parameter | Default | Description |
|---|---|---|
extractionQuality | recommended | recommended / fast / thorough — trade-off between speed and data completeness |
antiBlocking | medium | low / 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-scrapernpm installapify 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 case | Mode | Config |
|---|---|---|
| Build a city-level lead list | City search | default |
| Maximum listings per city | City search | multiDateSearch: true |
| Enrich a prospect list | Listing URLs | 2+ URLs |
| Research one host | Host profile | host profile URL |
| Check one listing fast | Listing URLs | 1 URL |
| Outreach (unique contacts) | City search | deduplicateHosts: true |
| Multi-city lead gen | City search | Multiple 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