Airbnb Reviews Scraper - Guest Reviews, Ratings & Host Replies avatar

Airbnb Reviews Scraper - Guest Reviews, Ratings & Host Replies

Pricing

from $2.10 / 1,000 guest reviews

Go to Apify Store
Airbnb Reviews Scraper - Guest Reviews, Ratings & Host Replies

Airbnb Reviews Scraper - Guest Reviews, Ratings & Host Replies

Airbnb reviews scraper and API alternative: extract guest reviews of any Airbnb listing with star rating, review text and translation, language, date, reviewer first name and location, host reply and length of stay. Sort by most recent or most relevant, no login.

Pricing

from $2.10 / 1,000 guest reviews

Rating

0.0

(0)

Developer

CrawlKit

CrawlKit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

Extract guest reviews from Airbnb listings: star rating, review text with Airbnb's translation, language, date, reviewer first name and location, host reply and length of stay. Give listing URLs or ids, sort by most recent or most relevant. No login.

What it does

  • Takes one or more Airbnb listing URLs (https://www.airbnb.com/rooms/<id>, any Airbnb country domain) or numeric listing ids, and returns one flat JSON item per guest review.
  • Each review comes with its rating (1-5), original text, language, ISO date, the reviewer's first name, the reviewer's location (or their tenure on Airbnb, which Airbnb shows instead for some reviewers), the length of stay, and the host's public reply.
  • Reviews written in another language than the requested language also get Airbnb's own machine translation in translatedText.
  • Uses the same JSON endpoint as the Airbnb listing page when it shows the reviews, plus the listing page itself for the listing title. No account is used.
  • Reviews are deduplicated by reviewId. Each listing returns up to maxItems reviews.

Typical uses: guest sentiment analysis, monitoring the reviews of your own or competing listings, comparing properties before a purchase or a management contract, training data for review classification.

Input

FieldTypeRequiredDefaultDescription
listingUrlsarray of stringsYes—Airbnb listing URLs (https://www.airbnb.com/rooms/36276450, https://www.airbnb.fr/rooms/36276450?adults=2) or listing ids (36276450)
sortBystringNomost_recentmost_recent (newest first) or most_relevant (Airbnb's default order)
languagestringNoenAirbnb locale (en, fr, de, es, pt-BR...): language of translatedText, stayDetails, reviewerTenure and hostReplyDate
maxItemsintegerNo50Maximum number of reviews per listing (1-5000)

Example:

{
"listingUrls": ["https://www.airbnb.com/rooms/36276450", "1423687913527325454"],
"sortBy": "most_recent",
"language": "en",
"maxItems": 100
}

Output

One item per review. Real example:

{
"reviewId": "1791305971234077119",
"listingId": "36276450",
"listingTitle": "A quiet little corner in the heart of Paris",
"listingUrl": "https://www.airbnb.com/rooms/36276450",
"rating": 5,
"text": "The location is fantastic if you wish to visit the cathedral‑Notre‑Dame. It is right next door, so you can hear its bells ring every day, which is a lovely, magical experience. [...]",
"translatedText": null,
"language": "en",
"createdAt": "2026-10-07T12:45:12Z",
"reviewer": "Blair",
"reviewerLocation": null,
"reviewerTenure": "12 years on Airbnb",
"hostReply": "6 mn de la Station Cité\n7 mn de la station Hôtel de ville\n4 mn du RER B\nL’appartement est au 2e étage et 4 marches.",
"hostReplyDate": "2 weeks ago",
"stayDetails": "Stayed a few nights",
"listingReviewsCount": 682,
"scrapedAt": "2026-10-28T06:41:10+00:00"
}
FieldDescription
reviewIdAirbnb review id (unique)
listingId, listingTitle, listingUrlThe reviewed listing (listingTitle is null if the listing page could not be read)
ratingOverall star rating given by the guest (1-5)
textOriginal review text, line breaks kept
translatedTextAirbnb's translation into language when the review is written in another language, else null
languageLanguage of the original text
createdAtReview date, ISO 8601 UTC
reviewerReviewer first name as displayed by Airbnb (a last name, if any, is reduced to its initial)
reviewerLocationReviewer's city / country, when Airbnb shows it
reviewerTenure"N years on Airbnb", shown by Airbnb instead of the location for some reviewers
hostReply, hostReplyDateHost's public reply (original text) and its date as worded by Airbnb ("2 weeks ago")
stayDetailsLength of stay or trip type shown with the review ("Stayed a few nights", "Stayed with kids")
listingReviewsCountTotal number of reviews of the listing
scrapedAtExtraction time

Pricing

Pay-per-event, no start fee: $3.50 per 1,000 reviews on the Apify Free plan, with lower prices on paid plans. Each review pushed to the dataset is one event.

EventFreeStarterScaleBusinessEnterprise
Review (REVIEW)$3.50$3.00$2.60$2.10$2.10

Prices in USD per 1,000 events.

Cost examples (Free plan)

ScenarioReviewsCost
Quick look at one listing10$0.035
50 reviews of 10 listings500$1.75
Full history of a popular listing700$2.45

Set a "Maximum cost per run" in the run options to cap a run: the Actor stops cleanly when it is reached.

Limitations

  • Only the reviews Airbnb publishes on the listing page are available; Airbnb does not show some old or hidden reviews, so a listing can return slightly fewer reviews than listingReviewsCount.
  • Airbnb shows only the reviewer's first name; no reviewer profile id or photo is returned.
  • The host reply date is the relative wording shown by Airbnb ("2 weeks ago", "March 2024"); Airbnb does not expose an exact reply date.
  • Category ratings (cleanliness, accuracy, location...) are only published by Airbnb as listing averages, not per review, and are not returned.
  • Listing URLs only: search pages, experiences, wishlists and host profiles are not supported.
  • The reviews endpoint is the one used by Airbnb's website; when Airbnb changes it, the run fails with an explicit message until the Actor is updated.