# Airbnb Scraper — Availability, Pricing & Listing Details (`extractify/airbnb-scraper`) Actor

The fastest Airbnb scraper on Apify. Extracts 365-day availability calendars, exact nightly pricing & full listing details via pure HTTP — no browser, no API keys needed. Under 3 seconds per listing. Built for STR investors & property managers.

- **URL**: https://apify.com/extractify/airbnb-scraper.md
- **Developed by:** [Extractify](https://apify.com/extractify) (community)
- **Categories:** Travel, Real estate, E-commerce
- **Stats:** 2 total users, 1 monthly users, 91.7% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.21 / availability calendar

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/actors/running/actors-in-store.md#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 Scraper — Availability, Pricing & Listing Details

**The fastest Airbnb scraper on Apify.** Extract 365-day availability calendars, exact nightly pricing for any date range, and complete listing details — all via pure HTTP with no browser overhead. Under 3 seconds per listing.

> No Playwright. No Puppeteer. No API keys. Just raw speed.

***

### ✨ Why This Airbnb Scraper?

Most Airbnb scrapers rely on slow, expensive headless browsers. This Actor is different:

- ⚡ **10–100x faster** than browser-based scrapers — pure HTTP engine
- 💰 **Cheaper to run** — no Playwright/Chrome memory overhead
- 🔑 **No API keys required** — credentials are captured live from Airbnb's own endpoints
- 🛡️ **Bot-bypass ready** — seamlessly integrates with Apify Residential Proxies
- 📦 **All-in-one** — availability + pricing + details in a single Actor run

***

### 🚀 Key Features

| Feature | Details |
|---|---|
| **365-Day Availability Calendar** | Full year-round calendar — exact open/blocked dates per listing |
| **Exact Nightly Pricing** | Specify check-in & check-out to get the real total price from Airbnb's GraphQL API |
| **Complete Listing Details** | Title, location, bedrooms, beds, bathrooms, amenities, rating, house rules, cancellation policy |
| **Multi-Currency Support** | USD, EUR, GBP, INR, AED and all Airbnb-supported currencies |
| **Bulk Scraping** | Pass multiple listing URLs — processed efficiently in parallel |
| **Residential Proxy Ready** | Works with Apify Residential Proxies for maximum reliability |

***

### 💳 Pay-Per-Event Pricing

You only pay for what you successfully extract:

| Event | What You Get | Price |
|---|---|---|
| `extract-availability` | Full 365-day availability calendar | **$0.30 / listing** |
| `extract-pricing` | Exact pricing for your specified dates | **$0.40 / listing** |
| `extract-details` | Full property details & amenities | **$0.20 / listing** |
| **All three combined** | Complete data package | **~$0.90 / listing** |

> Compare: Browser-based Airbnb scrapers charge $1–$5 per listing. This Actor delivers more data at a fraction of the cost.

***

### 📖 How to Use

#### Input Parameters

```json
{
  "listingUrls": [
    "https://www.airbnb.com/rooms/123456789",
    "https://www.airbnb.com/rooms/987654321"
  ],
  "checkIn": "2025-01-10",
  "checkOut": "2025-01-15",
  "guests": 2,
  "currency": "USD",
  "extractAvailability": true,
  "extractPricing": true,
  "extractDetails": true
}
```

#### Output Example

```json
{
  "listingId": "123456789",
  "title": "Cozy Studio in Downtown Manhattan",
  "location": "New York, New York, United States",
  "rating": 4.92,
  "bedrooms": 1,
  "beds": 1,
  "bathrooms": 1,
  "pricing": {
    "totalPrice": 487.50,
    "currency": "USD",
    "nights": 5,
    "breakdown": { "basePrice": 420, "cleaningFee": 45, "taxes": 22.50 }
  },
  "availability": {
    "availableDates": ["2025-01-10", "2025-01-11", "..."],
    "blockedDates": ["2025-01-20", "..."]
  }
}
```

***

### 🎯 Who Is This For?

- **STR Investors** — analyze occupancy rates and pricing trends across markets
- **Property Managers** — monitor competitor pricing and availability in real time
- **Data Scientists** — build Airbnb market intelligence datasets
- **Travel Platforms** — aggregate real-time Airbnb availability and pricing
- **Revenue Management Tools** — feed accurate pricing data into dynamic pricing engines
- **Academic Researchers** — collect short-term rental market data at scale

***

### 🛡️ Proxy Recommendations

For best results and maximum reliability, use **Apify Residential Proxies**. The Actor is pre-configured to work seamlessly with Apify's proxy infrastructure.

***

### 📬 Contact & Custom Solutions

Need a custom scraping solution, white-label integration, or enterprise support?

📧 **tnvapify@gmail.com**

***

### 🔗 Related Keywords

`airbnb scraper` · `airbnb availability checker` · `airbnb price extractor` · `airbnb data scraper` · `short term rental data` · `STR market analysis` · `airbnb calendar scraper` · `airbnb listing details` · `airbnb API alternative` · `vacation rental scraper` · `airbnb pricing tool` · `airbnb occupancy tracker`

# Actor input Schema

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

List of Airbnb room URLs to scrape (e.g. https://www.airbnb.com/rooms/123456). The listing ID is extracted automatically.

## `checkIn` (type: `string`):

Check-in date in YYYY-MM-DD format. Required when Extract Pricing is enabled.

## `checkOut` (type: `string`):

Check-out date in YYYY-MM-DD format. Required when Extract Pricing is enabled.

## `currency` (type: `string`):

Currency code for pricing (e.g. USD, EUR, INR, GBP). Overrides Airbnb's regional default.

## `guests` (type: `integer`):

Number of adult guests — affects pricing calculations.

## `extractAvailability` (type: `boolean`):

Scrape the 365-day availability calendar: available dates, check-in/out eligibility, and minimum/maximum nights.

## `extractPricing` (type: `boolean`):

Scrape the exact guest-facing price breakdown for the given check-in/check-out dates. Requires checkIn and checkOut to be set.

## `extractDetails` (type: `boolean`):

Scrape listing metadata: title, location, coordinates, bedrooms/beds/baths, rating, reviews, house rules, cancellation policy, and safety features.

## `proxyConfig` (type: `object`):

Apify proxy configuration. Residential proxies are recommended to avoid blocks.

## `apiKey` (type: `string`):

Pre-captured x-airbnb-api-key. If provided, the browser launch is skipped entirely — faster and more reliable on Apify. Get this by running 'npm run scrape' locally and copying from output/<listingId>/raw/credentials.json.

## `calendarHash` (type: `string`):

Pre-captured PdpAvailabilityCalendar persisted query hash. Copy from output/<listingId>/raw/credentials.json after a local run.

## `pdpHash` (type: `string`):

Pre-captured StaysPdpSections persisted query hash. Copy from output/<listingId>/raw/credentials.json after a local run.

## `cookieString` (type: `string`):

Full Airbnb session cookie string. Required for pricing and listing details when running without browser. Copy the cookieString field from output/<listingId>/raw/credentials.json after a local run.

## Actor input object example

```json
{
  "listingUrls": [
    "https://www.airbnb.com/rooms/1742598584981193747"
  ],
  "currency": "USD",
  "guests": 2,
  "extractAvailability": true,
  "extractPricing": true,
  "extractDetails": true,
  "proxyConfig": {
    "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 = {
    "listingUrls": [
        "https://www.airbnb.com/rooms/1742598584981193747"
    ],
    "checkIn": "",
    "checkOut": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("extractify/airbnb-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 = {
    "listingUrls": ["https://www.airbnb.com/rooms/1742598584981193747"],
    "checkIn": "",
    "checkOut": "",
}

# Run the Actor and wait for it to finish
run = client.actor("extractify/airbnb-scraper").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 '{
  "listingUrls": [
    "https://www.airbnb.com/rooms/1742598584981193747"
  ],
  "checkIn": "",
  "checkOut": ""
}' |
apify call extractify/airbnb-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/LGkXBLDarTfhgNvVj/builds/1fQNrFhCFQX6HxVOh/openapi.json
