Airbnb Experiences Scraper — Tours, Hosts & Availability
Pricing
from $2.00 / 1,000 experience extracteds
Airbnb Experiences Scraper — Tours, Hosts & Availability
Airbnb Experiences scraper and API. Search tours and activities by destination with prices, ratings and themes; extract experience details, per-date availability, group caps and full host profiles (Superhost, tenure, ratings). Structured JSON for travel market intel and host lead-gen.
Pricing
from $2.00 / 1,000 experience extracteds
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Airbnb Experiences Scraper — Tours, Hosts & Availability 🚀
🎉 The only Airbnb Experiences scraper with per-date availability calendars AND structured host dossiers
Built for tour operators, travel researchers, and host lead-gen teams
📋 Overview
Turn any destination into a complete tours-and-activities dataset — this actor scrapes Airbnb Experiences search (40 rich rows per page with per-guest prices and tax breakdown), full experience detail dossiers, per-date availability windows, and structured host profiles.
Why professionals choose us:
- ✅ 3 modes in one actor: destination search, experience details, host profiles — one clean dataset per run
- 📅 Availability intelligence no one else has: per-date slots, spots remaining, group-size caps, guest age rules
- 🧑💼 Structured host dossiers: Superhost status, hosting tenure, host rating stats, past trips, verification badge, listing portfolios
- 💰 Transparent per-result pricing: pay only for rows delivered — search rows from fractions of a cent
- 🧾 Tax-transparent pricing data: per-guest base price AND taxes split out on every search row
- ✨ NEW: preview reviews embedded in every detail dossier — reviewer names, ratings, and comments
✨ Features
- 🔍 Destination search: free-text destinations ("Austin, TX", "Lisbon, Portugal"), auto-paginated 40 rows/page
- 🎨 8 search filters: experience themes (19 categories), traveler type, price range, duration, time of day, host languages, accessibility
- 🎟️ Detail dossiers: host bio, host highlight, meeting point, coordinates, rating stats, duration, preview reviews
- 📅 Availability add-on: per-date offering slots with spots remaining, group caps, guest age requirements, market timezone
- 🧑💼 Host profiles: works for ANY Airbnb host — Superhost flag, tenure, ratings, interests, recognitions, portfolio counts
- 🔗 Flexible inputs: paste experience URLs, numeric IDs, or IDs harvested from a previous run — the actor normalizes them all
- 📊 Market KPI report: price/rating/duration distributions and theme mix in a beautiful HTML summary
- 🔁 Automatic deduplication: unique experiences and hosts only, across pages and inputs
- 📤 Export anywhere: JSON, CSV, Excel via the Apify dataset
🎬 Quick Start
Pick a mode, provide a destination (or IDs), and press Start. Results land in the dataset within seconds.
curl -X POST https://api.apify.com/v2/acts/sian.agency~airbnb-experiences-scraper/runs?token=YOUR_TOKEN \-d '{"mode": "search", "destination": "Austin, TX"}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose a mode
search for destination scans, details for full dossiers per experience, host for host profiles.
Step 2: Provide your input
A destination string, experience IDs/URLs, or host IDs/profile URLs.
Step 3: Run and export
Press Start, watch rows stream in, export as JSON/CSV/Excel.
That's it! In under a minute, you'll have:
- Priced, rated, deduplicated experience rows
- Optional per-date availability calendars
- Structured host dossiers ready for your CRM
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| mode | string | No | search (default), details, or host |
| destination | string | No | Destination for search mode (e.g. "Austin, TX") |
| destinations | array | No | Bulk destinations (PAID) |
| checkIn / checkOut | string | No | ISO dates to activate date filtering |
| experienceType | string | No | Comma-separated themes (food,tasting,outdoor, 19 values) |
| travelerType | string | No | Kids, Big Groups, Solo Travellers, Date Night |
| pricePerGuestMin / pricePerGuestMax | integer | No | Per-guest price band |
| minDuration / maxDuration | integer | No | Duration band in minutes (30–180) |
| timeOfDay | string | No | morning, afternoon, evening |
| hostLanguages | string | No | Comma-separated languages (english,spanish) |
| accessibilityFeatures | string | No | e.g. Step-free access |
| maxResultsPerQuery | integer | No | Cap per destination (default 40) |
| experienceIds | array | No | Details mode: IDs or URLs |
| includeAvailability | boolean | No | Details mode add-on (PAID) |
| availabilityStartDate / availabilityEndDate | string | No | Availability window (default: next 30 days, max 90) |
| hostIds | array | No | Host mode: user IDs or profile URLs |
Search example:
{"mode": "search","destination": "Austin, TX","checkIn": "2026-08-01","checkOut": "2026-08-05","experienceType": "food,tasting"}
Details with availability:
{"mode": "details","experienceIds": ["https://www.airbnb.com/experiences/175656"],"includeAvailability": true}
Host profiles:
{"mode": "host","hostIds": ["https://www.airbnb.com/users/show/1462708607514564035"]}
📤 Output
Results are saved to the Apify dataset with 50+ fields including:
| Field | Type | Description |
|---|---|---|
| experienceName | string | Experience display name |
| pricePerGuest | number | Headline "from" price per guest |
| basePricePerGuest / taxesPerGuest | number | Tax-transparent price breakdown |
| rating / reviewCount | number | Rating stats |
| durationMinutes | number | Published duration |
| badges | array | Search badges (e.g. Popular) |
| experienceUrl | string | Direct Airbnb Experience link |
| availability | object | Per-date slots, group caps, guest rules (add-on) |
| hostName / isSuperhost | string / boolean | Host identity and Superhost status |
| timeAsHostYears / hostRatingAverage | number | Host tenure and rating |
| stayListingsCount / experienceListingsCount | number | Host portfolio counts |
Search row example:
{"rowType": "experience","experienceId": "175656","experienceName": "Epic Downtown Sunset Kayak w 1 Million Bats","pricePerGuest": 60,"basePricePerGuest": 55,"taxesPerGuest": 4.54,"rating": 4.93,"reviewCount": 2977,"durationMinutes": 135,"badges": ["Popular"],"experienceUrl": "https://www.airbnb.com/experiences/175656","searchDestination": "Austin, TX"}
💼 Use Cases & Examples
1. Tour Operator Competitive Intelligence
Tour operators benchmark every competing experience in their city.
Input: Your destination + theme filters Output: Prices with tax breakdown, ratings, durations, badges for the whole market Use: Price your tours against the live market, spot under-served themes
2. Capacity & Sell-Out Tracking
Revenue managers monitor availability for high-demand experiences.
Input: Experience IDs + includeAvailability: true
Output: Per-date slots with spots remaining and group caps
Use: Detect sell-outs, track booking velocity, time your promotions
3. Host Lead Generation
B2B teams build lists of experience and stay hosts.
Input: Host IDs or profile URLs Output: Superhost status, tenure, ratings, portfolio counts, verification Use: Qualify hosts for partnerships, tools, or rival-platform recruiting
4. Travel Market Research
Analysts quantify the experiences economy by destination.
Input: A list of destinations (PAID bulk mode) Output: Full supply snapshot + HTML KPI report (price/rating/duration distributions) Use: Market sizing, destination comparisons, investor decks
5. Itinerary & Trip-Planning Apps
Product teams feed live experience data into travel apps.
Input: Destination searches on a schedule Output: Names, bylines, photos, prices, booking dates as clean JSON Use: Power "things to do" features without building scrapers
6. Academic & Gig-Economy Research
Researchers study pricing and reputation in peer-to-peer tourism.
Input: Destinations + detail dossiers Output: Ratings, review samples, host tenure at scale Use: Publishable datasets on the experiences marketplace
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/airbnb-experiences-scraper').call({mode: 'search',destination: 'Austin, TX'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/airbnb-experiences-scraper').call(run_input={'mode': 'search', 'destination': 'Austin, TX'})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~airbnb-experiences-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"mode": "search", "destination": "Austin, TX"}'
Automation Workflows (Zapier / Make / n8n)
- Trigger: Schedule (e.g. daily availability check)
- HTTP Request: Call the actor API
- Process: Handle JSON results
- Action: Save to sheets, alert on sell-outs, sync to CRM
📊 Performance & Pricing
FREE Tier (Try It Now)
- 1 destination (25 experiences) or 5 IDs per run — full data quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Unlimited destinations, experiences and hosts per run
- Bulk destination scans + availability add-on unlocked
- Pay-per-result: only charged for rows actually delivered
💰 Priced below the category median per search row — with two data surfaces (availability calendars, host dossiers) no other actor offers at any price.
❓ Frequently Asked Questions
Q: How many experiences can I scrape? A: FREE tier: 1 destination with up to 25 experiences (or 5 IDs). PAID tier: unlimited, auto-paginated.
Q: Which ID formats does details mode accept?
A: Numeric IDs (175656), full URLs (https://www.airbnb.com/experiences/175656), or the activityListingId field from a previous search run.
Q: Can I get host contact details? A: The actor returns everything the host shares publicly — name, location, bio, ratings, portfolios, verification. It never extracts private emails or phone numbers.
Q: What does the availability add-on include? A: Per-date offering slots with spots remaining, public/private group-size caps, guest age requirements, and the market timezone — for any window up to 90 days.
Q: What output formats are available? A: JSON, CSV, Excel — export directly from the Apify dataset.
Q: Is this legal? A: Yes — we only extract publicly available data. See the legal section below.
Q: How long does a run take? A: Search pages return in seconds; a 40-experience destination scan typically completes in under a minute.
🐛 Troubleshooting
Details mode returns "Experience not found"
- Verify the numeric ID exists — open
https://www.airbnb.com/experiences/<id>in a browser - IDs harvested from search runs (the
activityListingIdfield) always work - You are never charged for not-found IDs
Host mode returns mostly empty fields with isPrivateProfile: true
- That user has a private profile — the platform withholds most fields; this is expected
- Host-context profiles (people who actively host) return the full dossier
Search returns experiences from a nearby area
- Destinations are resolved server-side; use more specific strings ("Austin, TX" instead of "Austin")
Availability comes back empty for a valid experience
- Some experiences pause bookings; try a wider window (up to 90 days) — no availability charge applies when empty
⚠️ Trademark Disclaimer
Airbnb® is a registered trademark of Airbnb, Inc. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Airbnb, Inc. in any way. All product names, logos, and brands are property of their respective owners and are used for identification purposes only.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools