Airbnb Reviews Scraper avatar

Airbnb Reviews Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Airbnb Reviews Scraper

Airbnb Reviews Scraper

Collect public Airbnb guest reviews with ratings, complete text, listing details and optional host responses. Available fields and review coverage depend on the public website.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

4.3 hours

Issues response

19 days ago

Last modified

Share

What does the Airbnb reviews scraper do?

The Airbnb reviews scraper collects public review records from Airbnb listing pages and enriches each review with public listing and reviewer details when available. Enter one or more canonical room links, choose review limits and options, then read or download the run's dataset. Results depend on the public pages Airbnb makes available.

Target site: Airbnb.

Why use the Airbnb reviews scraper?

Use public review data for accommodation research, guest experience analysis, and listing comparisons. Each saved row represents one review and may include the listing's rating, location, capacity, amenities, photos, reviewer details, and host response exposed by Airbnb.

Start a run from the Apify Console, schedule repeated runs, or connect through the Apify API and integrations. The Input tab supports no-code runs.

What data can the Airbnb reviews scraper extract?

Data groupExamples
ReviewReview text, rating, publication date, language, public review highlights and photos, review topics, and review position
ListingListing ID and URL, title, location, overall rating, rating categories, review count, guest capacity, and description
HostPublic name, profile link, hosting tenure, Superhost status, response rate, response text, and response author avatar
Media and amenitiesCover image, photo gallery, amenity groups and availability, sleeping arrangements, and listing highlights
House informationPublic location notes and coordinates, house rules, safety information, and property details
ReviewerPublic display name, profile link, location, tenure, Superhost status, and avatar when shown with the review

How to scrape Airbnb listing reviews

  1. Open the Actor and select the Input tab.
  2. Enter 1 to 20 HTTPS Airbnb room URLs in Listing URLs. Each path must be exactly /rooms/<numeric-id>; regional Airbnb domains and harmless tracking parameters are supported.
  3. Set review limits, search or sort options, and optional listing or reviewer details.
  4. Select Save & Start.
  5. When the run finishes, open Results to view or download review rows and Output summary to check run status.

Input

See the Input tab for the complete configuration. productUrls is required; all other fields are optional and use the defaults shown below. Listing IDs are deduplicated after URL normalization, so regional links to the same listing are processed once. Query parameters and fragments are removed after validation. Booking, modal, private, login, or credential controls in query parameters or fragments are rejected.

Listing and result limits

FieldTypeRequired?DefaultWhat it does
productUrlsArray of stringsRequiredNo default; form prefilled with a sample URLEnter 1 to 20 HTTPS Airbnb room links with an exact /rooms/<numeric-id> path. The accepted hosts are Airbnb's apex or www domain with .com, a two-letter regional suffix, .co.<country>, or .com.<country>. Harmless tracking parameters and fragments are discarded. Duplicate listing IDs are processed once.
maxReviewsPerListingIntegerOptional0Maximum review rows to save from each listing. 0 means no per-listing cap. Range: 0 to 1,000.
maxTotalReviewsIntegerOptional0Maximum review rows to save across all listings. 0 means no run-wide cap. Range: 0 to 10,000. Reaching this limit is normal completion.

Search, sort, and details

FieldTypeRequired?DefaultWhat it does
includeHostResponsesBooleanOptionaltrueInclude available host response text, response author, profile URL, avatar, and original-language response text. hasHostResponse is still included when this option is off.
includeListingMetadataBooleanOptionaltrueInclude public listing ratings, capacity, host details, description, amenity groups, photos, sleeping arrangements, location details, highlights, rules, and safety information.
includeReviewerDetailsBooleanOptionaltrueInclude public reviewer profile, location, tenure, Superhost status, and avatar details shown with a review.
reviewSearchStringOptionalEmpty textOptional phrase for Airbnb's review search control. Maximum length: 200 characters. No matching reviews means no rows for that listing.
reviewSortChoiceOptionalBEST_QUALITYSort order exposed by Airbnb's review panel: BEST_QUALITY, MOST_RECENT, HIGHEST_RATED, or LOWEST_RATED.

