# Airbnb Scraper – Listings, Prices, Reviews & Calendar (`smoldesk/airbnb-scraper`) Actor

Scrape Airbnb without login: search any city with your dates and get every listing with its price for your stay, full details (amenities, host, house rules, ratings, photos), guest reviews and the 12-month availability calendar. Listing URLs work too.

- **URL**: https://apify.com/smoldesk/airbnb-scraper.md
- **Developed by:** [Smoldesk Studios](https://apify.com/smoldesk) (community)
- **Categories:** Travel, Real estate, AI
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 listings

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Airbnb Scraper – Listings, Prices, Reviews & Calendar

![Airbnb Scraper: listings, prices for your dates, reviews and availability calendar](https://raw.githubusercontent.com/smoldesk/apify-scrapers/main/assets/airbnb/banner.webp)

Scrape **Airbnb** for any city, neighborhood or country, or for a list of listing URLs. Each listing comes with the **price for your dates** (total, per night, discounts, cleaning and resort fees), **rating, review count, coordinates and photos**. **Full details** are on by default: description, **every amenity**, house rules, safety info, sleeping arrangements, **host profile** (superhost, years hosting, response rate and time), **six category ratings**, the star distribution and every photo with its room. Switch on **guest reviews** (full text, English translation, host response) and the **12-month availability calendar** (open and booked nights, minimum stay, booked share) when you need them. No login, no browser, no API key.

### What you can use it for

- **Short-term rental investors**: compare nightly prices, ratings and booked share for every listing in an area before you buy.
- **Hosts and property managers**: watch competitors' prices for the same dates, their amenities, house rules and reviews.
- **Travel and price comparison sites**: real stay prices for given dates and guest counts, in 20 currencies.
- **Market research**: how many listings, which property types, how many superhosts, typical capacity per area.
- **Review analysis and AI**: thousands of guest reviews with translations, ready for sentiment analysis or an LLM.
- **Occupancy estimates**: the availability calendar shows which nights are already blocked for the next 12 months.

### How to scrape Airbnb

1. Create a free [Apify account](https://console.apify.com/sign-up) and open this Actor.
2. In **Where**, type one or more places the way you'd search on Airbnb (`Lisbon`, `Austin, TX`, `Bali, Indonesia`). Or paste **Airbnb URLs**: listing URLs (`airbnb.com/rooms/…`) or a search URL copied from Airbnb with your filters.
3. Set **Check-in** and **Check-out** and the number of guests to get the real price for that stay.
4. Optional: filters (type of place, price per night, bedrooms, beds, bathrooms), **Guest reviews**, **Availability calendar**.
5. Set **Max listings per search** and click **Start**. Download the results as CSV, Excel or JSON, or read them through the API.
6. To track prices or availability, save the input as a task and schedule it daily or weekly.

![Step 1: type a place and your dates](https://raw.githubusercontent.com/smoldesk/apify-scrapers/main/assets/airbnb/how-to-1.webp)

![Step 2: choose reviews and calendar](https://raw.githubusercontent.com/smoldesk/apify-scrapers/main/assets/airbnb/how-to-2.webp)

![Step 3: download listings, reviews and calendars](https://raw.githubusercontent.com/smoldesk/apify-scrapers/main/assets/airbnb/how-to-3.webp)

**Tips**

- Airbnb shows up to about **270 listings per search**. For a whole city, search its neighborhoods one by one, or split by price (e.g. 0–100, 100–200, 200+) using the price filters.
- Without dates, Airbnb picks a stay length itself (often 5 nights) for the price. Set dates for exact prices.
- Listings found by more than one search are saved (and charged) once.

### Output

Results go to one dataset with a `type` on every row: `listing`, `review` or `calendar`. The **Listings**, **Listing details**, **Reviews** and **Availability calendar** tabs show each kind as a table.

A listing (shortened):

```json
{
  "type": "listing",
  "id": "736570764306678404",
  "url": "https://www.airbnb.com/rooms/736570764306678404",
  "name": "Modern chic homely central one bedroom apartment",
  "title": "Entire rental unit in Greater London, United Kingdom",
  "city": "Greater London",
  "latitude": 51.51999,
  "longitude": -0.13538,
  "price": {
    "total": 1137,
    "originalTotal": 1383,
    "perNight": 345.53,
    "nights": 4,
    "currency": "USD",
    "label": "$1,137 for 4 nights, originally $1,383",
    "breakdown": [
      {"label": "4 nights x $345.53", "amount": 1382.13},
      {"label": "Special offer", "amount": -245.72},
      {"label": "Price after discount", "amount": 1136.41}
    ]
  },
  "rating": 4.8,
  "reviewsCount": 41,
  "isSuperhost": true,
  "isGuestFavorite": true,
  "propertyType": "Entire rental unit",
  "personCapacity": 2,
  "bedrooms": 1,
  "beds": 1,
  "bathrooms": 1,
  "ratings": {"cleanliness": 4.8, "accuracy": 4.9, "checkIn": 5, "communication": 5, "location": 5, "value": 4.7},
  "amenities": ["Hair dryer", "Cleaning products", "Body soap", "Hot water", "Wifi", "Kitchen", "…"],
  "houseRules": ["Up to 2 overnight guests", "No pets", "No smoking", "No parties or events"],
  "host": {
    "name": "Lisa",
    "isSuperhost": true,
    "rating": 4.85,
    "yearsHosting": 4,
    "responseRate": "100%",
    "responseTime": "Responds within an hour"
  },
  "photos": [{"url": "https://a0.muscache.com/im/pictures/73d66f6b-698a-457d-9983-b49cf1de9c13.jpg", "caption": null, "room": "Living room"}],
  "description": "Enjoy a stylish experience at this centrally-located place. Modern, elegant, newly renovated one bedroom apartment in the heart of Fitzrovia…",
  "checkIn": "2026-12-10",
  "checkOut": "2026-12-14",
  "searchQuery": "London"
}
```

Also in every listing with full details: `markdown` (description ready for an LLM), `descriptionHtml`, `highlights`, `amenityGroups` (all amenities by group, including what's *not* included), `sleepingArrangements`, `houseRulesGroups`, `safetyAndProperty`, `petsAllowed`, `ratingDistribution`, `locationSummary`, `isExactLocation`, `host.cohosts`, `host.profileUrl`. Listing URLs with dates also get `isAvailableForDates`, `canInstantBook` and `cancellationPolicy`.

A review:

```json
{
  "type": "review",
  "listingId": "736570764306678404",
  "rating": 5,
  "createdAt": "2026-10-27T08:07:20Z",
  "language": "en",
  "text": "Great stay at Lisa’s in Fitzrovia. Excellent location—in the center of everything yet still quiet in the evenings…",
  "textTranslated": null,
  "stayDetail": "Stayed a few nights",
  "reviewerName": "Sarah",
  "hostResponse": null
}
```

An availability calendar (one row per listing):

```json
{
  "type": "calendar",
  "listingId": "736570764306678404",
  "fromDate": "2026-11-07",
  "toDate": "2027-10-31",
  "daysTotal": 359,
  "daysAvailable": 65,
  "daysBlocked": 294,
  "occupancyRate": 0.819,
  "days": [
    {"date": "2026-11-08", "available": true, "availableForCheckIn": false, "availableForCheckOut": false, "minNights": 4, "maxNights": 1125}
  ]
}
```

### Input examples

A city with dates, full details and reviews:

```json
{
  "locationQueries": ["Lisbon"],
  "checkIn": "2026-12-10",
  "checkOut": "2026-12-14",
  "adults": 2,
  "maxListingsPerSearch": 100,
  "includeReviews": true,
  "maxReviewsPerListing": 50
}
```

Your competitors' listings, with price for a weekend and the 12-month calendar:

```json
{
  "startUrls": [
    {"url": "https://www.airbnb.com/rooms/53997462"},
    {"url": "https://www.airbnb.co.uk/rooms/888323250581768898"}
  ],
  "checkIn": "2026-12-11",
  "checkOut": "2026-12-13",
  "includeCalendar": true
}
```

Cheap market scan (search page data only, entire homes under $150 a night):

```json
{
  "locationQueries": ["Austin, TX", "Nashville, TN"],
  "roomTypes": ["entire"],
  "priceMax": 150,
  "maxListingsPerSearch": 0,
  "includeDetails": false
}
```

### Pricing

Pay per result, with a lower price on bigger Apify plans. You pay only for what you switch on.

| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| Listing (name, price for your dates, rating, location, photos) | $2.00 / 1,000 | $1.50 / 1,000 | $1.20 / 1,000 | $1.00 / 1,000 |
| Full listing details (on by default) | $2.00 / 1,000 | $1.50 / 1,000 | $1.20 / 1,000 | $1.00 / 1,000 |
| Guest review | $2.00 / 1,000 | $1.60 / 1,000 | $1.30 / 1,000 | $1.00 / 1,000 |
| Availability calendar (12 months, per listing) | $4.00 / 1,000 | $3.50 / 1,000 | $3.00 / 1,000 | $2.50 / 1,000 |
| Actor start | $0.00005 | $0.00005 | $0.00005 | $0.00005 |

Examples on the Free plan: **1,000 listings with full details = $4.00**. Search data only (details off) = **$2.00**. Add the availability calendar = +$4.00. 20 reviews for each of 100 listings = 2,000 reviews = $4.00.

Proxy and compute are included. Set **Maximum cost per run** in the run options and the Actor stops before going over it.

### Use with AI agents (Claude, ChatGPT, Cursor, MCP)

Add the Actor as a tool through the Apify MCP server: `https://mcp.apify.com?tools=smoldesk/airbnb-scraper`. In Claude Desktop, Claude Code, Cursor or VS Code, add this to your MCP config (you sign in to Apify in the browser on first use, or put your API token in a `headers` → `Authorization: Bearer <APIFY_TOKEN>` field instead):

```json
{
  "mcpServers": {
    "airbnb": {
      "url": "https://mcp.apify.com?tools=smoldesk/airbnb-scraper"
    }
  }
}
```

Or let the Apify CLI write it for you: `apify mcp install cursor --tools smoldesk/airbnb-scraper` (also `claude-code`, `vscode`, `codex`). Then paste this into your agent's system prompt or tool notes:

```text
Tool: smoldesk/airbnb-scraper (Airbnb Scraper, Apify)
Use it when: the user wants Airbnb listings for a place and dates (price for the stay, rating, location, capacity, amenities, host, house rules, photos), guest reviews of listings, or which nights a listing is booked over the next 12 months. Accepts places ("Lisbon"), Airbnb search URLs or listing URLs. No login needed.
Don't use it when: the user needs hotel prices across booking sites (use smoldesk/google-hotels-scraper), nightly prices for each date of the calendar (Airbnb no longer shows them), or check-in times and exact addresses (not public).
How to call: run the Actor with JSON input and read the dataset items (rows have type listing, review or calendar). Results cost money per item, so keep maxListingsPerSearch and maxReviewsPerListing small unless the user asks for more.
Example input: {"locationQueries": ["Lisbon"], "checkIn": "2026-12-10", "checkOut": "2026-12-14", "adults": 2, "maxListingsPerSearch": 20}
```

Questions an agent can answer with it:

- What do 2-bedroom apartments in Lisbon cost for 10–14 December, and which have the best ratings?
- Summarize what guests complain about in the reviews of these three listings.
- How booked is this listing over the next 6 months?

### Use with AI (LangChain / LlamaIndex / CrewAI)

With LangChain (`pip install langchain-apify`):

```python
from langchain_apify import ApifyWrapper
from langchain_core.documents import Document

apify = ApifyWrapper()  # reads APIFY_API_TOKEN
loader = apify.call_actor(
    actor_id="smoldesk/airbnb-scraper",
    run_input={"locationQueries": ["Lisbon"], "maxListingsPerSearch": 40, "includeReviews": True},
    dataset_mapping_function=lambda v: Document(
        page_content=v.get("markdown") or v.get("textTranslated") or v.get("text") or v.get("name") or "",
        metadata={k: v.get(k) for k in ("type", "id", "listingId", "url", "rating", "city")},
    ),
)
docs = loader.load()
```

Already have a run? Use `ApifyDatasetLoader(dataset_id="<run's dataset ID>", dataset_mapping_function=...)`. **LlamaIndex**: `ApifyActor` from `llama-index-readers-apify`. **CrewAI**: use the Apify MCP server above.

### Limitations

- **About 270 listings per search.** That's Airbnb's own limit. Search smaller areas or split by price to get more.
- **No nightly prices in the calendar.** Airbnb removed them from its calendar. The calendar shows open/booked nights and stay rules; set check-in and check-out to get the price of a stay.
- **Booked share is an estimate**: `daysBlocked` counts nights that are booked *or* blocked by the host, which Airbnb doesn't tell apart.
- **Not included**: check-in/check-out times and the exact address (Airbnb shows them only after booking), the host's other listings, experiences.
- Locations are approximate for most listings (`isExactLocation: false`), as on Airbnb itself.

### FAQ

**Is there an Airbnb API?** Not a public one for listing data. This Actor reads the public Airbnb pages instead, so you pay only per result.

**How do I get prices for specific dates?** Set **Check-in** and **Check-out** (and guests). Every listing then has `price.total`, `price.perNight`, `price.nights` and a breakdown with discounts and fees.

**Can I scrape a listing's reviews?** Yes: switch on **Guest reviews**. You get the text, rating, date, language, an English translation for reviews in other languages, and the host's response. Set **Max reviews per listing** to 0 for all of them.

**Can I get more than 270 listings for a city?** Search neighborhoods one by one (`Alfama, Lisbon`, `Baixa, Lisbon`…) or split the price range with the price filters. Duplicates across searches are removed.

**Do I need a login, cookies or proxies?** No. It uses no Airbnb account. It runs from Apify's servers and switches to Apify datacenter proxy on its own if Airbnb slows it down. Residential proxies are never used.

**Is it legal to scrape Airbnb?** The listings and reviews are public information shown without a login. Reviews include guests' first names: you are responsible for how you use personal data (GDPR and similar rules). This Actor is not affiliated with Airbnb.

### Feedback

Found a bug or missing a field? Open an issue in the **Issues** tab. If the Actor saved you time, a short review on this page helps other people find it.

Code examples and a quick reference are also on GitHub: [smoldesk/airbnb-scraper](https://github.com/smoldesk/airbnb-scraper).

### More Actors from Smoldesk Studios

- [Google Hotels Scraper](https://apify.com/smoldesk/google-hotels-scraper): hotel prices for your dates in any currency, ratings, review aspects and booking-site prices, worldwide
- [Google Hotels Price Calendar](https://apify.com/smoldesk/google-hotel-price-calendar): the cheapest nightly rate for every check-in date up to a year ahead, for any hotel, with taxes and booking-site prices
- [Google Maps Scraper](https://apify.com/smoldesk/google-maps-scraper): places, phones, websites, ratings and opening hours for any search and location, with emails and social profiles from each website
- [Contact Details Scraper](https://apify.com/smoldesk/contact-details-scraper): emails, phone numbers, social profiles and contact forms from any list of websites, with email domains checked and junk removed, charged only when contacts are found
- [Career Site Jobs Scraper](https://apify.com/smoldesk/career-site-jobs-scraper): live jobs from 12,000+ company career sites (Greenhouse, Lever, Workday, Ashby) with salary and seniority
- [Shopify Store Analyzer](https://apify.com/smoldesk/shopify-store-analyzer): apps, contacts and products of any Shopify store
- [Google Ads Transparency Scraper](https://apify.com/smoldesk/google-ads-transparency-scraper): every ad a competitor runs on Google Search, YouTube and Shopping — creatives, landing pages, countries, EU impressions and new-ad alerts
- [Google Trends Scraper](https://apify.com/smoldesk/google-trends-scraper): interest over time, by region and city, related queries and Trending now — no API key
- [YouTube Scraper](https://apify.com/smoldesk/youtube-scraper): videos, Shorts, channels and comments from search, channels and playlists — exact views, likes, publish dates and durations, no API key
- [YouTube Comments Scraper](https://apify.com/smoldesk/youtube-comments-scraper): comments and replies from videos, channels, playlists or keyword searches, with likes, pinned/hearted flags and authors
- [YouTube Channel Scraper](https://apify.com/smoldesk/youtube-channel-scraper): subscribers, exact total views, join date, country and social links of any channel, plus its latest videos
- [Tennis Scraper](https://apify.com/smoldesk/tennis-scraper): results, fixtures and betting odds for ATP, WTA, Challenger and ITF, with H2H and rankings
- [SEEK, JobStreet & JobsDB Scraper](https://apify.com/smoldesk/seek-jobs-scraper): jobs and salaries across Australia and Southeast Asia
- [Telegram Channel Scraper](https://apify.com/smoldesk/telegram-channel-scraper): public channel posts, views, reactions and subscribers
- [Substack Scraper](https://apify.com/smoldesk/substack-scraper): newsletters, subscriber counts and posts
- [Weibo Scraper](https://apify.com/smoldesk/weibo-scraper): keyword and hashtag search, posts, comments, profiles and the hot-search board from China's biggest microblog, no login
- [WeChat Articles Scraper](https://apify.com/smoldesk/wechat-articles-scraper): WeChat Official Account (公众号) articles from keyword search, full text as Markdown, images, account IDs and publish dates, no login
- [Toutiao Scraper](https://apify.com/smoldesk/toutiao-scraper): Toutiao (今日头条) news search with date ranges, reads and likes, comments and the hot board (热榜), no login
- [Bilibili Scraper](https://apify.com/smoldesk/bilibili-scraper): videos, stats, danmaku, comments and creators from China's video site, no login

# Actor input Schema

## `locationQueries` (type: `array`):

Places to search, as you'd type them into Airbnb (e.g. 'Lisbon', 'Austin, TX', 'Bali, Indonesia', 'Shibuya, Tokyo'). Each place is one search. Leave empty when you only want the listing or search URLs below.

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

Listing URLs (https://www.airbnb.com/rooms/53997462) or search URLs copied from Airbnb with your filters (https://www.airbnb.com/s/Paris/homes?...). Any Airbnb domain works (airbnb.co.uk, airbnb.de, …).

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

Gives you the real price for your stay (total, per night, fees, discounts). A date (2026-12-10) or relative (+30 days, +2 weeks), so saved tasks and schedules keep working. Leave empty for listings without dates.

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

Must be after check-in. A date or relative (+34 days).

## `adults` (type: `integer`):

Number of adult guests (also filters listings by capacity).

## `children` (type: `integer`):

Children aged 2–12.

## `infants` (type: `integer`):

Infants under 2.

## `pets` (type: `integer`):

Number of pets (shows pet-friendly listings only).

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

Currency for all prices.

## `roomTypes` (type: `array`):

Leave empty for any type.

## `priceMin` (type: `integer`):

In the chosen currency. 0 = no minimum.

## `priceMax` (type: `integer`):

In the chosen currency. 0 = no maximum.

## `minBedrooms` (type: `integer`):

0 = any.

## `minBeds` (type: `integer`):

0 = any.

## `minBathrooms` (type: `integer`):

0 = any.

## `maxListingsPerSearch` (type: `integer`):

Listings to save for each place or search URL. Airbnb shows up to ~270 per search — for more, search smaller areas (neighborhoods) or narrow the price range. 0 = all Airbnb shows.

## `maxListings` (type: `integer`):

Stop after this many listings across all searches. 0 = no limit.

## `includeDetails` (type: `boolean`):

Open each listing for the full description, all amenities, house rules, safety info, sleeping arrangements, host profile (superhost, years hosting, response rate), category ratings and every photo. Off = only what the search page shows (name, price, rating, location, photos).

## `includeReviews` (type: `boolean`):

Save guest reviews for each listing (text, rating, date, language, English translation, host response) as separate rows.

## `maxReviewsPerListing` (type: `integer`):

0 = all reviews.

## `reviewsSort` (type: `string`):

Newest first, or Airbnb's 'most relevant' order.

## `includeCalendar` (type: `boolean`):

Save each listing's calendar: which nights are open or booked, check-in/check-out days and minimum/maximum stay, plus a booked-share summary (one row per listing). Airbnb no longer shows nightly prices in its calendar — set dates above for the stay price.

## `calendarMonths` (type: `integer`):

Months ahead, starting with the current month.

## `maxConcurrency` (type: `integer`):

How many listings to open at the same time.

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

Not needed — the Actor switches to Apify datacenter proxy by itself if Airbnb slows it down.

## Actor input object example

```json
{
  "locationQueries": [
    "Lisbon"
  ],
  "adults": 2,
  "children": 0,
  "infants": 0,
  "pets": 0,
  "currency": "USD",
  "maxListingsPerSearch": 20,
  "maxListings": 0,
  "includeDetails": true,
  "includeReviews": false,
  "maxReviewsPerListing": 20,
  "reviewsSort": "newest",
  "includeCalendar": false,
  "calendarMonths": 12,
  "maxConcurrency": 4
}
```

# Actor output Schema

## `listings` (type: `string`):

One row per listing: name, price for your dates, rating, location, capacity.

## `details` (type: `string`):

Amenities, house rules, host and category ratings (when 'Full listing details' is on).

## `reviews` (type: `string`):

Guest reviews (when 'Guest reviews' is on).

## `calendar` (type: `string`):

Open and booked nights per listing (when 'Availability calendar' is on).

# 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 = {
    "locationQueries": [
        "Lisbon"
    ],
    "maxListingsPerSearch": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("smoldesk/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 = {
    "locationQueries": ["Lisbon"],
    "maxListingsPerSearch": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("smoldesk/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 '{
  "locationQueries": [
    "Lisbon"
  ],
  "maxListingsPerSearch": 20
}' |
apify call smoldesk/airbnb-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,smoldesk/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/s8vmQG5NfPMia7rRr/builds/QH6z020c4eAt9Stup/openapi.json
