Airbnb Unique Stays · 18 Categories · City or URL
Pricing
from $2.99 / 1,000 results
Airbnb Unique Stays · 18 Categories · City or URL
Scrape Airbnb unique stays by city: castle, treehouse, dome, yurt, igloo, houseboat, barn, island, and 10 more. Full listing detail per row. Apify Actor.
Pricing
from $2.99 / 1,000 results
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 Unique Stays Scraper · Castles, Treehouses, Domes
Discover and export Airbnb's unique stay inventory by city and category — castles, treehouses, domes, tiny homes, yurts, houseboats, islands, and 18 more verified types. Each run returns a clean dataset with full listing detail: title, amenities, capacity, ratings, GPS coordinates, photos, and host fields.
No API key. No Airbnb account. Public search only.
Built on the same extraction pipeline as Airbnb Property Details Scraper — identical schema, same completeness score, same dataset output.
Where this fits in the Airbnb scraper suite
| Your goal | Use this actor |
|---|---|
| Find castles, treehouses, domes, yurts in a city → full listing detail | This actor |
| Scrape any Airbnb listing (not category-filtered) by URL or city search | Property Details Scraper |
| Find professional hosts / property managers with emails and phones | Professional Host Scraper |
| Get all listings from one specific host's portfolio | Host Portfolio Scraper |
| Monitor price changes on specific listings over time | Price Monitor |
| Find Airbnb Experiences (activities, tours) in a city | Experiences Scraper |
Common workflow: Use this actor to find unique stays in a city → then feed those listing URLs into Professional Host Scraper to get the operator's contact details (email, phone, company) for B2B outreach.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| Travel data team / marketplace | Build a "unique stays" inventory or comp set for a region | City search · castle or treehouse · export JSON/CSV |
| Market researcher | Compare atypical supply across multiple cities | Add several cities in the location field |
| Revenue manager / host operator | Track local castle or dome competitors | City search · your category · schedule weekly |
| Data analyst | Consistent output schema across all atypical types | Any category · same field names as Property Details actor |
| Agency / scraping operator | Batch collect listings for a client's brief | List of cities or paste /rooms/ URLs directly |
What you get by default: title, description, listing URL, GPS, capacity, bedrooms, bathrooms, amenities list, star rating, review count, host display name, host type, photos, price range indicators, and a completeness score. Around 90–100% of listings returned by Airbnb's search filter yield a full detail row.
When to paste URLs directly: If you already have specific listing URLs, paste them in the location field — the search phase is skipped and only those listings are extracted.
Quick start
- Open the actor and click Try for free.
- Set Stay category (e.g. Castle).
- Enter a City —
Lyon, France,Edinburgh, United Kingdom, etc. - Click Start. Results appear in the Dataset tab as listings are scraped.
What it extracts
| Category | Fields |
|---|---|
| Identity | listingId, title, url, description |
| Location | city, countryCode, lat, lng, fullAddress |
| Capacity | guests, bedrooms, beds, bathrooms |
| Amenities | amenities (array), amenitiesCount |
| Ratings | rating, reviewCount |
| Photos | photos (array of URLs), photoCount |
| Host | hostDisplayName, hostType, isSuperhost, hostId |
| Search metadata | searchAtypicalStayType, searchKgTagId, searchCity |
| Quality | completenessScore (0–100) |
Input
| Parameter | Type | Description | Default |
|---|---|---|---|
atypicalStayType | string | Stay category (see dropdown) | castle |
location | string[] | City names or /rooms/ URLs | ["Lyon, France"] |
API-only parameters (not shown in Console form)
These can be passed via the Apify API or input.json for advanced use:
| Parameter | Type | Default | Description |
|---|---|---|---|
proxyConfiguration | object | RESIDENTIAL (auto) | Override proxy settings. On Apify, residential proxy is used automatically. |
maxPages | number | 0 (all) | Limit search result pages per city. 0 = no limit. |
includeBlockedPdpInDataset | boolean | false | Include hotel/unavailable pages in dataset for debugging. |
debug | boolean | false | Verbose input log. |
JSON example
{"atypicalStayType": "treehouse","location": ["Lyon, France", "Bordeaux, France"]}
Paste listing URLs directly
{"atypicalStayType": "castle","location": ["https://www.airbnb.com/rooms/12345678","https://www.airbnb.com/rooms/87654321"]}
How it works
-
Search phase (Phase 1): For each city, the actor calls Airbnb's search with the correct
kg_and_tagscategory filter, resolves the city'splace_idvia autocomplete, and paginates through all result pages. Only actual search results are collected (no map suggestions, no "you might also like" recommendations). -
Extraction phase (Phase 2): Each listing page is fetched and parsed. Data is extracted from Airbnb's embedded
niobeClientDataJSON payload — no browser needed, pure HTTP. -
Output: Rows are pushed to the dataset as soon as each listing is processed. You see results before the run ends.
Output sample
{"listingId": "12345678","title": "Medieval Castle with Tower View","url": "https://www.airbnb.com/rooms/12345678","city": "Lyon, France","lat": 45.748,"lng": 4.847,"guests": 8,"bedrooms": 4,"beds": 6,"bathrooms": 3,"rating": 4.92,"reviewCount": 147,"amenities": ["WiFi", "Pool", "Kitchen", "Parking", "Air conditioning"],"amenitiesCount": 32,"isSuperhost": true,"hostDisplayName": "Marie","searchAtypicalStayType": "castle","searchKgTagId": 8047,"searchCity": "Lyon, France","completenessScore": 91}
Important / Limitations
- Proxy: On Apify, a residential proxy is used automatically — no configuration needed. For local development, pass
proxyConfigurationexplicitly ininput.json. - Category coverage: 18 types are verified against Airbnb's
kg_and_tagsfilter API. Some Airbnb-internal categories (tipi, tent, train) are not supported by the standard search endpoint and are excluded. - Hotel listings: Airbnb occasionally surfaces hotel-type pages in category searches; these are excluded from the dataset (they don't have the same data structure).
- Search precision: The actor targets only the listings Airbnb displays for your category + city combination — typically 12–20 per search page, same as what you see on airbnb.com.
- Tag IDs: Airbnb's internal tag IDs (e.g.
8047for castles) can change. If a category returns 0 results, contact us.
Local development
cd airbnb-atypical-stays-scrapernpm install# Edit storage/key_value_stores/default/INPUT.json with your test input# then run:apify run# Or pass input directly:apify run --input-file=input.json
storage/ is git-ignored. Results appear in storage/datasets/default/ and as output.csv.
To use a proxy locally, add to your input.json:
{"atypicalStayType": "castle","location": ["Lyon, France"],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Related actors
| Actor | What it does |
|---|---|
| Property Details Scraper | Full listing detail for any city or URL — no category filter, same output schema |
| Professional Host Scraper | Find property managers by city — emails, phones, company name, RCS. EU-focused |
| Host Portfolio Scraper | All listings from one host profile — useful upstream of this actor or Property Details |
| Price Monitor | Track price changes on saved listings over time |
| Experiences Scraper | Airbnb Experiences (activities, tours) by city |
| Calendar Availability Scraper | Availability calendar for specific listings |
Support
Contact corentin@outreacher.fr for custom scraping, scheduled exports, or bespoke automation.