The listing title stays with each review as context when available, even when listing metadata is disabled. Disabling host responses omits the reply details while retaining hasHostResponse when the source exposes whether a reply exists.

The search and sort settings use controls or review data exposed by Airbnb. If the requested control is unavailable, collection for that listing fails instead of returning a different order or unfiltered results. A search with no matches produces no review rows.

Advanced settings

FieldTypeRequired?DefaultWhat it does
maxConcurrencyIntegerOptional1Maximum number of listing pages processed at once. Range: 1 to 5. Lower values reduce concurrent requests.
maxRequestRetriesIntegerOptional1Maximum retries for transient listing navigation or source request failures. Access-denied pages are not retried. Range: 0 to 5.
requestDelayMsIntegerOptional1000Additional wait before each listing navigation. Range: 0 to 10,000 ms.
requestTimeoutSecsIntegerOptional60Navigation timeout for listing and review pages. Range: 15 to 180 seconds.
proxyConfigurationObjectOptionalApify Residential proxySelect Apify proxy groups and an optional two-letter country code, provide custom HTTP(S) proxy URLs, or disable proxies. These routes cannot be combined. Apify proxy groups can be empty to use automatic group selection. Custom proxy credentials stay in the input and are not included in this README's examples.

The proxy editor uses these canonical fields. Empty arrays are accepted as unset; an empty Apify group list means automatic group selection. When useApifyProxy is false, provide custom URLs or use no proxy. Custom URLs must use HTTP(S); Apify proxy fields and nonempty custom URLs cannot be combined.

Proxy fieldTypeRequired?DefaultWhat it does
proxyConfiguration.useApifyProxyBooleanOptionaltrueSelect Apify Proxy. Set false to use custom proxy URLs or disable proxies.
proxyConfiguration.apifyProxyGroupsArray of stringsOptionalRESIDENTIALApify Proxy groups. An empty array requests automatic group selection. Maximum: 50 groups.
proxyConfiguration.apifyProxyCountryStringOptionalNoneOptional two-letter country code for Apify Proxy.
proxyConfiguration.proxyUrlsArray of stringsOptionalNoneCustom HTTP(S) proxy URLs. Use only with useApifyProxy: false. Maximum: 50 URLs. A proxy URL may contain credentials; keep them private.

Copyable input examples

A small run for one listing:

{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951"
],
"maxReviewsPerListing": 5
}

Search review text and sort recent results:

{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951"
],
"maxReviewsPerListing": 25,
"maxTotalReviews": 100,
"reviewSearch": "clean",
"reviewSort": "MOST_RECENT"
}

Provide several URL forms for one listing. The first two URLs canonicalize to the same listing ID and are deduplicated. The third URL is a separate listing, so the Actor processes two unique IDs:

{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951",
"https://www.airbnb.co.uk/rooms/1104883308160967951?adults=1",
"https://www.airbnb.com/rooms/2902865"
],
"maxTotalReviews": 20
}

Collect review content without optional listing, reviewer, or host response details:

{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951"
],
"maxReviewsPerListing": 10,
"includeHostResponses": false,
"includeListingMetadata": false,
"includeReviewerDetails": false
}

Adjust pacing and retries while keeping the default Apify Residential proxy route:

{
"productUrls": [
"https://www.airbnb.com/rooms/1104883308160967951"
],
"maxConcurrency": 1,
"maxRequestRetries": 2,
"requestDelayMs": 1500,
"requestTimeoutSecs": 60,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

Output

The dataset contains one business record per saved review. Required fields are recordId, listingId, listingUrl, reviewIndex, authorName, and reviewText. Optional fields are included only when the page exposes them and the corresponding input option permits them.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The illustrative record below includes every supported top-level and nested field. Its values are documentation examples, not a verified live result. Optional values may not appear together on a real review:

{
"recordId": "1234567890123456789#review-9876543210987654321",
"listingId": "1234567890123456789",
"listingUrl": "https://www.airbnb.com/rooms/1234567890123456789",
"listingTitle": "Example apartment near the city center",
"overallRating": 4.87,
"totalReviewCount": 128,
"starDistribution": {
"5_star": 86,
"4_star": 10,
"3_star": 3,
"2_star": 1,
"1_star": 0
},
"categoryRatings": {
"cleanliness": 4.9,
"accuracy": 4.8,
"checkIn": 4.9,
"communication": 4.9,
"location": 4.7,
"value": 4.6
},
"listingType": "Entire apartment",
"location": "Example City, Example Country",
"guestCapacity": 4,
"bedroomCount": 2,
"bedCount": 2,
"bathroomCount": 1.5,
"hostName": "Example Host",
"hostProfileUrl": "https://www.airbnb.com/users/profile/123456789",
"hostIsSuperhost": true,
"hostReviewCount": 128,
"hostRating": 4.95,
"hostYearsHosting": 6,
"hostResponseRate": "100%",
"hostResponseTime": "Responds within an hour",
"listingDescription": "A bright example apartment close to public transport.\n\nThe space\nTwo bedrooms, a kitchen, and a comfortable dining area.\n\nGuest access\nGuests have access to the whole apartment.",
"coverImageUrl": "https://a0.muscache.com/im/pictures/example-cover.jpg",
"isGuestFavourite": true,
"amenityCount": 3,
"reviewIndex": 1,
"reviewId": "9876543210987654321",
"authorName": "Example Reviewer",
"authorInfo": "Example City, Example Country",
"reviewerLocation": "Example City, Example Country",
"reviewerYearsOnAirbnb": 5,
"reviewerId": "123456789",
"reviewerUrl": "https://www.airbnb.com/users/profile/123456789",
"authorAvatar": "https://a0.muscache.com/im/pictures/example-avatar.jpg",
"reviewerIsSuperhost": false,
"rating": 5,
"date": "January 2026",
"stayType": "Stayed a few nights",
"reviewText": "The apartment was clean, comfortable, and close to public transport.",
"hasHostResponse": true,
"hostResponse": "Thank you for your thoughtful feedback. We hope to welcome you again.",
"hostResponseAuthor": "Example Host",
"hostResponseAuthorId": "123456789",
"hostResponseAuthorUrl": "https://www.airbnb.com/users/profile/123456789",
"hostResponseAuthorAvatar": "https://a0.muscache.com/im/pictures/user/example-host-avatar.jpg",
"hostResponseDate": "February 2026",
"listingDescriptionHtml": "A bright example apartment close to public transport.<br /><br /><b>The space</b><br />Two bedrooms, a kitchen, and a comfortable dining area.<br /><br /><b>Guest access</b><br />Guests have access to the whole apartment.",
"amenityGroups": [
{
"name": "Kitchen and dining",
"amenities": [
{
"name": "Kitchen",
"description": "Space where guests can cook their own meals",
"available": true
},
{
"name": "Refrigerator",
"available": true
}
]
},
{
"name": "Home safety",
"amenities": [
{
"name": "Smoke alarm",
"description": "Installed in the hallway",
"available": true
},
{
"name": "Carbon monoxide alarm",
"description": "Not available",
"available": false
}
]
}
],
"listingPhotos": [
{
"id": "111111",
"url": "https://a0.muscache.com/im/pictures/example-cover.jpg",
"caption": "First bedroom",
"width": 1600,
"height": 1067,
"roomTags": [
"Bedroom"
]
},
{
"id": "222222",
"url": "https://a0.muscache.com/im/pictures/example-kitchen.jpg",
"caption": "Kitchen and dining area",
"width": 1600,
"height": 1067,
"roomTags": [
"Kitchen",
"Dining_room"
]
}
],
"sleepingArrangements": [
{
"name": "Bedroom 1",
"bedDescriptions": [
"1 king bed"
]
},
{
"name": "Bedroom 2",
"bedDescriptions": [
"1 double bed"
]
}
],
"locationDetails": {
"displayName": "Example City, Example Region, Example Country",
"neighborhood": "Example neighborhood",
"description": "A residential area with cafés and public transport.",
"latitude": 48.85,
"longitude": 2.35,
"isExactLocation": false,
"details": [
{
"title": "From the host",
"text": "The local station is a five-minute walk from the apartment."
}
]
},
"hostDetails": {
"about": "We welcome guests to our family-managed apartment.\nWe can recommend local cafés and walking routes.",
"profilePictureUrl": "https://a0.muscache.com/im/pictures/example-host.jpg",
"isVerified": true,
"highlights": [
"Speaks English and French",
"Lives in Example City"
],
"timeAsHost": {
"years": 6,
"months": 2
}
},
"houseRules": [
{
"title": "Checking in and out",
"items": [
{
"title": "Check-in after 3:00 pm",
"description": "Self check-in with a keypad."
}
]
},
{
"title": "During your stay",
"items": [
{
"title": "No parties or events",
"description": "Please respect the neighbors."
}
]
}
],
"safetyAndProperty": [
{
"title": "Safety devices",
"items": [
{
"title": "Smoke alarm installed",
"description": "Located in the hallway."
}
]
}
],
"reviewTopics": [
{
"name": "Cleanliness",
"count": 20
},
{
"name": "Location",
"count": 16
}
],
"reviewPublishedAt": "2026-01-12T10:15:00Z",
"reviewOriginalText": "L’appartement était propre, confortable et proche des transports en commun.",
"reviewLanguage": "fr",
"hostResponseOriginalText": "Merci pour votre commentaire. Nous espérons vous accueillir à nouveau.",
"reviewHighlight": "A public highlight associated with this review.",
"highlightType": "POSITIVE",
"reviewPhotos": [
{
"url": "https://a0.muscache.com/im/pictures/review-example.jpg"
}
],
"listingHighlights": [
{
"title": "Dedicated workspace",
"description": "A quiet space with wifi for working."
}
]
}

Output fields

FieldTypeRequired?Meaning
recordIdStringRequiredStable row identifier combining the listing ID with the source review ID, or a listing-bound content hash when Airbnb does not expose an ID.
listingIdStringRequiredNumeric Airbnb listing identifier.
listingUrlStringRequiredCanonical Airbnb URL for the listing.
listingTitleStringOptionalListing title.
overallRatingNumberOptionalOverall listing rating on Airbnb.
totalReviewCountIntegerOptionalTotal review count reported for the listing.
starDistributionObjectOptionalReview percentages by 5_star, 4_star, 3_star, 2_star, and 1_star.
categoryRatingsObjectOptionalRatings for cleanliness, accuracy, checkIn, communication, location, and value.
listingTypeStringOptionalAccommodation type.
locationStringOptionalListing location text.
guestCapacityIntegerOptionalNumber of guests the listing accommodates.
bedroomCountIntegerOptionalNumber of bedrooms.
bedCountIntegerOptionalNumber of beds.
bathroomCountNumberOptionalNumber of bathrooms.
hostNameStringOptionalHost display name.
hostProfileUrlStringOptionalHost's public Airbnb profile URL.
hostIsSuperhostBooleanOptionalWhether Airbnb labels the host a Superhost.
hostReviewCountIntegerOptionalHost review count shown on the listing.
hostRatingNumberOptionalHost's average rating when shown.
hostYearsHostingIntegerOptionalHosting tenure in years.
hostResponseRateStringOptionalHost response rate shown on the listing.
hostResponseTimeStringOptionalHost response time shown on the listing.
listingDescriptionStringOptionalComplete listing description text, including the space, guest access and other published sections when available.
coverImageUrlStringOptionalListing cover image URL.
isGuestFavouriteBooleanOptionalWhether the listing is labeled a Guest favourite.
amenityCountIntegerOptionalNumber of available amenities advertised by the listing; repeated entries are counted once.
reviewIndexIntegerRequiredOne-based position of this review in the collected results for its listing.
reviewIdStringOptionalSource review identifier. Omitted when Airbnb does not expose one; the recordId still uses a listing-bound content hash.
authorNameStringRequiredReviewer's display name.
authorInfoStringOptionalAdditional reviewer line shown with the name.
reviewerLocationStringOptionalReviewer's displayed location.
reviewerYearsOnAirbnbIntegerOptionalReviewer tenure in years when displayed.
reviewerIdStringOptionalNumeric reviewer profile identifier when available.
reviewerUrlStringOptionalReviewer's public Airbnb profile URL.
authorAvatarStringOptionalPublic reviewer avatar URL.
reviewerIsSuperhostBooleanOptionalWhether the reviewer's public profile identifies them as a Superhost. Included with reviewer details when Airbnb exposes the status.
ratingIntegerOptionalIndividual review rating on Airbnb’s 1-to-5-star scale; missing scores are omitted.
dateStringOptionalDate text shown with the review.
stayTypeStringOptionalStay duration text shown with the review.
reviewTextStringRequiredComplete review text in the language displayed by Airbnb, when the public response supplies it; otherwise the rendered card text.
hasHostResponseBooleanOptionalWhether a host response was detected.
hostResponseStringOptionalHost response text, when enabled and available.
hostResponseAuthorStringOptionalResponse author's display name.
hostResponseAuthorIdStringOptionalNumeric response author profile identifier.
hostResponseAuthorUrlStringOptionalResponse author's public Airbnb profile URL.
hostResponseAuthorAvatarStringOptionalPublic avatar URL for the response author when available. Included with host responses.
hostResponseDateStringOptionalDate text shown with the host response.
listingDescriptionHtmlStringOptionalComplete public listing description HTML, including detailed sections. Enabled by includeListingMetadata.
amenityGroupsArray of objectsOptionalNamed groups of amenities, including descriptions and explicit availability. Enabled by includeListingMetadata.
listingPhotosArray of objectsOptionalAll photos in the public gallery, deduplicated by URL, with native image IDs and available captions, dimensions, and room labels. Enabled by includeListingMetadata.
sleepingArrangementsArray of objectsOptionalRoom names and every published bed description. Enabled by includeListingMetadata.
locationDetailsObjectOptionalPublished location labels, neighborhood notes and map coordinates. No inferred address components. Enabled by includeListingMetadata.
hostDetailsObjectOptionalFull host biography, profile photo, verification flag and public highlights shown on the listing. Enabled by includeListingMetadata.
listingHighlightsArray of objectsOptionalPublished listing feature headings and explanations. Enabled by includeListingMetadata.
houseRulesArray of objectsOptionalGrouped arrival, stay and departure rules, with complete descriptions. Enabled by includeListingMetadata.
safetyAndPropertyArray of objectsOptionalGrouped safety devices, hazards and property limitations. Enabled by includeListingMetadata.
reviewTopicsArray of objectsOptionalAirbnb’s listing-wide topic labels and counts; these describe the listing’s reviews collectively. Enabled by includeListingMetadata.
reviewPublishedAtStringOptionalExact source review publication timestamp, in ISO 8601 format, when the public review response exposes it.
reviewOriginalTextStringOptionalComplete original-language review text. Source HTML line breaks may be present.
reviewLanguageStringOptionalOriginal review language code reported by Airbnb, such as fr or en.
hostResponseOriginalTextStringOptionalFull original-language host reply, including source HTML line breaks when present. Enabled by includeHostResponses.
reviewHighlightStringOptionalPublic highlight text associated with this review when Airbnb exposes one.
highlightTypeStringOptionalPublic category for the review highlight, such as POSITIVE.
reviewPhotosArray of objectsOptionalPublic photo URLs attached to this review when the review UI exposes them.

Nested details

All these nested fields are optional unless marked required within their containing item. A parent object or array can be absent.

FieldTypeRequired?Meaning
starDistribution.5_star, starDistribution.4_star, starDistribution.3_star, starDistribution.2_star, starDistribution.1_starIntegerOptionalCounts of reviews at each star rating when Airbnb publishes a distribution.
categoryRatings.cleanliness, categoryRatings.accuracy, categoryRatings.checkIn, categoryRatings.communication, categoryRatings.location, categoryRatings.valueNumberOptionalListing-level category ratings when Airbnb exposes them.
amenityGroups[].nameStringRequired within groupPublished amenity category.
amenityGroups[].amenitiesArray of objectsRequired within groupAll published items in the category.
amenityGroups[].amenities[].nameStringRequired within itemAmenity name.
amenityGroups[].amenities[].descriptionStringOptionalFull additional amenity information.
amenityGroups[].amenities[].availableBooleanOptionalExplicit source availability; false means advertised as unavailable.
listingPhotos[].urlStringRequired within itemPublic photo URL.
listingPhotos[].idStringOptionalNative image identifier.
listingPhotos[].captionStringOptionalPublished caption or alternative text.
listingPhotos[].width, listingPhotos[].heightIntegerOptionalPublished original dimensions in pixels.
listingPhotos[].roomTagsArray of stringsOptionalSource room names or media tags associated with the photo.
sleepingArrangements[].nameStringRequired within itemRoom or sleeping space name.
sleepingArrangements[].bedDescriptionsArray of stringsRequired within itemAll bed descriptions for that space.
locationDetails.displayNameStringOptionalComplete source location label.
locationDetails.neighborhoodStringOptionalPublished neighborhood name.
locationDetails.descriptionStringOptionalNeighborhood summary supplied by Airbnb.
locationDetails.latitude, locationDetails.longitudeNumberOptionalPublic map coordinates, with latitude −90 to 90 and longitude −180 to 180.
locationDetails.isExactLocationBooleanOptionalAirbnb’s flag for whether its displayed map position is exact. This does not supply a street address.
locationDetails.detailsArray of objectsOptionalAdditional published location sections.
locationDetails.details[].title, locationDetails.details[].textStringRequired within itemSection heading and complete neighborhood or transport text.
hostDetails.aboutStringOptionalComplete host biography shown on the listing.
hostDetails.profilePictureUrlStringOptionalPublic host photo URL.
hostDetails.isVerifiedBooleanOptionalVerification flag reported in the source host information.
hostDetails.highlightsArray of stringsOptionalPublished profile facts, preserved as text.
hostDetails.timeAsHostObjectOptionalSource hosting tenure with separate year and month components; this can differ from the rounded hostYearsHosting display.
hostDetails.timeAsHost.years, hostDetails.timeAsHost.monthsIntegerOptionalSource years and remaining months of hosting, with months from 0 to 11.
listingHighlights[].titleStringRequired within itemFeature heading.
listingHighlights[].descriptionStringOptionalComplete source explanation of that feature.
houseRules[].title, safetyAndProperty[].titleStringRequired within groupRule or safety category.
houseRules[].items, safetyAndProperty[].itemsArray of objectsRequired within groupAssociated source rules or notices.
houseRules[].items[].title, safetyAndProperty[].items[].titleStringRequired within itemRule or notice heading.
houseRules[].items[].description, safetyAndProperty[].items[].descriptionStringOptionalComplete additional text.
reviewTopics[].nameStringRequired within itemTopic label supplied by Airbnb.
reviewTopics[].countIntegerRequired within itemNumber of listing reviews associated with that topic.
reviewPhotos[].urlStringRequired within itemPublic HTTPS image URL attached to the review.

Optional fields may be absent when Airbnb does not expose them or when an include option is off. Listing and host details include available capacity, host statistics, response rate, and badge information. A missing badge value is omitted rather than reported as false, and a missing number is omitted rather than reported as zero. The review date and stay type preserve the text shown on the page. reviewPublishedAt preserves the source's exact publication timestamp separately. Full review and reply text are matched to rendered cards by review ID using public responses loaded by Airbnb; when no source review ID is exposed, recordId uses a listing-bound SHA-256 content identity. The Actor does not request unpublished dates, helpful-vote counts, verified-stay flags, or review media that a page does not expose.

The listing details retain all items in the exposed amenity groups, photo gallery, rules, and sleeping arrangements; review limits cap review rows rather than truncating these sections. amenityCount counts available amenities only, so it can be smaller than the number of entries in amenityGroups. Repeated photos are merged by URL. Description HTML and original review text retain source formatting; ordinary reviewText and listingDescription contain readable text. Public profile pages can be unavailable to logged-out visitors, so hostDetails uses information published on the listing and reviewer details use the review cards. It does not promise a separate profile-page biography. No missing value is replaced with an empty array, invented number, address, or verification claim.

If collection stops before a review or reply can be expanded, its actual visible excerpt may be preserved and the output summary marks the run partial.

Run status and output summary

A run is SUCCEEDED when at least one valid review record was saved. If collection stops or optional listing enrichment fails after saving some records, the run remains SUCCEEDED and the summary marks it partial. Saved reviews remain available. Reaching the requested total review limit is normal completion. A run with no saved review records is FAILED, including when a listing has no reviews, results are fully filtered, input is invalid, or Airbnb blocks access.

The separate Output summary link opens the OUTPUT_SUMMARY record in the run's default Key-value store. It contains only the final status, the number of saved review records, and whether collection was partial.

Illustrative summary:

{
"status": "SUCCEEDED",
"itemsStored": 25,
"isPartial": false
}
FieldTypeRequired?Meaning
statusStringRequiredSUCCEEDED when one or more real reviews were saved; otherwise FAILED.
itemsStoredNonnegative integerRequiredNumber of validated review records whose dataset writes completed.
isPartialBooleanRequiredTrue when collection or optional listing enrichment failed during a run that saved at least one review.

How much will it cost to scrape Airbnb reviews?

The Actor uses Apify compute and the configured proxy. Cost depends on your Apify plan and proxy usage. Browser navigation, the number of listings, review scrolling, retries, and optional listing metadata affect runtime and resource use; large listing galleries also take longer to collect. Check current pricing in your Apify account. No fixed price is stated here.

Tips and advanced options

  • Keep the defaults for a paced run. Lower maxConcurrency or raise requestDelayMs when you prefer slower, more sequential collection.
  • Use maxReviewsPerListing and maxTotalReviews to cap the number of saved review rows. A value of 0 means no cap for that limit.
  • Search and sort options depend on controls Airbnb exposes on each listing. If the site changes those controls, a listing may fail rather than return results that do not match your request.
  • Listing metadata is shared across review rows for that listing; disabling it reduces the repeated detail fields in the dataset.

FAQ, support, and responsible use

Why did a run return no review rows?

A listing may have no public reviews, a search phrase may match none, a page may not expose review content, or Airbnb may deny access. Runs with no valid review rows fail; see OUTPUT_SUMMARY for final status and count. A partial run keeps reviews already saved when later collection or optional listing enrichment fails.

Does the Actor return a full street address?

No. It includes public location labels, neighborhood text, and map coordinates when Airbnb exposes them. It does not infer an address or claim that an approximate map point is exact.

Where can I get help?

Use the Actor's Issues tab and include the run ID plus a short description. Programmatic access is available from the Actor's API tab.

Airbnb may change its pages or limit access, so results can be limited or unavailable. This Actor is not affiliated with Airbnb. It reads public listing and review pages, does not ask for an Airbnb password, and does not attempt to solve access challenges. Our Actors only collect information users have chosen to share publicly, but results may contain personal data. Use them only with a lawful basis, follow Airbnb's terms and robots guidance, respect rate limits, and comply with applicable privacy laws. Consult qualified legal counsel when unsure.