Airbnb Search Scraper avatar

Airbnb Search Scraper

Under maintenance

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Airbnb Search Scraper

Airbnb Search Scraper

Under maintenance

Search public Airbnb stays or extract specific public room pages with bounded browsing and validated output.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

6

Monthly active users

11 days ago

Last modified

Share

What this Actor does

This Actor collects public stay listings from Airbnb. Search by location, dates, guest count, price range, and property type, or provide room URLs to open specific listings. Use the results to compare stays, build travel research datasets, or enrich a short list of rooms with public details.

In search mode, choose between quick search cards and visiting each room page for more detail. Direct room URL mode always reads the room page. Only validated Airbnb listing records are added to the dataset.

Airbnb currently disallows location-search routes in its public robots rules. When those rules apply, search mode stops with no listing records and reports FAILED. Public room URLs are checked separately; room-page access does not establish that location search is available.

Room-page visits retain valid dates and guest settings from the source room URL, in both modes, so available room prices refer to that stay. Room details include complete descriptions, grouped amenities, room photo tours, host details and a public profile link when published on the room page, house and safety rules, and available calendar-day restrictions. Saved business links remain canonical room URLs without search parameters.

Run the Actor

  1. Open the Input tab and fill in the fields for a location search or URL mode. You can also paste one of the JSON examples below into the JSON editor.
  2. Select Start to run the Actor.
  3. Open Results to view the listings. Use the separate Output summary link for the run status and saved-record count.

Input

The input has conditional source requirements: search mode (the default) requires location, while productUrl mode requires at least one productUrls entry. The form may prefill Paris, France for location searches; this is only a form prefill, not a runtime default. A non-empty productUrls list in search mode is rejected so a run has one clear source. Unknown fields and unsupported aliases are rejected.

Search settings

FieldTypeRequired?DefaultWhat it does
locationTextRequired in search mode; optional in productUrl modeNone (the form may prefill Paris, France)Location to search, up to 200 characters. Leading and trailing spaces are trimmed.
checkInText (YYYY-MM-DD)Optional in search mode; must be paired with checkOutNoneSearch check-in date. Both dates must be valid calendar dates and today or later.
checkOutText (YYYY-MM-DD)Optional in search mode; must be paired with checkInNoneSearch check-out date, later than check-in.
guestsIntegerOptional2Guest count for a location search; from 1 to 16. In productUrl mode, guest settings come from each URL.
priceMinIntegerOptionalNoneLower nightly-price filter in the currency Airbnb uses for the search location; from 0 to 1,000,000.
priceMaxIntegerOptionalNoneUpper nightly-price filter in the currency Airbnb uses for the search location; from 0 to 1,000,000. It cannot be lower than priceMin.
propertyTypeText choiceOptionalanySearch filter: any, entire_home, private_room, or shared_room.

These search filters are sent to Airbnb as search settings. The Actor does not sort results; it keeps the order Airbnb returns. Date, guest, price, location, and property type settings do not change the selected listing URLs in productUrl mode. For a direct room URL, supported date and guest settings are read from that URL.

Results and detail settings

FieldTypeRequired?DefaultWhat it does
modeText choiceOptionalsearchChoose search to search a location, or productUrl to open specific public room pages.
productUrlsList of textRequired in productUrl mode; must be empty in search modeEmpty listUp to 100 public room URLs, each at most 2,048 characters. URLs must use HTTPS and an approved Airbnb host (airbnb.com, www.airbnb.com, airbnb.co.in, or www.airbnb.co.in), have a /rooms/{numericId} path, and contain no credentials or non-default port. They are canonicalized to www.airbnb.com; duplicate listing IDs are removed. Valid check_in, check_out, adults, children, infants, and pets settings are retained for navigation; unrelated parameters are removed. The first occurrence of each listing ID supplies its stay settings. Only the first maxItems unique URLs are processed.
maxItemsIntegerOptional10Maximum number of unique listing records to save, from 1 to 100. Applies to both modes.
maxPagesIntegerOptional3Maximum search-result pages to inspect in search mode, from 1 to 20. It is ignored in productUrl mode.
deepScrapeBooleanOptionalfalseIn search mode, visit each selected room page and add available detail fields. If a room-page request fails, retain its validated search-card fields and mark the run as limited. When off, save search-card fields only. Direct URL mode always reads room pages.
includeReviewsBooleanOptionaltrueInclude up to ten publicly returned reviews, their complete text and available IDs, dates, and author details, plus category ratings, rating distribution, and review topics when reading a room page. In search mode this applies when deepScrape is on; in productUrl mode it controls reviews directly.

