Airbnb Listings Scraper
Pricing
from $0.03 / 1,000 result extracteds
Airbnb Listings Scraper
🏠 Scrape public Airbnb search results and room URLs with prices, ratings, reviews, amenities, images, and listing metadata.
Pricing
from $0.03 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Scrape public Airbnb listing data from search pages, room URLs, or a location search. Get listing URLs, titles, prices, ratings, review counts, images, coordinates, badges, amenities, and other public metadata in a clean dataset.
What does Airbnb Listings Scraper do?
Airbnb Listings Scraper helps you collect public Airbnb supply data for market research, pricing checks, competitive tracking, and hospitality analysis.
It can start from Airbnb search URLs, individual room URLs, or a simple location such as New York, NY.
The actor saves structured rows to an Apify dataset so you can export results as JSON, CSV, Excel, XML, or HTML.
Who is it for?
- 🏨 Property managers tracking competing short-term rentals.
- 📊 Revenue analysts comparing nightly price signals.
- 🧭 Travel market researchers mapping public supply.
- 🏘️ Real estate teams evaluating neighborhood rental density.
- 🧪 Data teams building hospitality dashboards.
- 📰 Journalists researching public accommodation trends.
Why use this Airbnb scraper?
- Simple inputs for both search pages and listing pages.
- Public listing fields in one flat dataset.
- Optional check-in, check-out, adults, and currency filters.
- Conservative defaults for inexpensive first runs.
- Works well for repeatable market snapshots.
- Exports directly through Apify datasets and API clients.
What Airbnb data can you extract?
| Field | Description |
|---|---|
url | Public Airbnb listing URL |
listingId | Airbnb listing identifier when available |
title | Listing title or public name |
name | Listing name duplicate for compatibility |
roomType | Public room/property type text |
category | Public category tag when available |
location | Public location text |
price | Numeric price parsed from visible price text |
priceText | Original visible price string |
currency | Currency code when known |
rating | Public average rating |
reviewsCount | Public review count |
badges | Public badges shown on search results |
isSuperhost | Superhost signal when visible |
amenities | Public amenities from listing pages when available |
imageUrls | Public listing images |
latitude | Public approximate latitude when available |
longitude | Public approximate longitude when available |
source | search or listing |
scrapedAt | ISO timestamp of extraction |
How much does it cost to scrape Airbnb listings?
This actor uses pay-per-event pricing.
You pay a small run start event plus a per-listing result event.
The default input is intentionally small so your first run is inexpensive.
Final production pricing is calculated from cloud cost measurements before Store publication.
How to scrape Airbnb search results
- Open Airbnb in your browser.
- Search for a destination.
- Copy the Airbnb search results URL.
- Paste it into
startUrls. - Set
maxItemsto the number of listings you need. - Run the actor.
- Export the dataset.
How to scrape Airbnb room URLs
- Copy one or more public Airbnb room URLs.
- Paste them into
startUrls. - Keep
maxItemsequal to or above the number of URLs. - Run the actor.
- Review the dataset rows.
How to use the location input
Use location when you do not already have a search URL.
Example:
{"location": "New York, NY","maxItems": 25,"currency": "USD"}
You can add optional trip filters:
{"location": "Paris, France","checkIn": "2026-09-10","checkOut": "2026-09-15","adults": 2,"maxItems": 50,"currency": "EUR"}
Input options
Airbnb start URLs
Use this for Airbnb search pages and room pages.
Location search
Use this for a quick destination-based search.
Check-in and check-out
Use YYYY-MM-DD dates when you want prices for a specific stay window.
Adults
Set the number of adults for generated location searches.
Maximum listings
Controls how many dataset rows are saved.
Currency
Sets a preferred currency code for generated location searches and output fallback.
Proxy configuration
Proxy use is optional. Start without a proxy. If Airbnb limits traffic from your environment, enable Apify Proxy.
Example input
{"startUrls": [{ "url": "https://www.airbnb.com/s/New-York--NY/homes" },{ "url": "https://www.airbnb.com/rooms/50633275" }],"location": "New York, NY","adults": 1,"maxItems": 25,"currency": "USD","proxyConfiguration": { "useApifyProxy": false }}
Example output
{"url": "https://www.airbnb.com/rooms/123456789","listingId": "123456789","title": "Sunny apartment near Central Park","name": "Sunny apartment near Central Park","roomType": "Entire rental unit","category": "Tag:8678","location": "New York, United States","price": 187,"priceText": "$187 night","currency": "USD","rating": 4.91,"reviewsCount": 122,"badges": ["Guest favorite"],"isSuperhost": false,"amenities": [],"imageUrls": ["https://a0.muscache.com/...jpg"],"latitude": 40.76,"longitude": -73.98,"source": "search","scrapedAt": "2026-06-15T09:00:00.000Z"}
Tips for better results
- Use real Airbnb search URLs when you need exact filters.
- Use a low
maxItemsfor your first test. - Add check-in and check-out dates for price comparisons.
- Use the same input repeatedly to build time-series snapshots.
- Use room URLs when you need richer page-level metadata.
- Export CSV for spreadsheets and JSON for pipelines.
Common workflows
Market snapshot
Run a location search weekly and compare prices, review counts, and ratings.
Competitor monitoring
Track a fixed list of room URLs and watch public metadata changes over time.
Supply mapping
Use coordinates and locations to map public short-term rental inventory.
Pricing research
Use date filters to compare visible nightly price signals across neighborhoods.
Integrations
Use the Apify dataset export links to connect results to:
- Google Sheets
- Airtable
- BigQuery
- Snowflake
- Tableau
- Looker Studio
- Zapier
- Make
- custom ETL jobs
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/airbnb-listings-scraper').call({location: 'New York, NY',maxItems: 25,currency: 'USD'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/airbnb-listings-scraper').call(run_input={'location': 'New York, NY','maxItems': 20,'currency': 'USD',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~airbnb-listings-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"location":"New York, NY","maxItems":20,"currency":"USD"}'
MCP usage
Connect this actor to MCP-compatible tools through Apify MCP Server:
$claude mcp add apify-airbnb-listings "https://mcp.apify.com/?tools=fetch_cat/airbnb-listings-scraper"
Use this server URL when a client asks for an MCP endpoint:
https://mcp.apify.com/?tools=fetch_cat/airbnb-listings-scraper
MCP JSON configuration example:
{"mcpServers": {"apify-airbnb-listings": {"url": "https://mcp.apify.com/?tools=fetch_cat/airbnb-listings-scraper"}}}
Example prompts:
- "Scrape 20 Airbnb listings for New York and summarize price ranges."
- "Compare ratings and review counts for these Airbnb room URLs."
- "Create a CSV of public Airbnb listings for this destination."
Using with Claude Code
Add the Apify MCP Server URL with the tool parameter:
https://mcp.apify.com/?tools=fetch_cat/airbnb-listings-scraper
Then ask Claude Code to run the actor and analyze the dataset.
Using with Claude Desktop
Configure an MCP server that points to Apify MCP and include this actor as an allowed tool.
{"mcpServers": {"apify-airbnb-listings": {"url": "https://mcp.apify.com/?tools=fetch_cat/airbnb-listings-scraper"}}}
Keep your Apify token in your local Claude Desktop MCP configuration, not in prompts.
Data quality notes
Airbnb decides which public fields are shown on each page.
Search pages usually include prices, ratings, review counts, images, and approximate coordinates.
Room pages may include richer descriptions, amenities, and public metadata, but price visibility depends on selected dates and current Airbnb page content.
Limitations
- Only public Airbnb pages are supported.
- The actor does not log in.
- The actor does not access private booking, guest, host dashboard, or messaging data.
- Some fields can be missing when Airbnb does not show them publicly.
- Airbnb can change page content and availability at any time.
Troubleshooting
The run returned no items
Check that the URL is a public Airbnb search page or public room URL. Try a smaller maxItems and a well-known destination first.
Prices are missing
Some listing pages do not show a current nightly price unless dates are selected. Add checkIn and checkOut or use a search URL that already includes dates.
Airbnb limits the request
Enable Apify Proxy in proxyConfiguration and retry with a small maxItems value.
Legality
This actor extracts public information visible on Airbnb pages. Use it responsibly, respect Airbnb terms, and avoid collecting personal or private information. You are responsible for making sure your use case complies with applicable laws and platform rules.
FAQ
Can I scrape private Airbnb account data?
No. This actor is designed for public Airbnb search and room pages only.
Why do some listings have missing prices or amenities?
Airbnb controls which public fields are visible for each page, date range, and market. Add trip dates or use a public search URL that already shows the fields you need.
Related scrapers
Explore other data extraction tools from the same Apify account:
- https://apify.com/fetch_cat/google-maps-lead-finder
- https://apify.com/fetch_cat/google-maps-reviews-scraper
- https://apify.com/fetch_cat/youtube-transcript-scraper
- https://apify.com/fetch_cat/apple-app-store-reviews-scraper
Changelog
0.1
Initial version for public Airbnb search and listing pages.
Support
If you have trouble with an input, share the run URL and the public Airbnb URL you tried so the issue can be reproduced.
Field reference
Use the field table above as the canonical output reference.
Export formats
Apify supports dataset export as JSON, CSV, Excel, XML, RSS, and HTML.
Scheduling
Use Apify schedules to run repeat market snapshots daily, weekly, or monthly.
Webhooks
Use Apify webhooks to send completed dataset URLs to your pipeline after every run.
Storage
Each run stores output in the default Apify dataset. You can keep, export, or delete datasets according to your retention needs.