
Waze Traffic Scraper
scrape.ly/store/cornerledger/waze-scraperTravelAutomotive
1 monthly user

Scrape public Airbnb listings from a city search or a listing URL. Prices, ratings, hosts, amenities, photos, and house rules.
Scrape public Airbnb listings by city, search URL or listing URL. Each result is one stay with its title, total price for your dates, rating, host, amenities, photos, house rules and location, all without logging in.
It talks to Airbnb's own JSON API, so a 10-listing run is quick, and you pay just $2.20 per 1,000 listings.
London), or paste Airbnb Start URLs.| Field | Type | Description |
|---|---|---|
locationQueries | array | Cities or destinations, typed as in Airbnb search. |
startUrls | array | Airbnb search URLs or listing URLs such as https://www.airbnb.com/rooms/15152603. |
maxResults | integer | Maximum listings. Default 10. |
checkIn, checkOut | string | Dates as YYYY-MM-DD. |
priceMin, priceMax | integer | Nightly price range in the selected currency. |
currency, locale | string | Price currency (default USD) and text language (default en-US). |
minBeds, minBedrooms, minBathrooms | integer | Minimum sizes. |
adults, children, infants, pets | integer | Guest counts. |
proxyConfiguration | object | Datacenter proxies by default. |
{
"locationQueries": ["London"],
"maxResults": 10,
"checkIn": "2026-12-01",
"checkOut": "2026-12-06",
"adults": 2,
"currency": "USD",
"locale": "en-US"
}
A listing URL returns that stay, and a search URL keeps its filters:
{
"startUrls": [{ "url": "https://www.airbnb.com/rooms/15152603" }],
"maxResults": 10
}
One dataset row per listing.
| Field | Description |
|---|---|
id, title, url | Listing id, name and link. |
location, locationSubtitle, coordinates | Place name and latitude/longitude. |
roomType, propertyType, personCapacity | Type and guest capacity. |
price | Total label for the dates, qualifier, and a breakdown when Airbnb returns one. |
rating | Overall score, review count and category scores. |
host, coHosts | Public host name, photo, ratings and response details. |
amenities, highlights, houseRules | Listing page details. |
images | Photos with captions and orientation. |
description, thumbnail | Text and cover image. |
Example item (trimmed):
{
"id": "1775321230409460111",
"title": "CC F63, 2BR, 2 Bathroom /Hyde Park & Oxford st.",
"url": "https://www.airbnb.com/rooms/1775321230409460111?locale=en-US¤cy=USD&check_in=2026-11-02&check_out=2026-11-07",
"location": "London",
"locationSubtitle": "Greater London, England, United Kingdom",
"coordinates": { "latitude": 51.51701, "longitude": -0.16854 },
"propertyType": "Entire rental unit",
"roomType": "Entire home/apt",
"personCapacity": 6,
"rating": { "cleanliness": 5, "location": 5, "value": 5, "guestSatisfaction": 5, "reviewsCount": 1 },
"host": { "name": "Jane Doe", "isSuperHost": false, "isVerified": true, "ratingCount": 13, "ratingAverage": 4.77 },
"price": { "label": "$1,757 for 5 nights", "qualifier": "for 5 nights", "price": "$1,757" },
"images": [
{ "caption": "Living room image 1", "imageUrl": "https://a0.muscache.com/im/pictures/hosting/...", "orientation": "LANDSCAPE" }
]
}
Each saved listing costs $0.0022, which is $2.20 per 1,000 listings. Platform usage (compute and proxy) is charged separately.
Worked example: a 10-listing run costs $0.022 in listing fees plus a small amount of compute and datacenter proxy traffic.
Is it legal to scrape Airbnb? The actor only reads public listing data. You are responsible for using it in line with applicable law and Airbnb's terms.
Do I need a login or my own proxy? No. Proxies are included, and datacenter works for the public listing API.
Can I scrape a single listing?
Yes. Paste https://www.airbnb.com/rooms/<id>.
Why do some prices lack a tax line?
Airbnb only returns the lines it shows for that stay and those dates. price.label is the figure from the search result.
What does a run of zero rows mean? The destination or filters matched nothing, or the URL was not an Airbnb search or listing link. The run still finishes.
Can I schedule it or use the API? Yes, on a schedule or through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
locationQueriesarrayOptionalLocation queries
Cities or destinations, the same way you would type them into Airbnb search. Example: London, Lisbon, Paris.
startUrlsarrayOptionaldefault []Start URLs
Airbnb search URLs or listing URLs such as https://www.airbnb.com/rooms/15152603. Filters in a search URL are used for that URL. Listings from location queries are collected first.
maxResultsintegerOptionaldefault 10Maximum listings
Maximum number of listings to return from this run, across all locations and URLs. One Airbnb search shows at most about 270 listings, so add several locations for more.
Dates, price, guests, and rooms. These apply to location and search URLs.
checkInstringOptionalCheck-in
Check-in date in YYYY-MM-DD format.
checkOutstringOptionalCheck-out
Check-out date in YYYY-MM-DD format.
priceMinintegerOptionalMinimum price
Minimum nightly price in the selected currency.
priceMaxintegerOptionalMaximum price
Maximum nightly price in the selected currency.
currencyenumOptionaldefault "USD"Currency
Currency for prices.
localeenumOptionaldefault "en-US"Locale
Language and region for the text that comes back.
minBedsintegerOptionalMinimum beds
Only listings with at least this many beds.
minBedroomsintegerOptionalMinimum bedrooms
Only listings with at least this many bedrooms.
minBathroomsintegerOptionalMinimum bathrooms
Only listings with at least this many bathrooms.
adultsintegerOptionalAdults
Number of adults.
childrenintegerOptionalChildren
Number of children.
infantsintegerOptionalInfants
Number of infants.
petsintegerOptionalPets
Number of pets.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used to reach Airbnb. Datacenter works for the public listing API.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | Listing id |
| title | string | Listing title |
| url | string | Listing URL |
| thumbnail | string | Cover photo URL |
| location | string | City or destination |
| locationSubtitle | string | Neighborhood and region |
| roomType | string | Entire home, private room, or shared room |
| propertyType | string | Property type shown on the listing |
| personCapacity | integer | Maximum guests |
| description | string | Listing description |
| language | string | Language of the extracted text |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One Airbnb listing saved to the dataset. | $0.0022 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/airbnb-scraper').call({
"locationQueries": [
"London"
],
"startUrls": [],
"maxResults": 10,
"currency": "USD",
"locale": "en-US",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/airbnb-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/airbnb-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Listings with prices in EUR from the French site.
Listings filtered by price range, guests and bedrooms.
Listings from a pasted Airbnb search page.
Full details of a single Airbnb listing.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.