# Airbnb Properties Listing Extractor (`getdataforme/airbnb-properties-listing-extractor`) Actor

Extract Airbnb listing property data for any destination, including titles, ratings, prices, images, badges, and coordinates. Supports custom dates, guest counts, and Apify residential proxies.

- **URL**: https://apify.com/getdataforme/airbnb-properties-listing-extractor.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** Real estate
- **Stats:** 26 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.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.

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 Listing Properties Actor

The Airbnb Listing Properties Actor is a powerful web scraping tool that extracts Airbnb property listings based on your search criteria. It collects structured information such as property IDs, listing URLs, titles, ratings, prices, badges, images, and geographical coordinates, making it ideal for market research, travel applications, price monitoring, and data analysis.

### Features

- **Comprehensive Data Extraction**: Extracts property IDs, listing URLs, titles, subtitles, names, ratings, prices, badges, images, and geographical coordinates.
- **Flexible Search Parameters**: Search Airbnb listings using custom locations, check-in/check-out dates, and guest counts.
- **Structured Output**: Returns clean, structured JSON data that is easy to integrate into databases, APIs, or analytics workflows.
- **Proxy Support**: Supports Apify Residential Proxies for reliable and uninterrupted scraping.
- **Fast & Scalable**: Efficiently extracts thousands of listings while maintaining high performance.
- **User-Friendly Configuration**: Simple input schema with sensible defaults for quick setup.
- **Reliable Results**: Handles optional fields gracefully by returning `null` or empty arrays where appropriate.

### Input Parameters

| Parameter | Type | Required | Description | Example |
|-----------|------|----------|-------------|---------|
| Location | string | No | Location to search for Airbnb listings. | `"Pokhara Lakeside"` |
| CheckinDate | string | No | Check-in date in `YYYY-MM-DD` format or relative date (e.g. `"5 days"`). | `"2025-10-10"` |
| CheckoutDate | string | No | Check-out date in `YYYY-MM-DD` format or relative date. | `"2025-10-16"` |
| Adults | integer | No | Number of adult guests. | `2` |
| Children | integer | No | Number of child guests. | `1` |
| Infants | integer | No | Number of infant guests. | `0` |
| proxyConfiguration | object | No | Apify proxy configuration. Residential proxies are recommended. | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` |

### Example Usage

Run the actor with the following input:

```json
{
  "Location": "Pokhara Lakeside",
  "CheckinDate": "2025-10-10",
  "CheckoutDate": "2025-10-16",
  "Adults": 2,
  "Children": 1,
  "Infants": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

### Example Output

```json
[
  {
    "property_id": "25321718",
    "url": "https://www.airbnb.com/rooms/25321718",
    "title": "Loft in Kathmandu",
    "name": "Large attic sunny loft in Kathmandu near Thamel",
    "avg_rating": "4.95 (139)",
    "price": "$295",
    "price_label": "$295 for 8 nights",
    "badges": [
      "Guest favorite"
    ],
    "location": {
      "latitude": 27.7202,
      "longitude": 85.313
    }
  }
]
```

### Output Format

Each record represents a single Airbnb listing.

| Field | Description |
|-------|-------------|
| `property_id` | Unique Airbnb property identifier. |
| `url` | Direct URL to the Airbnb property listing. |
| `title` | Property type (Apartment, Home, Room, Hotel, Loft, etc.). |
| `subtitle` | Additional property description, when available. |
| `name` | Property listing name. |
| `avg_rating` | Average rating with review count or `"New"` for newly listed properties. |
| `avg_rating_label` | Accessibility-friendly rating description. |
| `price` | Displayed property price, when available. |
| `price_label` | Full pricing information including total cost, duration, or discounts. |
| `badges` | Property badges such as `"Superhost"` or `"Guest favorite"`. |
| `pictures` | Array of property image URLs. |
| `distance` | Displayed stay dates or distance information, when available. |
| `location.latitude` | Property latitude. |
| `location.longitude` | Property longitude. |
| `input_source_key` | Identifier of the input source that generated the record. |

Some fields may be unavailable for certain listings and will be returned as `null` or empty arrays.

### Use Cases

- **Market Research** – Analyze Airbnb pricing and listing trends across different locations.
- **Price Monitoring** – Track nightly rates and pricing changes over time.
- **Competitive Analysis** – Monitor competing Airbnb listings and property performance.
- **Travel Applications** – Build travel search, recommendation, or accommodation platforms.
- **Data Analytics** – Collect structured Airbnb data for dashboards, reports, and business intelligence.
- **Academic Research** – Study tourism, hospitality, and short-term rental markets.

### Installation & Usage

1. Search for **Airbnb Listing Properties Actor** in the Apify Store.
2. Click **Try for free** or **Run**.
3. Configure your search parameters.
4. Start the actor.
5. Monitor execution in the Apify Console.
6. Export results in JSON, CSV, Excel, XML, or other supported formats.

### Support

For custom features, additional output fields, or bug reports, please contact us:

- **Email:** support@getdataforme.com
- **Subject:** Custom Support
- **Contact Form:** https://getdataforme.com/contact/

We're always happy to help improve the actor and add new features based on your requirements.

# Actor input Schema

## `Location` (type: `string`):

The location for the spider.

## `CheckinDate` (type: `string`):

The checkin date for the spider.

## `CheckoutDate` (type: `string`):

The checkout date for the spider.

## `Adults` (type: `integer`):

This is the number of adults for your query

## `Children` (type: `integer`):

This is the number of children for your query

## `Infants` (type: `integer`):

This is the number of infants for your query

## `itemLimit` (type: `integer`):

Specifies the maximum number of items to process.

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

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "Location": "Pokhara Lakeside",
  "CheckinDate": "2025-10-10",
  "CheckoutDate": "2025-10-16",
  "itemLimit": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "itemLimit": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/airbnb-properties-listing-extractor").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 = {
    "itemLimit": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/airbnb-properties-listing-extractor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "itemLimit": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call getdataforme/airbnb-properties-listing-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getdataforme/airbnb-properties-listing-extractor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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