The runtime enforces conditional requirements by mode: search requires location, and productUrl requires a non-empty productUrls list. A search input with non-empty direct URLs is rejected. In the Console form, clear the example location only if you want the direct URL input to be visually uncluttered; the value is ignored in productUrl mode.

Search results are deduplicated by Airbnb listing ID across pages. Reaching maxItems or maxPages is a normal completion. If Airbnb returns a denial, challenge, or a later page fails, the Actor preserves completed records and marks the run as limited when it has saved at least one record.

If the full reviews panel does not load, the available room record is kept and the run is marked as limited. Browser error pages are never saved as listings. A run that saves no real listings reports FAILED.

Advanced settings (Developer Options)

FieldTypeRequired?DefaultWhat it does
maxConcurrencyIntegerOptional1Maximum pages processed at once; from 1 to 3.
maxRequestRetriesIntegerOptional0Retry limit for a failed page request; from 0 to 2. Access denials remain failures.
requestDelayMsInteger (milliseconds)Optional1000Minimum spacing between page navigations; from 0 to 10,000 milliseconds.
navigationTimeoutSecsInteger (seconds)Optional60Maximum wait for a page navigation; from 15 to 120 seconds.
requestHandlerTimeoutSecsInteger (seconds)Optional120Maximum processing time for one page; from 30 to 300 seconds.
proxyConfigurationObjectOptionalDisabledCanonical Apify proxy editor configuration with useApifyProxy, optional apifyProxyGroups and apifyProxyCountry (uppercase country code such as IN), or custom proxyUrls. Apify groups/country require useApifyProxy: true; custom proxyUrls require useApifyProxy: false. Proxy routes cannot be mixed. Empty editor lists are accepted and ignored. If a requested proxy route is unavailable, the run fails instead of switching to direct access. Do not use proxies to bypass access controls.
{
"location": "Paris, France",
"maxItems": 3,
"maxPages": 1
}

Example: search with dates and filters

{
"location": "Kyoto, Japan",
"checkIn": "2027-05-10",
"checkOut": "2027-05-15",
"guests": 2,
"priceMin": 80,
"priceMax": 250,
"propertyType": "entire_home",
"maxItems": 10,
"maxPages": 3
}

Example: search cards without room-page details or reviews

{
"location": "Lisbon, Portugal",
"maxItems": 5,
"deepScrape": false,
"includeReviews": false
}

Example: open specific room URLs

Replace the example URL with one or more public Airbnb room URLs you want to inspect.

{
"mode": "productUrl",
"productUrls": [
"https://www.airbnb.com/rooms/46461531?check_in=2027-05-10&check_out=2027-05-17&adults=2"
],
"maxItems": 1,
"includeReviews": true
}

Example: bounded developer options

{
"location": "Singapore",
"maxItems": 5,
"maxPages": 2,
"maxConcurrency": 1,
"maxRequestRetries": 0,
"requestDelayMs": 1500,
"navigationTimeoutSecs": 60,
"requestHandlerTimeoutSecs": 120
}

For an explicitly configured proxy route, use the Apify proxy editor shape. For example, {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"IN"} requests the selected Apify route. A custom proxyUrls list requires useApifyProxy: false. Empty editor lists remain valid. Proxy configuration is optional; the Actor does not enable a proxy or a region by default.

