Airbnb Experiences Scraper
Pricing
Pay per usage
Airbnb Experiences Scraper
Scrape Airbnb Experiences listings with detailed information including title, price, rating, duration, host details, and more.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
codingfrontend
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Scrape Airbnb experience listings by location. Extracts titles, descriptions, ratings, prices, durations, categories, images, and more.
Features
- Search experiences by any location (London, Paris, New York, etc.)
- Filter by category (Cultural tours, Landmarks, Food & drink, etc.)
- Supports pagination to collect hundreds of experiences
- Extracts rich metadata: title, description, rating, review count, price, duration, images, badges
Input
| Field | Type | Default | Description |
|---|---|---|---|
location | string | "London" | City or region to search |
category | string | "" | Filter by category (optional) |
maxItems | integer | 40 | Maximum number of experiences to scrape |
startUrls | array | [] | Custom Airbnb experience search URLs |
proxyConfiguration | object | Proxy settings |
Output
Each item contains:
| Field | Description |
|---|---|
experienceId | Airbnb experience ID |
url | Direct link to the experience |
title | Experience title |
description | Host's description/byline |
location | Activity location |
price | Numeric price (per guest) |
priceFormatted | Full price label (e.g., "From $34, per guest") |
rating | Average rating (0–5) |
reviewCount | Number of reviews |
duration | Duration in minutes |
category | Experience category |
thumbnailUrl | Main photo URL |
imageUrls | All photo URLs |
badges | Badges (e.g., "Popular", "Guest Favorite") |
searchLocation | The location searched |
pageNum | Page number extracted from |
scrapedAt | ISO timestamp |
Anti-Bot Notes
Airbnb does not use Cloudflare or DataDome on its experience search pages. Pages load with SSR (Next.js), and experience data is embedded in a <script id="data-deferred-state-0" type="application/json"> tag in the HTML — no browser automation tricks are needed beyond standard Playwright with Chrome.
Example
{"location": "London","maxItems": 40}