Airbnb API: Listing Details Scraper
Pricing
from $3.00 / 1,000 airbnb listings
Airbnb API: Listing Details Scraper
Collect public Airbnb listing details from room URLs or IDs: amenities, house rules, hosts, photos, ratings and optional stay prices with tax inclusion. One row per delivered listing.
Airbnb API for Listing Details
This Airbnb API collects the public details of the accommodation listings you already follow. Supply Airbnb room URLs or listing IDs and receive one dataset row per delivered listing, with amenities, house rules, host information, photos, ratings and optional stay prices. It suits short term rental research, property management and repeated snapshots of a fixed set of properties.
The actor works with public listing information. You can export its dataset as JSON, CSV or Excel and join snapshots by accommodation_id. The collection timestamp is fetched_at, so you can retain the date of each observation alongside the property record. Public listing content may change between runs, including names, photos, rules and prices.
Input: room URLs, listing IDs and dates
Use start_urls for Airbnb room URLs, either as strings or as objects containing a url field. The alias startUrls also works. Supported room paths include ordinary rooms, Plus rooms and luxury listing URLs. Custom host shortcuts such as /h/slug are reported as invalid inputs because they do not identify a numeric listing directly.
Use listing_ids for an array of Airbnb identifiers. Store identifiers as strings, particularly long identifiers that can lose digits when converted to JavaScript numbers. Both input lists are combined and duplicate listing IDs are collected once. The order follows the URL list and then the ID list. The canonical snake case URL field takes precedence if both URL aliases are provided. Dates and guests embedded in a room URL are ignored; use the dedicated input fields for a consistent run.
Stay dates are optional. Set check_in and check_out together as valid YYYY-MM-DD dates, with check-out after check-in and check-in outside the past. The aliases checkIn and checkOut work as well; snake case has precedence. Without dates, listing details are still returned and price fields are null.
adults defaults to one and accepts 1–16. children accepts 0–15, while infants and pets accept 0–5; these three fields default to zero. currency defaults to USD and accepts supported ISO currency codes. Guest counts and travel dates are recorded with the quote, making later comparisons meaningful.
max_photos accepts 0–1000 and defaults to 1000. Set it to zero to omit the photo list. max_listings limits the combined unique inputs to 1–10,000; it defaults to 10,000. Large input lists are collected in successive pages automatically within the actor's available run time. If collection is interrupted, the output records partial delivery and continuation information.
Airbnb API output fields
Each row has the listing ID in accommodation_id, its canonical url, the public listing name and fetched_at. Description text and description HTML are separate fields. Property and room types, guest capacity, bedrooms, beds, bathrooms and layout text describe the accommodation. Multi-unit properties and hotels can omit individual room counts; absent counts are null.
Amenities include their group, title and availability. Facilities explicitly marked unavailable are kept, which helps distinguish an unavailable kitchen from a missing amenities section. A flat amenities_available list provides only available facilities. House rules include check-in and checkout wording, pet rules, smoking rules and event rules. Safety information is returned separately.
Location includes the city, country name, country code, public coordinates and available location wording. Airbnb often shows approximate coordinates before booking; is_exact_location records what the listing reports. An exact street address is not guaranteed.
The host object includes the public name, identifier, Superhost and verification flags, profile picture, hosting duration, response wording and public introduction when available. Hosting duration is years and months, because the source does not supply an exact starting date. Overall rating uses a scale of five, with review count and category ratings for accuracy, cleanliness, check-in, communication, location and value. Photos retain URLs and captions.
Stay prices and availability
With dates, price is the total for the requested stay and party size in currency. price_nightly records the nightly amount from the displayed breakdown when available, and can exclude additional fees. price_breakdown keeps individual amounts and labels. Hotel quotes refer to the default room offered by the listing, without a room-selection step.
The country selected for the quote can change whether taxes are included. The same stay may show an inclusive total in one country and a total before taxes in another. Read price_includes_taxes and price_display_style before comparing amounts. The recorded quote country is additional context, and currency remains the currency requested for the run.
Unavailable dates still return the listing details with available:false, a null price and unavailable_reason. A requested quote that could not be collected gives a partial row and a warning. If dates were omitted, null price fields are expected and do not create a warning. Quotes are snapshots and can change before booking.
Pricing and delivery
Billing uses one listing event for each listing row actually delivered. An unavailable date window still counts as a delivered listing because its property details were collected. Failed or missing listings produce error records and are not charged as listing rows. Empty results incur no listing charge and this actor has no separate start event. The current event price is shown in the actor's Pricing tab.
Non-paying users can process at most ten combined listing inputs per run. This limit applies across URL and ID lists together. Paying users can request up to 10,000 inputs, subject to their run time and spending limits. Billing follows delivered dataset rows rather than the length of the submitted list.
FAQ
Do I need an Airbnb account?
No Airbnb login is needed for public listing information. Listings that are removed or no longer public are recorded as missing. The actor does not obtain private account or booking information.
Does this actor find listings in a city?
This actor collects a known set of listings supplied as room URLs or IDs. Use the separate Airbnb Scraper for location searches, then pass its listing identifiers here for fuller details.
Why is the price null?
Dates may have been omitted, the stay may be unavailable, or the requested quote could not be collected. Check available, unavailable_reason, row partial and the run warnings to tell these cases apart.
Are reviews and host profiles included in full?
The output includes review counts, average ratings and category ratings, plus the public host information on the listing. It does not collect individual review texts or a separate host profile history. Public host data can contain personal information; retain and use it only for your intended purpose and applicable obligations.
Is a daily availability calendar included?
The actor reports availability for the requested stay window. A day-by-day calendar is outside its current output. Repeat runs with a fixed listing set to build your own dated snapshots.