Dataset results

The dataset contains listing business fields only. Search-only records may omit fields that Airbnb did not show. Records from room pages can include the optional detailData object. Missing values, source nulls, and empty collections are left out rather than replaced with placeholder text or zeroes. Explicit source false values are retained. Descriptions, neighborhood directions, and review text are not shortened by the Actor. Source translations and original text are kept separately when available.

When a requested room-page visit fails, a search result can still be saved without detailData. Direct URL mode has no search-card fallback. Errors while reading requested description, amenity, policy, review, or room-page host details mark a run with saved records as limited, even if the listing count reaches maxItems. Information that is simply not available on the public page is omitted.

The following full example is illustrative. It documents the supported record shape; it is not a verified live Airbnb result.

{
"listingId": "12345678",
"listingTitle": "Bright apartment near the river",
"listingDescription": "A quiet one-bedroom stay close to transit.",
"price": "€840",
"originalPrice": "€980",
"totalPrice": "€840",
"nights": 7,
"freeCancellation": true,
"rating": 4.92,
"reviewCount": 84,
"propertyType": "Entire home in Paris, France",
"bedrooms": 1,
"beds": 1,
"bathrooms": 1.5,
"link": "https://www.airbnb.com/rooms/12345678",
"thumbnail": "https://a0.muscache.com/im/pictures/example-cover.jpg",
"thumbnails": [
"https://a0.muscache.com/im/pictures/example-cover.jpg",
"https://a0.muscache.com/im/pictures/example-kitchen.jpg"
],
"superhost": true,
"guestFavourite": true,
"detailData": {
"title": "Bright apartment near the river",
"description": "A quiet one-bedroom stay close to transit. The space A full kitchen and a sunny living room.",
"propertyType": "Entire serviced apartment",
"locationName": "Paris, France",
"shortDescription": "A quiet one-bedroom stay close to transit.",
"maxGuests": 2,
"bedrooms": 1,
"beds": 1,
"bathrooms": 1.5,
"hostName": "Camille",
"isSuperhost": true,
"hostYearsHosting": 6,
"isGuestFavourite": true,
"rating": 4.92,
"reviewCount": 84,
"categoryRatings": {
"cleanliness": 4.9,
"accuracy": 4.9,
"checkIn": 5,
"communication": 5,
"location": 4.8,
"value": 4.9
},
"price": "€840",
"originalPrice": "€980",
"priceLabel": "€840 for 7 nights, originally €980",
"amenities": [
"Kitchen",
"Wifi",
"Washer"
],
"highlights": [
"Walkable neighborhood",
"Dedicated workspace"
],
"listingHighlights": [
{
"title": "Walkable neighborhood",
"description": "Cafes and public transit are nearby."
}
],
"sleepingArrangement": "Bedroom: 1 queen bed",
"sleepingArrangements": [
{
"name": "Bedroom",
"beds": ["1 queen bed"]
}
],
"cancellationPolicy": "Free cancellation before 9 May.",
"houseRules": "No smoking. No parties.",
"checkoutTime": "11:00 AM",
"coordinates": {
"lat": 48.8566,
"lng": 2.3522
},
"images": [
{
"url": "https://a0.muscache.com/im/pictures/example-cover.jpg",
"contentUrl": "https://a0.muscache.com/im/pictures/example-cover.jpg",
"caption": "Living room",
"width": 1600,
"height": 1200,
"id": "901",
"aspectRatio": 1.3333333333333333,
"orientation": "LANDSCAPE"
},
"https://a0.muscache.com/im/pictures/example-kitchen.jpg"
],
"neighbourhoodDescription": "Cafes and public transit are nearby.",
"hostAbout": "I enjoy helping guests explore the city.",
"reviews": [
{
"author": "Jordan",
"authorLocation": "Toronto, Canada",
"rating": 5,
"date": "May 2026",
"stayType": "Stayed for a week",
"text": "The apartment was clean, comfortable, and easy to reach.",
"hostResponse": "Thank you for staying with us.",
"originalHostResponse": "Merci d'avoir séjourné chez nous.",
"hostResponseDate": "May 2026",
"hostResponseAuthor": "Camille",
"id": "701",
"authorId": "801",
"authorProfileUrl": "https://www.airbnb.com/users/profile/802",
"avatarUrl": "https://a0.muscache.com/im/pictures/example-reviewer.jpg",
"createdAt": "2026-05-20T12:00:00Z",
"language": "en",
"originalText": "The apartment was clean, comfortable, and easy to reach."
}
],
"descriptionTranslationApplied": true,
"descriptionHtml": "A quiet one-bedroom stay close to transit.<br/><b>The space</b><br/>A full kitchen and a sunny living room.",
"originalDescription": "Un logement calme avec une chambre, une cuisine équipée et un salon lumineux.",
"originalDescriptionHtml": "Un logement calme avec une chambre, une cuisine équipée et un salon lumineux.",
"descriptionSections": [
{
"text": "A quiet one-bedroom stay close to transit."
},
{
"title": "The space",
"text": "A full kitchen and a sunny living room."
}
],
"amenityGroups": [
{
"title": "Kitchen and dining",
"amenities": [
{
"name": "Kitchen",
"available": true,
"description": "Space where guests can cook their own meals"
}
]
},
{
"title": "Internet",
"amenities": [
{
"name": "Wifi",
"available": true
}
]
},
{
"title": "Laundry",
"amenities": [
{
"name": "Washer",
"available": true
}
]
},
{
"title": "Not included",
"amenities": [
{
"name": "TV",
"available": false
}
]
}
],
"rooms": [
{
"id": "12345678-living-room",
"name": "Living room",
"features": [
"Sunny seating area"
],
"images": [
{
"url": "https://a0.muscache.com/im/pictures/example-cover.jpg",
"caption": "Living room",
"width": 1600,
"height": 1200,
"id": "901",
"aspectRatio": 1.3333333333333333,
"orientation": "LANDSCAPE"
}
]
}
],
"host": {
"id": "501",
"name": "Camille",
"profileId": "502",
"profileUrl": "https://www.airbnb.com/users/profile/502",
"avatarUrl": "https://a0.muscache.com/im/pictures/example-host.jpg",
"isVerified": true,
"rating": 4.92,
"reviewCount": 84,
"responseRate": "Response rate: 100%",
"responseTime": "Responds within an hour",
"highlights": [
"Speaks English and French"
],
"about": "I enjoy helping guests explore the city.",
"isAirbnbManaged": false
},
"location": {
"city": "Paris",
"title": "Paris, Île-de-France, France",
"neighbourhood": "Paris",
"description": "Cafes and public transit are nearby.",
"isExactLocation": false,
"isVerified": true,
"address": {
"addressLocality": "Paris"
},
"details": [
{
"title": "Getting around",
"text": "The metro station is a short walk away."
}
]
},
"houseRuleGroups": [
{
"title": "Checking in and out",
"items": [
{
"title": "Check-in after 3:00 pm"
},
{
"title": "Checkout before 11:00 am"
}
]
},
{
"title": "During your stay",
"items": [
{
"title": "No smoking",
"description": "Smoking is not permitted indoors."
},
{
"title": "No parties or events"
}
]
}
],
"safetyGroups": [
{
"title": "Safety devices",
"items": [
{
"title": "Smoke alarm",
"description": "Installed in the apartment."
}
]
}
],
"ratingDistribution": [
{
"stars": 5,
"proportion": 0.9166666666666666
},
{
"stars": 4,
"proportion": 0.08333333333333333
},
{
"stars": 3,
"proportion": 0
},
{
"stars": 2,
"proportion": 0
},
{
"stars": 1,
"proportion": 0
}
],
"reviewTopics": [
{
"name": "Clean apartment",
"count": 12
}
],
"availability": [
{
"date": "2027-05-10",
"available": true,
"availableForCheckin": true,
"availableForCheckout": true,
"bookable": true,
"minNights": 2,
"maxNights": 30
}
],
"cancellationTerms": [
{
"refundType": "Full refund",
"refundTerm": "Get back 100% of what you paid.",
"deadline": "9 May 3:00 pm",
"deadlineRelation": "Before",
"description": "Full refund if you cancel before 3:00 pm on 9 May."
}
],
"stay": {
"checkIn": "2027-05-10",
"checkOut": "2027-05-17",
"guests": 2,
"nights": 7,
"currencySymbol": "€",
"available": true,
"priceIncludesFees": true,
"priceBreakdown": [
{
"label": "7 nights x €120",
"price": "€840"
}
]
}
}
}

