# Airbnb Reviews Scraper - Sort, Filter & Get Every Review Fast (`mof1re/airbnb-reviews-scraper-browserless`) Actor

Extract Airbnb reviews fast, no browser slowdown. Sort by rating or recency, search reviews by keyword with two filter modes, get host replies and per-category rating breakdowns. Full reviewer and host profiles included. Clean structured data, built for speed.

- **URL**: https://apify.com/mof1re/airbnb-reviews-scraper-browserless.md
- **Developed by:** [Vladimir Efimenco](https://apify.com/mof1re) (community)
- **Categories:** SEO tools, Travel, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Airbnb Reviews Scraper | ⚡ Fast & Browserless

This Airbnb Reviews Scraper pulls every review from any Airbnb listing fast, with no browser slowing things down. You get the full review content alongside reviewer details, host replies, and listing-wide rating breakdowns, all in one clean dataset.

### ⚡ Why this Airbnb Reviews Scraper

- **Full dataset, not a summary.** Every review comes with the original text, the auto-translated text, reviewer profile info, room/stay context, and the host's reply where present. Most Airbnb review scrapers give you text and a star rating and stop there.
- **Sort and filter your way.** Pull reviews best-quality first, most-recent first, or by highest/lowest rating. Combine that with keyword search to zero in on exactly what you need instead of downloading everything and filtering afterward.
- **Two ways to search by keyword.** Let Airbnb's own search do the filtering server-side, or fetch every review and flag which ones match your keyword locally. No other Airbnb reviews scraper on the market gives you both options; most only offer one or neither.
- **Listing-wide rating breakdown included.** Per-category scores (cleanliness, accuracy, location, and more) come attached right in the dataset, no separate lookup needed.
- **Batch multiple listings in one run.** Scrape several Airbnb listings at once instead of running the actor listing by listing.
- **Proxies included, nothing to set up.** The proxy pool is built into the price.
- **Fast results.** Reviews come back quickly, without the delays a browser-based scraper adds.

### 🎯 Who uses this Airbnb Reviews Scraper

- **Property managers & hosts** monitoring guest feedback across several Airbnb listings, spotting recurring complaints before they hurt occupancy.
- **Market researchers & hospitality analysts** studying guest sentiment, seasonal trends, or how listings in a city or neighborhood stack up against each other.
- **Competitor research teams** pulling reviews from rival listings to see what guests praise or complain about, then using that to sharpen their own listing copy and amenities.
- **Lead-gen and outreach teams** identifying hosts with strong review histories worth partnering with or reaching out to.
- **Developers building review dashboards, sentiment tools, or hospitality platforms** who need clean structured review data instead of scraping Airbnb pages by hand.

### 🧾 What you get, per review

- Review content: original text, auto-translated text, rating, review date, highlight snippet
- Reviewer info: name, profile URL, avatar, location, deleted-account flag
- Host reply: reply message and reply date, if the host responded
- Room/stay context: room type booked
- Listing-wide ratings: category-by-category score breakdown, listing details (property type, location, host info, house rules)
- Keyword match: whether the search query matched this review

### 🔍 How keyword search works in this Airbnb Reviews Scraper

The `search` field takes a single query, same as what you'd type into Airbnb's own review search box.

- **`searchIsLocalFilter` unchecked (default):** the query is sent to Airbnb as a server-side filter. Only matching reviews are returned, and every one is marked `keyword_match: true`.
- **`searchIsLocalFilter` checked:** the query is *not* sent to Airbnb. Every review is still fetched and returned, but each one is checked locally against the query text, and gets a `keyword_match` flag showing whether it was found.

Use the checked option when you want the full, unfiltered review set but still want to know which reviews mention your keyword. This is useful for spotting how often a specific issue (noise, wifi, cleanliness) comes up relative to total review volume.

### 🔧 Input options

| Field | Description |
|---|---|
| `listingUrls` | One or more Airbnb listing page URLs |
| `maxResults` | Max reviews to collect per listing. Leave empty to collect all available |
| `sort` | Sort order: best quality, most recent, highest or lowest rating |
| `lang` | Language Airbnb auto-translates reviews into |
| `search` | Keyword to search for in reviews |
| `searchIsLocalFilter` | If checked, `search` tags reviews locally instead of filtering them via Airbnb |

### 📊 Data Fields

#### 📝 Review Details

| Field | Description |
|---|---|
| `listing_url` | Airbnb listing page URL this review belongs to |
| `listing_title` | Title of the listing |
| `review_id` | Unique ID of the review |
| `rating` | Reviewer's overall rating for this stay |
| `text_raw` / `text_clean` | Original review text, unformatted / with formatting cleaned up |
| `text_localized_raw` / `text_localized` | Auto-translated review text, unformatted / cleaned up |
| `text_language` | Language the review was translated into |
| `date` / `date_localized` | Raw and human-readable review date |
| `highlight` | Airbnb-generated highlight snippet, if any |
| `response_raw` / `response` | Host's reply, unformatted / cleaned up |
| `response_date` | Date of the host's reply |

#### 🛏️ Room / Stay

| Field | Description |
|---|---|
| `room_type` | Title of the room/listing type the review refers to |
| `room_listing_id` | ID of that room/listing type |

#### 👤 Reviewer

| Field | Description |
|---|---|
| `reviewer_name` | First name of the reviewer |
| `reviewer_id` | Airbnb user ID of the reviewer |
| `reviewer_profile_url` | URL of the reviewer's profile |
| `reviewer_avatar` | URL of the reviewer's avatar |
| `reviewer_location` | Reviewer's localized location |
| `reviewer_deleted` | Whether the reviewer's account is deleted |

#### 🏠 Host

| Field | Description |
|---|---|
| `host_name` | First name of the host |
| `host_id` | Airbnb user ID of the host |
| `host_profile_url` | URL of the host's profile |
| `host_avatar` | URL of the host's avatar |
| `host_deleted` | Whether the host's account is deleted |

#### ⭐ Listing & Matching

| Field | Description |
|---|---|
| `listing_data` | Full listing details: property type, location, ratings breakdown, house rules, etc. Only populated on the first review per listing, to avoid duplication |
| `search_keyword` | The search query provided in actor input, if any |
| `keyword_match` | True if the query matched this review, either verified locally or because Airbnb's own filter already applied it |

### 📋 Example output

```json
[
  {
    "listing_url": "https://www.airbnb.com/rooms/8881364",
    "listing_title": "VALLS 1 -Antique & Modernist Apt- w/Elevator now! - Apartments for Rent in Barcelona, Catalunya, Spain - Airbnb",
    "listing_data": {
      "listing_id": null,
      "title": "VALLS 1 -Antique & Modernist Apt- w/Elevator now! - Apartments for Rent in Barcelona, Catalunya, Spain - Airbnb",
      "description": "Jul 9, 2026 · Entire rental unit · VALLS 1, located on a 19th century building, is a 2015 restored and fully equipped apartment, maintaining original floor mosaic tiles (modernism st...",
      "property_type": "Entire rental unit",
      "space_type": "ENTIRE_HOME",
      "person_capacity": 4,
      "city": "Barcelona",
      "latitude": 41.37984,
      "longitude": 2.13544,
      "rating_average": 4.9,
      "rating_count": "555",
      "ratings_by_category": {
        "ACCURACY": 4.93,
        "CLEANLINESS": 4.93,
        "CHECKIN": 4.88,
        "LOCATION": 4.83,
        "COMMUNICATION": 4.91,
        "VALUE": 4.84
      },
      "host_name": "Wally",
      "host_id": null,
      "host_is_superhost": true,
      "host_years_hosting": "11 years hosting",
      "overview_title": "Entire rental unit in Barcelona, Spain",
      "overview_items": [
        "4 guests",
        "2 bedrooms",
        "3 beds",
        "2 baths"
      ],
      "is_guest_favorite": true,
      "house_rules": [
        "Check-in after 3:00 PM",
        "Checkout before 11:00 AM",
        "4 guests maximum"
      ],
      "additional_rules_text": null,
      "safety_items": [
        "Carbon monoxide alarm not reported",
        "Smoke alarm not reported",
        "Not suitable for infants (under 2 years)"
      ],
      "cancellation_policy_title": "Cancellation policy",
      "main_image": "https://a0.muscache.com/im/pictures/98ac503a-996e-4c80-b66b-0a5a3045b9da.jpg",
      "canonical_url": "https://www.airbnb.com/rooms/8881364"
    },
    "review_id": "1711553542847523261",
    "rating": 5,
    "language": "en",
    "text_raw": "Easy access to grocery stores, fruit markets, train station and hop on hop off bus stop orange line. Wally greeted us and went through the apartment. It was very nice having an elevator. The apartment was very clean.",
    "text_clean": "Easy access to grocery stores, fruit markets, train station and hop on hop off bus stop orange line. Wally greeted us and went through the apartment. It was very nice having an elevator. The apartment was very clean.",
    "text_localized_raw": "Easy access to grocery stores, fruit markets, train station and hop on hop off bus stop orange line. Wally greeted us and went through the apartment. It was very nice having an elevator. The apartment was very clean.",
    "text_localized": "Easy access to grocery stores, fruit markets, train station and hop on hop off bus stop orange line. Wally greeted us and went through the apartment. It was very nice having an elevator. The apartment was very clean.",
    "text_language": "en",
    "text_disclaimer": null,
    "date": "2026-06-19T11:51:21Z",
    "date_localized": "2 weeks ago",
    "highlight": null,
    "response_raw": null,
    "response": null,
    "response_date": null,
    "room_type": null,
    "room_listing_id": null,
    "reviewer_name": "Lynne",
    "reviewer_id": "305781228",
    "reviewer_profile_url": "https://airbnb.com/users/profile/1495007206638464448",
    "reviewer_avatar": "https://a0.muscache.com/im/pictures/user/User/original/7097c2e8-eff4-4e17-9455-5e8f50016168.jpeg",
    "reviewer_location": null,
    "reviewer_deleted": false,
    "host_name": "Wally",
    "host_id": "46159733",
    "host_profile_url": "https://airbnb.com/users/profile/1465690109182236649",
    "host_avatar": "https://a0.muscache.com/im/pictures/user/User-46159733/original/83463c70-a136-46a3-8dac-08346d03f5e7.jpeg",
    "host_deleted": false,
    "search_keyword": "",
    "keyword_match": false
  },
  {
    "listing_url": "https://www.airbnb.com/rooms/8881364",
    "listing_title": "VALLS 1 -Antique & Modernist Apt- w/Elevator now! - Apartments for Rent in Barcelona, Catalunya, Spain - Airbnb",
    "listing_data": {
      "note": "to avoid duplication hotel data available on first result row"
    },
    "review_id": "1705827050805829484",
    "rating": 5,
    "language": "en",
    "text_raw": "This is a great location and a great space. Within less than a minute’s walk…bread store, coffee place, nutrition store (sold some vegan products), wine store, and small supermarket. The train (metro) was extremely close…so helpful. Overall just a great place. Highly recommend!",
    "text_clean": "This is a great location and a great space. Within less than a minute’s walk…bread store, coffee place, nutrition store (sold some vegan products), wine store, and small supermarket. The train (metro) was extremely close…so helpful. Overall just a great place. Highly recommend!",
    "text_localized_raw": "This is a great location and a great space. Within less than a minute’s walk…bread store, coffee place, nutrition store (sold some vegan products), wine store, and small supermarket. The train (metro) was extremely close…so helpful. Overall just a great place. Highly recommend!",
    "text_localized": "This is a great location and a great space. Within less than a minute’s walk…bread store, coffee place, nutrition store (sold some vegan products), wine store, and small supermarket. The train (metro) was extremely close…so helpful. Overall just a great place. Highly recommend!",
    "text_language": "en",
    "text_disclaimer": null,
    "date": "2026-06-11T14:13:50Z",
    "date_localized": "4 weeks ago",
    "highlight": null,
    "response_raw": null,
    "response": null,
    "response_date": null,
    "room_type": null,
    "room_listing_id": null,
    "reviewer_name": "Christine",
    "reviewer_id": "442651333",
    "reviewer_profile_url": "https://airbnb.com/users/profile/1484215888234177043",
    "reviewer_avatar": "https://a0.muscache.com/im/pictures/user/User/original/bfb01bbe-3bd6-462a-bfe9-e07f4f78140e.jpeg",
    "reviewer_location": null,
    "reviewer_deleted": false,
    "host_name": "Wally",
    "host_id": "46159733",
    "host_profile_url": "https://airbnb.com/users/profile/1465690109182236649",
    "host_avatar": "https://a0.muscache.com/im/pictures/user/User-46159733/original/83463c70-a136-46a3-8dac-08346d03f5e7.jpeg",
    "host_deleted": false,
    "search_keyword": "",
    "keyword_match": false
  },
  {
    "listing_url": "https://www.airbnb.com/rooms/8881364",
    "listing_title": "VALLS 1 -Antique & Modernist Apt- w/Elevator now! - Apartments for Rent in Barcelona, Catalunya, Spain - Airbnb",
    "listing_data": {
      "note": "to avoid duplication hotel data available on first result row"
    },
    "review_id": "1704386533720741653",
    "rating": 5,
    "language": "en",
    "text_raw": "We loved our stay here, we felt like we were nicely away from the hustle and bustle yet still very close to transportation and the private back patio is a rare find! Thank you Wally",
    "text_clean": "We loved our stay here, we felt like we were nicely away from the hustle and bustle yet still very close to transportation and the private back patio is a rare find! Thank you Wally",
    "text_localized_raw": "We loved our stay here, we felt like we were nicely away from the hustle and bustle yet still very close to transportation and the private back patio is a rare find! Thank you Wally",
    "text_localized": "We loved our stay here, we felt like we were nicely away from the hustle and bustle yet still very close to transportation and the private back patio is a rare find! Thank you Wally",
    "text_language": "en",
    "text_disclaimer": null,
    "date": "2026-06-09T14:31:47Z",
    "date_localized": "June 2026",
    "highlight": "Stayed with kids",
    "response_raw": null,
    "response": null,
    "response_date": null,
    "room_type": null,
    "room_listing_id": null,
    "reviewer_name": "Laura",
    "reviewer_id": "179198774",
    "reviewer_profile_url": "https://airbnb.com/users/profile/1473996270761019428",
    "reviewer_avatar": "https://a0.muscache.com/im/pictures/user/a0d023c0-ce46-46c7-b441-ad18bac18361.jpg",
    "reviewer_location": null,
    "reviewer_deleted": false,
    "host_name": "Wally",
    "host_id": "46159733",
    "host_profile_url": "https://airbnb.com/users/profile/1465690109182236649",
    "host_avatar": "https://a0.muscache.com/im/pictures/user/User-46159733/original/83463c70-a136-46a3-8dac-08346d03f5e7.jpeg",
    "host_deleted": false,
    "search_keyword": "",
    "keyword_match": false
  }
]
```

### ❓ FAQ

**How is this different from other Airbnb reviews scrapers?** Most only return review text and a star rating. This one adds sorting, dual-mode keyword search, host replies, and per-category rating breakdowns in the same run.

**Can I search reviews by keyword without missing any reviews?** Yes. Check `searchIsLocalFilter` and every review still comes back, each one flagged with `keyword_match` so you can see which ones mention your term without losing the rest of the dataset.

**Do I need my own proxies?** No. Proxies are built into the actor, nothing to configure.

**How fresh is the data?** This actor queries live at run time, so you get the current state of the listing's reviews, not a cached snapshot.

### 💳 Pricing

Pay-per-result. You're charged for reviews actually delivered, not for pages fetched or requests made.

### ⚠️ Notes

- Free-tier accounts are capped at a small sample size per run, and to a single listing per run. Upgrade to a paid Apify plan for full volume and batch scraping.
- Data reflects what's publicly listed on airbnb.com at the time of the run; the source updates continuously.

### 🔗 See also

Need review data from another platform? Check out:

- [Booking Reviews Scraper](https://apify.com/mof1re/booking-reviews-scraper-browserless)
- [Arbeitsagentur Scraper, German jobs source](https://apify.com/mof1re/arbeitsagentur-scraper)
- [TripAdvisor Reviews Scraper](https://apify.com/mof1re/tripadvisor-reviews-scraper-browserless)
- [Trustpilot reviews scraper, Beast Mode Available now](https://apify.com/mof1re/trustpilot-scraper-fast-browserlessapif)

# Actor input Schema

## `listingUrls` (type: `array`):

Airbnb listing page URLs to scrape reviews from.

## `maxResults` (type: `integer`):

How many reviews to collect per listing. Leave empty to get all (free-tier is capped at 150).

## `lang` (type: `string`):

Language Airbnb will auto-translate reviews into.

## `sort` (type: `string`):

Order in which reviews are fetched.

## `search` (type: `string`):

Keyword to search for in reviews.

## `searchIsLocalFilter` (type: `boolean`):

If checked, the query is NOT sent to Airbnb as a search filter — every review is still fetched and returned, but each one is checked locally and gets keyword\_match / matched\_keywords flags showing whether/where the query was found. If unchecked, the query is used as Airbnb's own search filter, so only matching reviews are returned.

## Actor input object example

```json
{
  "listingUrls": [
    {
      "url": "https://www.airbnb.com/rooms/8881364"
    }
  ],
  "lang": "en",
  "sort": "BEST_QUALITY",
  "searchIsLocalFilter": false
}
```

# Actor output Schema

## `jobAds` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "listingUrls": [
        {
            "url": "https://www.airbnb.com/rooms/8881364"
        }
    ],
    "search": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("mof1re/airbnb-reviews-scraper-browserless").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "listingUrls": [{ "url": "https://www.airbnb.com/rooms/8881364" }],
    "search": "",
}

# Run the Actor and wait for it to finish
run = client.actor("mof1re/airbnb-reviews-scraper-browserless").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "listingUrls": [
    {
      "url": "https://www.airbnb.com/rooms/8881364"
    }
  ],
  "search": ""
}' |
apify call mof1re/airbnb-reviews-scraper-browserless --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=mof1re/airbnb-reviews-scraper-browserless",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Crd2mhGiD8CBZtQBb/builds/QeTb4L6GhuOMyr9E4/openapi.json
