Airbnb Experiences Scraper · Host Email & Phone Finder
Pricing
from $3.49 / 1,000 experiences
Airbnb Experiences Scraper · Host Email & Phone Finder
Search Airbnb Experiences by city — title, host, price, rating, duration, category, languages. Export-ready dataset for market research, competitive intel, and tour operator lead gen.
Pricing
from $3.49 / 1,000 experiences
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Airbnb Experiences Scraper — Host Email & Phone Finder
Extract Airbnb Experiences in any city and automatically find the host's email address and phone number via AI-powered Google search and website crawling. Get title, price, rating, meeting point, address, and contact info ready for outreach — no Airbnb login, no API key.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| Tour operator / travel agency | Benchmark competitors, spot pricing gaps | City search, all categories, maxExperiences: 0 |
| Activity platform (GetYourGuide, Viator) | Monitor competitor supply in key markets | Multiple cities, category filter, scheduled run |
| B2B supplier (catering, transport, venues) | Find popular experience hosts for partnership outreach | City search + Enrich details + Find host email |
| Outbound / SDR team | Build a cold outreach list of experience operators | City search + enrichment ON — export host_email + host_name |
| Market researcher | Map experience supply, pricing, and categories by city | Multiple cities, no cap, export full dataset |
| Experience host / entrepreneur | Validate a new concept against existing supply | City search + category filter, sort by review_count |
What you get by default: title, host name, price per person (local currency), rating, review count, duration, category, cover photo, and a direct experience URL — for every experience visible on Airbnb's public search pages.
Enable enrichment when you need the meeting point address, next available date, and optionally the host's external website and email for outreach.
What it extracts
Base fields (always collected)
| Field | Description |
|---|---|
experience_id | Unique Airbnb experience ID |
title | Experience title |
description_short | First ~300 characters of the description |
category | Category (Cooking, Cultural tours, Landmarks, etc.) |
price_per_person | Price per person in local currency |
currency | Currency code — auto-detected from city country (EUR for France, GBP for UK…) |
duration_hours | Duration in decimal hours (1.5 = 1h 30min) |
rating | Average star rating |
review_count | Number of published reviews |
host_name | Host display name |
badges | Badges shown on the card (Popular, Original, etc.) |
is_business_host | True when the host operates as a business entity |
is_online | True for online/virtual experiences |
cover_photo_url | Main experience photo URL |
url | Direct link to experience page |
city | City searched |
scraped_at | ISO timestamp of extraction |
With Enrich details ON
| Field | Description |
|---|---|
address_locality | City from experience page (e.g. Paris) |
address_region | Region (e.g. Île-de-France) |
address_country | Country (e.g. France) |
meeting_point | Exact meeting location as communicated to guests (e.g. 2 Port de Suffren) |
next_available_date | Next bookable date (YYYY-MM-DD) |
description_full | Full description text |
With Find host website & email ON
| Field | Description |
|---|---|
host_website | Host's external website, discovered via Google search and content verification |
host_email | Found email address, validated by AI |
host_email_score | AI confidence score (0–100) — emails below threshold are dropped |
host_email_source | How the email was found (google-snippet, google-contact, crawl) |
host_phone | Phone number extracted from the host's website or Google snippets |
Typical fill rates
Reference run: 50 Paris experiences, May 2026, enrichment ON.
| Field | Typical fill | Notes |
|---|---|---|
title, rating, review_count, price_per_person | 100% | From search cards |
host_name | ~95% | A few anonymous listings |
meeting_point | ~80% | Present when the host fills in their meeting point — missing on some online/virtual experiences |
address_locality / address_region | ~95% | From JSON-LD on detail page |
next_available_date | ~90% | Missing if fully booked or inactive |
host_website | ~25-35% | Hosts with a detectable online footprint |
host_email (score >= 70) | ~15-25% | Higher for business operators with a dedicated website |
host_phone | ~10-20% | Phones published on the host website or visible in Google snippets |
Quick start
- Open the Actor in Apify Console and click Try.
- Paste one or more cities (
Paris, France) or Airbnb Experience URLs in the Cities or Experience URLs field. - Set Max experiences per city (
50for a quick test,0for all). - Enable Find host website & email if you need contact info.
- Click Start — results appear in the Dataset tab as they are collected.
Input reference
Console fields
| Parameter | Type | Default | Description |
|---|---|---|---|
targets | string[] or URL[] | — | Cities (Paris, France) or Airbnb Experience URLs — one per line, auto-detected |
maxExperiences | integer | 0 | Max results per city. 0 = no cap |
category | string | all | Category filter |
enrichContact | boolean | false | Find host website, email, and phone |
API-only keys (not shown in Console form)
Pass these in JSON input when calling via API:
| Key | Type | Default | Description |
|---|---|---|---|
currency | string | auto | Currency override (e.g. USD). Default: auto-detected from city country |
minRating | number | — | Minimum star rating filter (e.g. 4.5) |
language | string | — | Language filter (e.g. English, French) |
minEmailScore | integer | 70 | AI confidence threshold for email acceptance (0-100) |
Input JSON example — city search
{"targets": ["Paris, France", "Barcelona, Spain"],"maxExperiences": 100,"category": "food_and_drink","enrichContact": true}
Input JSON example — direct URLs
{"targets": ["https://www.airbnb.com/experiences/12345","https://www.airbnb.com/experiences/67890"],"enrichContact": true}
Output sample
{"experience_id": "6785604","url": "https://www.airbnb.com/experiences/6785604","title": "Fast-Access Seine River Cruise from Eiffel Tower","description_short": "Board an eco-friendly electric boat at the Eiffel Tower and uncover the history of Paris' iconic bridges and monuments with live guide narration.","category": "Cultural tours","price_per_person": 21,"currency": "EUR","duration_hours": 1,"rating": 4.68,"review_count": 635,"host_name": "Vedettes De Paris","badges": "Popular","is_business_host": false,"is_online": false,"city": "Paris, France","address_locality": "Paris","address_region": "Île-de-France","address_country": "France","meeting_point": "2 Port de Suffren","next_available_date": "2026-06-01","host_website": "https://vedettesdeparis.fr","host_email": "info@vedettesdeparis.com","host_email_score": 91,"host_email_source": "crawl","host_phone": "+33 (0)1 44 59 84 04","cover_photo_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-6785604/original/d19a8935-1762-403c-ad39-05b59bce45fc.jpeg","scraped_at": "2026-06-01T08:30:00.000Z"}
How it works
- Build search URL from the city input with local currency auto-detection.
- Fetch search page via plain HTTP — no browser, no Airbnb login.
- Parse
niobeClientDatafrom the page's embedded JSON (Airbnb's server-side data payload). - Extract and normalize each experience card into a flat row.
- Paginate via cursor until all results are collected or the cap is reached.
- (With Enrich details ON) Visit each experience page once — extract meeting point, address, next date, and full description from structured JSON-LD.
- (With Find host email ON) For each unique host: Google via autom.dev to find their website and email, crawl the site, validate the email with GPT-4o mini, and extract any phone number from the page content.
- Export rows to the Apify dataset progressively as each page is processed.
All steps are HTTP-only — no browser, no Airbnb account required.
Performance and cost
Reference timings: Paris, May 2026, 1024 MB.
| Scenario | Experiences | Wall time | Notes |
|---|---|---|---|
| City search only | 50 | ~5s | Search cards, no detail pages |
| + Enrich details | 50 | ~35s | 1 detail page per experience |
| + Find host email | 50 | ~3–5 min | 2–4 Google searches + optional crawl per host |
PPE pricing: enrichContact: true bills at $0.05 per host enrichment attempt, regardless of whether an email is found. The base search + detail enrichment runs on standard Apify compute (typically < $0.01 for 50 results).
| Run type | Approx. cost |
|---|---|
| 50 experiences, search only | < $0.01 |
| 50 experiences + details | < $0.02 |
| 50 experiences + details + contact enrichment | ~$2.50 |
Important notes
- Public data only — reads the same pages visible to any browser without an account.
- Online experiences are included and flagged with
is_online: true. - Meeting point is as provided by the host — it may be a full street address, a landmark name, or a neighbourhood.
- Currency is auto-detected from the search city (France → EUR, USA → USD, UK → GBP). Override with
currencyin API input. - Email enrichment uses external APIs (autom.dev for Google search, OpenAI for validation) — both are configured server-side; no API key required from you.
Airbnb Actors suite (corent1robert)
| Step | Actor | Best for |
|---|---|---|
| Discover pro hosts | Airbnb Professional Host Scraper | City search, pro host contacts (email, phone, company, SIRET) |
| Map host portfolios | Airbnb Host Portfolio Scraper | Listing count, geo, review sample, optional business contact |
| Deep listing data | Airbnb Property Details Scraper | Amenities, GPS, photos, pricing context, 30+ fields |
| Experiences | Airbnb Experiences Scraper (this Actor) | Experiences by city — host name, price, meeting point, email |
| All reviews | Airbnb Reviews Scraper | Every review on a listing — rating, comment, date, host reply |
Support
Questions or custom scraping needs? Contact corentin@outreacher.fr