# Airbnb Reviews Scraper (`ahmed_hrid/airbnb-reviews-scraper`) Actor

Extract comprehensive guest reviews from Airbnb properties including detailed ratings, comments, traveler profiles, and host responses. Perfect for reputation monitoring, competitive analysis, and guest satisfaction tracking in the short-term rental industry.

- **URL**: https://apify.com/ahmed\_hrid/airbnb-reviews-scraper.md
- **Developed by:** [Ahmed hrid](https://apify.com/ahmed_hrid) (community)
- **Categories:** Real estate, Travel, Integrations
- **Stats:** 5 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 review scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

Extract comprehensive guest reviews from Airbnb.com including detailed ratings, comments, traveler profiles, and host responses. Perfect for reputation analysis, hospitality market research, and competitive intelligence in the short-term rental industry.

### What is Airbnb Reviews Scraper?

Airbnb Reviews Scraper is a powerful tool that extracts guest reviews from Airbnb.com, the world's leading accommodation platform with millions of authentic reviews. Get structured data including overall scores, category ratings (cleanliness, communication, location), detailed guest comments, and host responses. Ideal for **property managers, rental agencies, market analysts, and hosts** looking to analyze guest satisfaction and improve performance.

**Key advantages of using this Actor on Apify:**

- ⏰ **Scheduling** - Automatic daily or weekly review extraction
- 🔄 **API access** - Integrate reviews into your analytics tools
- 🌐 **Residential proxies** - Reliable scraping without detection
- 📊 **Multiple export formats** - JSON, CSV, Excel, XML
- 🔗 **Integrations** - Connect with Zapier, Make, webhooks
- 📈 **Real-time monitoring** - Track new reviews as they arrive
- ⭐ **Detailed analysis** - Category ratings and trends
- 💬 **Host engagement** - Monitor host response rates

### What can Airbnb Reviews Scraper do?

This Actor provides powerful features for extracting Airbnb reviews:

✅ **Extract by URL** - Scrape any Airbnb property via its listing URL
✅ **Complete reviews** - Full text, ratings, publication dates
✅ **Guest profiles** - Names, photos, superhost status
✅ **Detailed ratings** - Category-specific scores (location, cleanliness, etc.)
✅ **Host responses** - Comments and interactions from property owners
✅ **Date filtering** - Collect only recent reviews
✅ **Customizable limits** - Control number of reviews per property
✅ **Multilingual data** - Reviews in French, English, and other languages
✅ **Bulk extraction** - Up to 10,000 reviews per run
✅ **Rich metadata** - Overall score, total review count, distribution

### What data can Airbnb Reviews Scraper extract?

| Field | Description | Example |
|-------|-------------|---------|
| **Property Name** | Listing title | "Studio Residence Mountain View" |
| **Overall Score** | Average rating | 4.92/5 |
| **Total Reviews** | Review count | 48 reviews |
| **Airbnb URL** | Property link | Full URL |
| **Category Ratings** | Detailed scores | Hospitality: 30, Location: 24, etc. |
| **Review ID** | Unique identifier | "1621075446914143951" |
| **Review Title** | Comment headline | "Great stay for a few nights" |
| **Review Text** | Full comment | Complete guest feedback |
| **Rating** | Star rating | 5/5 stars |
| **Created Date** | Publication date | "2026-02-14T15:47:32+00:00" |
| **Reviewer Photo** | Profile avatar | Photo URL |
| **Superhost Status** | If superhost | true/false |
| **Host Response** | Owner's reply | Response text or null |
| **Host Name** | Property owner | "John" |
| **Host Photo** | Owner avatar | Photo URL |
| **Review Language** | Comment language | "en", "fr", "es" |
| **Review Photos** | Attached images | Array of URLs |

### How to scrape Airbnb reviews

Using Airbnb Reviews Scraper is simple:

1. **Open Airbnb Reviews Scraper** in Apify Console
2. **Add Airbnb URLs** - Paste property listing links
3. **Configure options** (optional):
   - Maximum number of reviews per property (default: 100)
   - Stop date to limit collection
   - Residential proxies (recommended)
4. **Click Start** and wait for results
5. **Download your data** in JSON, CSV, or Excel

**Airbnb URL format:**

```
https://www.airbnb.com/rooms/XXXXXXXX
https://www.airbnb.fr/rooms/XXXXXXXX
```

**Example URLs:**

- https://www.airbnb.com/rooms/12345678
- https://www.airbnb.fr/rooms/87654321

**Integrate with webhooks**

Automate your reputation monitoring by setting up webhooks that trigger when scraping completes. Send new reviews to your reputation management tools, analytics dashboards, or alert systems. Perfect for monitoring guest satisfaction in real-time.

### How much will it cost to scrape Airbnb reviews?

Airbnb Reviews Scraper uses transparent pay-per-event pricing:

**💰 Event-based pricing:**

- **listings** scraped ($0.005 per listing)
- **$1 per 1,000 reviews** extracted ($0.001 per review)

**What you pay for:**

- ✅ Only successfully extracted data
- ✅ No monthly subscription
- ✅ Granular and predictable pricing
- ✅ All data fields included
- ✅ Full API access and webhooks
- ✅ Scheduling and monitoring
- ✅ All export formats (JSON, CSV, Excel, XML)
- ✅ Residential proxies included

**Cost examples:**

**Scenario 1: Analyze 10 properties with 50 reviews each**

- 10 listings × $0.005 = $0.05
- 500 reviews × $0.002 = $1.00
- **Total: $1.05**

**Scenario 2: Analyze 1 property with 1,000 reviews**

- 1 listing × $0.005 = $0.005
- 1,000 reviews × $0.002 = $2.00
- **Total: $2.005**

**Scenario 3: Analyze 100 properties with 100 reviews each**

- 100 listings × $0.005 = $0.50
- 10,000 reviews × $0.002 = $20.00
- **Total: $20.50**

**Perfect for:**

- 🏠 Property managers monitoring reputation
- 🏢 Short-term rental agencies analyzing competition
- 📊 Market analysts studying hospitality trends
- 💼 Consultants optimizing Airbnb performance
- 📈 Hosts maximizing ratings and revenue
- 🌍 Real estate investors evaluating markets

With Apify's free tier ($5/month credit), you can extract up to 1,000 listings OR 2,500 reviews completely free every month!

### Input

Airbnb Reviews Scraper accepts the following parameters. Click on the **Input** tab for configuration.

**Required field:**

- **Start URLs** - List of Airbnb property URLs to analyze

**Optional fields:**

- **Max Number of Reviews** - Limit per property (default: 100, min: 1)
- **Stop Date** - Stop collecting reviews older than this date (ISO format: 2026-01-01)
- **Proxy Configuration** - Residential proxies (recommended)

**URL tips:**

- Use complete URLs: https://www.airbnb.com/rooms/XXXXXXXX
- Test with 1-2 URLs first before bulk scraping
- Both .com and .fr URLs work
- You can mix URLs from different countries

### Output

Airbnb Reviews Scraper returns structured data downloadable as JSON, CSV, Excel, or XML.

**Example output:**

```json
{
  "entity": {
    "score": 4.92,
    "businessName": "Mountain View Studio Residence",
    "totalNumberOfReviews": 48,
    "ratings": [
      {
        "count": 30,
        "name": "Hospitality",
        "icon": "https://..."
      },
      {
        "count": 24,
        "name": "Location",
        "icon": "https://..."
      }
    ],
    "businessUrl": "https://www.airbnb.com/rooms/12345678"
  },
  "reviews": [
    {
      "reviewId": "1621075446914143951",
      "title": "Great stay",
      "text": "Everything was perfect, highly recommend!",
      "rating": 5,
      "createdAt": "2026-02-14T15:47:32+00:00",
      "reviewer": {
        "name": "Sarah",
        "id": "43860269",
        "pictureUrl": "https://...",
        "isSuperhost": false
      },
      "response": "Thank you for your stay!",
      "reviewee": {
        "name": "John",
        "id": "106171829",
        "pictureUrl": "https://...",
        "isSuperhost": false
      },
      "language": "en"
    }
  ]
}
```

The dataset is clean, structured, and ready for analysis in Excel, Tableau, Power BI, or any analytics tool.

### Use cases for Airbnb review data

#### Reputation Management

- **Review monitoring** - Track new guest comments in real-time
- **Satisfaction analysis** - Identify strengths and weaknesses
- **Temporal trends** - Monitor rating evolution over time
- **Negative alerts** - React quickly to unfavorable reviews

#### Competitive Intelligence

- **Competitor benchmarking** - Compare your ratings with competition
- **Review analysis** - Discover what guests appreciate elsewhere
- **Gap analysis** - Identify missing amenities or services
- **Market positioning** - Evaluate your standing vs competitors

#### Performance Optimization

- **Continuous improvement** - Identify areas for enhancement
- **Staff training** - Base training on guest feedback
- **Renovation prioritization** - Invest based on guest expectations
- **ROI measurement** - Measure impact of improvements

#### Market Research

- **Seasonal trends** - Analyze satisfaction by period
- **Guest profiles** - Understand your clientele
- **Pricing strategy** - Optimize rates based on satisfaction
- **Geographic expansion** - Study new markets

#### Marketing & Communication

- **Customer testimonials** - Use best reviews in marketing
- **Review responses** - Engage with your guests
- **Content marketing** - Create content based on feedback
- **Social proof** - Highlight your strengths

#### Data Science & Analytics

- **Sentiment analysis** - Analyze comment sentiment
- **Topic modeling** - Identify recurring themes
- **Rating prediction** - Model future evolution
- **Interactive dashboards** - Create visualization tools

### Tips for best results

**Optimize your extractions:**

- 🎯 Start with a small number of reviews to test (50-100)
- 📍 Use stop date to collect only recent reviews
- 🔄 Schedule weekly extractions for continuous monitoring
- 📊 Export to CSV for quick analysis in Excel

**Maximize data quality:**

- ✅ Verify URLs are correct before starting
- 📱 Use residential proxies to avoid blocks
- 🌐 Test with 1-2 URLs first
- ⭐ Note total review count before extraction
- 🗺️ Collect regularly to track trends

**Save with event-based pricing:**

- Limit number of reviews if only recent ones matter
- Use stop date to avoid extracting full history
- Schedule targeted extractions rather than massive scrapes
- Test with few URLs before large-scale scraping

### Troubleshooting

**No reviews extracted?**

- ✅ Verify Airbnb URL is correct and accessible
- ✅ Ensure property has published reviews
- ✅ Test URL directly in your browser
- ✅ Check stop date isn't too restrictive

**Fewer reviews than expected?**

- Increase max reviews limit (default: 100)
- Remove or adjust stop date
- Some properties have fewer reviews than initial count
- Very old reviews may no longer be accessible

**Missing data fields?**

- Not all guests fill all fields
- Host responses are optional (may be null)
- Review photos are rare
- Some category ratings vary by property type

**URL format errors?**

- Use complete format: https://www.airbnb.com/rooms/XXXXXXXX
- Both .com and .fr URLs work
- Remove extra parameters (?adults=2, etc.)
- Copy URL from browser address bar

**Slow extraction?**

- Normal for properties with 500+ reviews
- Residential proxies improve speed
- Split into multiple runs if needed
- Peak hours may slow scraping

**Duplicate data?**

- Check you haven't listed same URL multiple times
- Use unique reviewId to deduplicate
- Filter by date when importing to tools

**Need help?**

- 💬 Use **Issues** tab to report bugs
- 📧 Contact the developer at <me@ahmedhrid.com> for custom solutions
- 🎓 Check [Apify Academy](https://docs.apify.com/academy)
- 👥 Join [Apify Discord](https://discord.com/invite/jyEM2PRvMU)

### API access and integrations

Airbnb Reviews Scraper provides full API access:

#### REST API

```bash
curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [
      { "url": "https://www.airbnb.com/rooms/12345678" }
    ],
    "maxNumberOfReviews": 100,
    "targetDate": "2025-01-01"
  }'
```

#### JavaScript/Node.js

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const input = {
  startUrls: [
    { url: "https://www.airbnb.com/rooms/12345678" }
  ],
  maxNumberOfReviews: 200
};

const run = await client.actor("YOUR_ACTOR_ID").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

// Calculate average rating
const avgRating = items[0].reviews.reduce((sum, r) => sum + r.rating, 0) / items[0].reviews.length;
console.log(`Average rating: ${avgRating.toFixed(2)}/5`);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')
run_input = {
    "startUrls": [
        { "url": "https://www.airbnb.com/rooms/12345678" }
    ],
    "maxNumberOfReviews": 100
}

run = client.actor("YOUR_ACTOR_ID").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items

## Analyze sentiment
for item in items:
    positive = sum(1 for r in item['reviews'] if r['rating'] >= 4)
    print(f"Positive reviews: {positive}/{len(item['reviews'])}")
```

### Frequently Asked Questions

#### How many URLs can I analyze at once?

No technical limit. However, start with 10-20 URLs to test before massive scraping.

#### Are reviews extracted in real-time?

Yes, data is extracted live from Airbnb at runtime.

#### Can I get reviews from a specific host?

Yes, add all their property URLs to startUrls.

#### How to track only new reviews?

Use `targetDate` with your last extraction date to collect only new reviews.

#### Are host responses included?

Yes, when hosts have replied, the `response` field contains their answer.

#### Are review photos extracted?

Yes, if present, they're in the `reviewMediaItems` field.

#### What's the language of reviews?

The `language` field indicates language (en, fr, es, etc.). Airbnb shows all reviews regardless of language.

#### Can I analyze competitors?

Yes, add their Airbnb URLs to startUrls for comparison.

#### How to schedule weekly extraction?

Use the **Schedule** tab in Apify Console - configure automatic weekly runs.

#### Can I export to Excel?

Yes, download as CSV or XLSX directly from Apify.

***

**Built for short-term rental professionals 🏠**

Questions? Suggestions? Use the **Issues** tab or leave a review!

**Try Airbnb Reviews Scraper today** and transform guest reviews into actionable insights.

# Actor input Schema

## `startUrls` (type: `array`):

List of Airbnb.com hotel page URLs to scrape.

## `maxNumberOfReviews` (type: `integer`):

Maximum number of reviews to collect per hotel. Leave empty to collect all.

## `targetDate` (type: `string`):

Stop collecting reviews older than this date (ISO format, e.g. 2026-01-01). Leave empty to disable.

## `proxyConfiguration` (type: `object`):

Proxy servers used by the scraper to hide its origin. <strong>Recommended for reliable scraping</strong> to avoid rate limiting and blocking.<br><br>Select 'Apify Proxy (automatic)' for best results.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.airbnb.fr/rooms/50569271"
    }
  ],
  "maxNumberOfReviews": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.airbnb.fr/rooms/50569271"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "FR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_hrid/airbnb-reviews-scraper").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 = {
    "startUrls": [{ "url": "https://www.airbnb.fr/rooms/50569271" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "FR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_hrid/airbnb-reviews-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.airbnb.fr/rooms/50569271"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}' |
apify call ahmed_hrid/airbnb-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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