Listing fields

FieldTypeRequired?Meaning
listingIdTextRequiredNumeric Airbnb listing ID.
listingTitleTextRequiredListing title from the search card or room page.
linkURLRequiredCanonical Airbnb room URL for this listing.
listingDescriptionTextOptionalShort description or subtitle shown on the search card.
priceTextOptionalPrice text shown in the search card; Airbnb may display a total for the selected dates.
originalPriceTextOptionalOriginal price when Airbnb displays a reduced price.
totalPriceTextOptionalTotal price for the shown stay when extracted.
nightsIntegerOptionalNumber of nights shown with the card price.
freeCancellationBooleanOptionalWhether the visible price area indicates free cancellation.
ratingNumberOptionalPublic listing rating.
reviewCountIntegerOptionalNumber of reviews shown for the listing.
propertyTypeTextOptionalProperty type or listing subtitle.
bedroomsIntegerOptionalBedroom count shown in listing details.
bedsIntegerOptionalBed count shown in listing details.
bathroomsNumberOptionalBathroom count shown in listing details, including fractional counts when Airbnb publishes them.
thumbnailURLOptionalFirst available search-card image.
thumbnailsList of URLsOptionalSearch-card image URLs.
superhostBooleanOptionalSearch-card Superhost badge signal.
guestFavouriteBooleanOptionalSearch-card Guest favourite badge signal.
detailDataObjectOptionalAdditional information read from the room page; fields are listed below.

