Airbnb Listings Scraper avatar

Airbnb Listings Scraper

Pricing

from $0.03 / 1,000 result extracteds

Go to Apify Store
Airbnb Listings Scraper

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

Hanna Nosova

Maintained by Community

Actor 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?

FieldDescription
urlPublic Airbnb listing URL
listingIdAirbnb listing identifier when available
titleListing title or public name
nameListing name duplicate for compatibility
roomTypePublic room/property type text
categoryPublic category tag when available
locationPublic location text
priceNumeric price parsed from visible price text
priceTextOriginal visible price string
currencyCurrency code when known
ratingPublic average rating
reviewsCountPublic review count
badgesPublic badges shown on search results
isSuperhostSuperhost signal when visible
amenitiesPublic amenities from listing pages when available
imageUrlsPublic listing images
latitudePublic approximate latitude when available
longitudePublic approximate longitude when available
sourcesearch or listing
scrapedAtISO 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

  1. Open Airbnb in your browser.
  2. Search for a destination.
  3. Copy the Airbnb search results URL.
  4. Paste it into startUrls.
  5. Set maxItems to the number of listings you need.
  6. Run the actor.
  7. Export the dataset.

How to scrape Airbnb room URLs

  1. Copy one or more public Airbnb room URLs.
  2. Paste them into startUrls.
  3. Keep maxItems equal to or above the number of URLs.
  4. Run the actor.
  5. 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.

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 maxItems for 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 ApifyClient
import os
client = 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().items
print(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.

Explore other data extraction tools from the same Apify account:

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.