detailData fields

detailData appears when a room page was successfully read. Its title is required when the object is present; other fields are optional.

FieldTypeRequired?Meaning
titleTextRequired in detailDataTitle shown on the room page.
descriptionTextOptionalComplete publicly provided listing description, without HTML tags.
shortDescriptionTextOptionalPublic localized short description when available.
propertyTypeTextOptionalRoom type from the overview.
locationNameTextOptionalLocation text from the overview.
maxGuestsIntegerOptionalGuest capacity.
bedroomsIntegerOptionalBedroom count from the overview.
bedsIntegerOptionalExplicit bed count from the public overview, including labels such as 1 double bed; not inferred from photos.
bathroomsNumberOptionalExplicit bathroom count from the overview, including fractional values such as 1.5; unnumbered labels are omitted.
hostNameTextOptionalHost name shown on the page.
isSuperhostBooleanOptionalSuperhost signal from the host section.
hostYearsHostingIntegerOptionalHosting duration in years, when stated in that form.
isGuestFavouriteBooleanOptionalGuest favourite badge signal.
ratingNumberOptionalPublic room rating.
reviewCountIntegerOptionalPublic room review count.
categoryRatingsObject of numbersOptionalAvailable ratings for cleanliness, accuracy, checkIn, communication, location, and value. Read when includeReviews is on.
priceTextOptionalPrice text from the room page.
originalPriceTextOptionalOriginal room-page price when shown.
priceLabelTextOptionalPrice label from the room page, including the shown stay length when available.
amenitiesList of textOptionalOffered amenities visible or expanded on the page. Items marked unavailable, category headings, and explanatory text are excluded from expanded amenity lists.
highlightsList of textOptionalListing highlights.
sleepingArrangementTextOptionalSleeping arrangement description.
cancellationPolicyTextOptionalCancellation policy text when shown. Prompts to add dates are omitted.
houseRulesTextOptionalHouse-rule text.
checkoutTimeTextOptionalCheckout time when shown.
coordinatesObjectOptionallat and lng coordinates from structured listing data.
imagesListOptionalAll public room-tour images when available, otherwise structured image data. Objects can include native image ID, URL, caption, dimensions, aspect ratio, and orientation.
neighbourhoodDescriptionTextOptionalNeighborhood description shown on the page.
hostAboutTextOptionalHost introduction text shown on the page.
reviewsList of objectsOptionalUp to ten publicly returned reviews with complete text, native IDs, publication dates, and public author details. Requires includeReviews: true.
listingHighlightsList of objectsOptionalPublic listing highlight titles and available descriptions.
sleepingArrangementsList of objectsOptionalPublished sleeping-space names and their source bed descriptions.
descriptionHtmlTextOptionalComplete description HTML, with unsafe markup and attributes removed.
originalDescriptionTextOptionalOriginal-language description when different from the displayed version.
originalDescriptionHtmlTextOptionalOriginal source description HTML when its plain text differs from the displayed description.
descriptionTranslationAppliedBooleanOptionalWhether the selected public description is a translation of a distinct source description. Omitted when source text is unavailable.
descriptionSectionsList of objectsOptionalDescription divided by source headings; each section has optional title and complete text.
amenityGroupsList of objectsOptionalSource amenity categories with item names, availability, and explanatory notes, including explicitly unavailable amenities.
roomsList of objectsOptionalSource room photo tour, preserving each room's ID, name, features, and associated images.
hostObjectOptionalListing host identity and details published on the room page, with a public profile link when exposed there.
locationObjectOptionalPublished location label, locality, neighborhood description, and directions; no guessed address components.
houseRuleGroupsList of objectsOptionalComplete rule categories, item titles, and available explanations.
safetyGroupsList of objectsOptionalPublished safety and property categories, including devices reported or not reported by the host.
ratingDistributionList of objectsOptionalPublished star-rating proportions. Requires includeReviews: true.
reviewTopicsList of objectsOptionalPublished review-topic labels and counts. Requires includeReviews: true.
availabilityList of objectsOptionalCalendar days returned by the public page, commonly twelve months, with published availability and stay-length restrictions.
cancellationTermsList of objectsOptionalStay-specific refund milestones returned by the page. Dates remain source text; no year is inferred.
stayObjectOptionalDates and guest count actually displayed by the room page, with available price context and booking availability signals.

Each review object can contain these optional fields:

FieldTypeRequired?Meaning
authorTextOptionalReview author name.
authorLocationTextOptionalAuthor location shown with the review. Omitted when Airbnb displays only the author's membership duration.
ratingIntegerOptionalReview star rating, from 1 to 5.
dateTextOptionalReview date or relative date text.
stayTypeTextOptionalStay description shown with the review.
textTextOptionalComplete displayed or translated review text.
hostResponseTextOptionalComplete displayed host reply.
originalHostResponseTextOptionalComplete source reply when Airbnb also supplies a distinct translated reply.
idTextOptionalNative review ID.
authorIdTextOptionalNative reviewer user ID.
authorProfileUrlURLOptionalPublic reviewer profile link.
avatarUrlURLOptionalPublic reviewer image.
createdAtText (date-time)OptionalSource review publication timestamp, retaining its timezone.
languageTextOptionalSource language code.
originalTextTextOptionalComplete original-language review text.

When present, coordinates contains lat and lng numbers. An image item is either a URL string or an object with available id, url, contentUrl, caption, width, height, aspectRatio, and orientation. contentUrl is supported by the existing structured-image fallback. Room-tour image objects use the same fields except contentUrl. Dimensions and aspect ratios are source values; missing dimensions are omitted.

Enriched nested fields

All fields below are optional. Lists preserve their source associations rather than mixing room photos, host data, or calendar days from different listings.

FieldTypeRequired?Meaning
amenityGroups[].titleTextOptionalAmenity category heading.
amenityGroups[].amenities[].nameTextOptionalAmenity name.
amenityGroups[].amenities[].availableBooleanOptionalExplicit source availability; false does not mean an extraction failure.
amenityGroups[].amenities[].descriptionTextOptionalExplanatory amenity note.
rooms[].idTextOptionalNative room-tour space ID.
rooms[].nameTextOptionalRoom name.
rooms[].featuresList of textOptionalSource descriptions of the room or sleeping space.
rooms[].imagesList of objectsOptionalImages belonging to this room, using the image fields described above.
host.idTextOptionalNative Airbnb user ID, distinct from the public profile ID.
host.nameTextOptionalPublished host name.
host.profileIdTextOptionalNative public profile ID.
host.profileUrlURLOptionalPublic host profile link exposed on the room page.
host.isAirbnbManagedBooleanOptionalPublic Airbnb-managed-host signal when present.
host.avatarUrlURLOptionalPublic host image.
host.isVerifiedBooleanOptionalSource identity-verification signal.
host.ratingNumberOptionalPublic host rating from the room page. Requires includeReviews: true.
host.reviewCountIntegerOptionalPublic host review count from the room page. Requires includeReviews: true.
host.responseRateTextOptionalDisplayed response-rate label.
host.responseTimeTextOptionalDisplayed response-time label.
host.highlightsList of textOptionalPublic listing-page host highlights.
host.aboutTextOptionalActual host introduction, when published.
location.titleTextOptionalComplete source location label.
location.cityTextOptionalCity from Airbnb's localized location value.
location.neighbourhoodTextOptionalPublished neighborhood name.
location.descriptionTextOptionalPublic area description.
location.isExactLocationBooleanOptionalWhether Airbnb labels the map location as exact.
location.isVerifiedBooleanOptionalSource location-verification signal.
location.address.addressLocalityTextOptionalLocality explicitly provided in listing structured data.
location.detailsList of objectsOptionalComplete location sections with available title and text, including neighborhood highlights and getting around.
houseRuleGroups[].title, safetyGroups[].titleTextOptionalSource rule or safety category.
houseRuleGroups[].items, safetyGroups[].itemsList of objectsOptionalComplete items with available title and description.
ratingDistribution[].starsIntegerOptionalStar category, from 1 to 5.
ratingDistribution[].proportionNumberOptionalSource fraction, from 0 to 1; not an invented review count.
reviewTopics[].nameTextOptionalPublished review-topic label.
reviewTopics[].countIntegerOptionalSource topic count.
availability[].dateText (date)OptionalCalendar day in YYYY-MM-DD.
availability[].availableBooleanOptionalSource day availability.
availability[].availableForCheckinBooleanOptionalWhether check-in is allowed on this day.
availability[].availableForCheckoutBooleanOptionalWhether checkout is allowed on this day.
availability[].bookableBooleanOptionalSource bookability flag, omitted when unknown.
availability[].minNights, availability[].maxNightsIntegerOptionalPublished stay-length bounds for this day.
cancellationTerms[].refundTypeTextOptionalRefund milestone label.
cancellationTerms[].refundTermTextOptionalRefund conditions.
cancellationTerms[].deadlineTextOptionalSource deadline date and time label.
cancellationTerms[].deadlineRelationTextOptionalSource relation such as Before or After.
cancellationTerms[].descriptionTextOptionalFull published milestone explanation.
stay.checkIn, stay.checkOutText (date)OptionalDates displayed for the tested stay.
stay.guestsIntegerOptionalDisplayed guest count.
stay.nightsIntegerOptionalNights shown with the price.
stay.currencySymbolTextOptionalActual displayed currency symbol; no ISO currency code is guessed.
stay.availableBooleanOptionalWhether the page offers Reserve or explicitly says those dates are unavailable.
stay.priceBreakdownList of objectsOptionalPublic price-details line items, with source label and price text. Individual taxes or fees appear only if the popover publishes them.
stay.priceIncludesFeesBooleanOptionalWhether the page explicitly states that the displayed price includes all fees.
listingHighlights[].title, listingHighlights[].descriptionTextOptionalSource highlight heading and its available explanation.
sleepingArrangements[].nameTextOptionalSource sleeping-space name.
sleepingArrangements[].bedsList of textOptionalPublished bed descriptions for that sleeping space.
reviews[].hostResponse, reviews[].originalHostResponse, reviews[].hostResponseDate, reviews[].hostResponseAuthorTextOptionalPublic host reply, its distinct source-language version when returned, date label, and author when returned with an opted-in review.

Prices and cancellation conditions depend on the displayed stay and Airbnb's region/currency settings. A calendar or Reserve signal is a snapshot, not a booking guarantee. Price-breakdown rows keep the exact source labels and amounts, which may have more precision than a rounded booking-card total. Nightly prices, taxes, and individual fees are not inferred from a stay total. Exact street addresses, contact details, and private host information are not collected. Public host introductions and optional room features may be absent. Listing highlights may use Airbnb's displayed translation. When includeReviews is false, room-page reviews and review-derived detail ratings, topics, and distributions are omitted; search-card rating fields can still appear. The example shows the supported shape with illustrative values; real room tours and calendars retain items returned by the page, while reviews are limited to ten.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Run status

The Actor counts only validated listing records whose dataset writes completed.

Run outcomeStatusWhat it means
One or more records saved and collection completedSUCCEEDEDRun completed with the saved listings.
One or more records saved with a page, source, write, or requested room-page enrichment failureSUCCEEDED with isPartial: trueRun completed with limited results; saved listings remain available. Failed enrichment can make a run limited even when the listing count reaches maxItems.
No real listing records savedFAILEDIncludes blocked, empty, or invalid results. No placeholder records are added.

Output summary

The Output summary link opens the OUTPUT_SUMMARY record in the run's default Key-value store. It is separate from the listing dataset and contains only the three run-level fields below.

{
"status": "SUCCEEDED",
"itemsStored": 3,
"isPartial": false
}
FieldTypeRequired?Meaning
statusTextRequiredSUCCEEDED when at least one real listing record was saved; otherwise FAILED.
itemsStoredNonnegative integerRequiredCount of validated listing records whose dataset writes completed.
isPartialBooleanRequiredtrue when collection or requested room-page enrichment failed and at least one real record was saved.

An explicit empty search has no real records and therefore fails with itemsStored: 0. The summary write is attempted even after a caught collection failure. If saving the summary itself fails, the run status still follows the completed listing writes.

Tips and access limits

  • Use maxItems and maxPages to keep searches bounded. For search-card results without room-page visits, leave deepScrape off.
  • If you need richer host, amenity, policy, image, or review fields, enable deepScrape in search mode. Details that Airbnb does not expose are omitted.
  • Airbnb may show different results by date, location, region, or account state. This Actor reads public pages and cannot guarantee that every listing or field will be available.
  • If Airbnb blocks or challenges a request, the Actor stops that request and reports a failed or limited run. Do not use proxy settings to bypass access controls.
  • For help, use the support option on the Actor's Apify Store page.
  • Apify may charge for compute or proxy usage under your account plan. Check Apify's current pricing; this README does not quote a fixed price.