# Airbnb API guide



## Start with Airbnb



Resolve a destination, search stays and inspect a listing. Keep dates, guest counts and currency consistent when comparing listings or asking for a stay price.



These requests use your API key and can spend credits. Check the current price on the endpoint page; each new page is a separate request. Later examples use illustrative identifiers: replace them with values from your earlier response.



### 1. Resolve the destination



Save the returned location identifier and use it as place_id for search. Similar place names can resolve to different destinations. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/airbnb/locations)



**airbnb/locations**

```
curl "https://www.monocrawl.com/v1/airbnb/locations?query=Edinburgh" \
  -H "x-api-key: mn_your_key_here"
```



### 2. Find stays



For a dated comparison, supply your future checkin and checkout plus the full party. Continue with cursor; this search does not support numbered pages. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/airbnb/search-stays)



**airbnb/search-stays**

```
curl "https://www.monocrawl.com/v1/airbnb/search-stays?location=Edinburgh&adults=2&limit=10" \
  -H "x-api-key: mn_your_key_here"
```



### 3. Inspect a selected stay



Replace the illustrative id with a returned listing ID. Preserve the same trip parameters for date-dependent information. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/airbnb/stay)



**airbnb/stay**

```
curl "https://www.monocrawl.com/v1/airbnb/stay?id=6332745" \
  -H "x-api-key: mn_your_key_here"
```



## Choose filters with the source behavior in mind



| Control | Behavior and limits |
| --- | --- |
| Trip consistency | Keep checkin, checkout, party, currency and filters unchanged while following cursor. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/airbnb/search-stays) |
| Availability | Read the declared calendar window; missing dates are not proof that every other date is bookable. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/airbnb/stay-availability) |



Source availability, ordering and field coverage can change. Inspect warnings and partial-result metadata alongside the rows. See [runnable workflows](https://www.monocrawl.com/docs/workflows), [metric semantics](https://www.monocrawl.com/docs/metric-semantics), [computed fields](https://www.monocrawl.com/docs/computed-fields) and the [pagination matrix](https://www.monocrawl.com/docs/pagination).



## Match the operation to your task



| Your task | Endpoint | When to use it |
| --- | --- | --- |
| Price for a trip | [`stay-price`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-price) | Supply the listing, future dates and party; inspect nightly and total price labels and fees. This is not a booking quote guarantee. |
| Available dates | [`stay-availability`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-availability) | Use the declared month/year controls. A returned availability snapshot does not reserve a stay. |
| Rating summary | [`stay-rating`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-rating) | A rating summary is not a page of written reviews. Check the catalogue before assuming a separate review operation is available. |



Explore all documented operations by purpose below. Each endpoint reference contains its accepted parameters and current price.



### Other operations



- [`locations`](https://www.monocrawl.com/docs/endpoints/airbnb/locations)

- [`stay`](https://www.monocrawl.com/docs/endpoints/airbnb/stay)

- [`stay-availability`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-availability)

- [`stay-price`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-price)

- [`stay-rating`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-rating)



### Search and discovery



- [`search-stays`](https://www.monocrawl.com/docs/endpoints/airbnb/search-stays)



### Reviews and offers



- [`stay-reviews`](https://www.monocrawl.com/docs/endpoints/airbnb/stay-reviews)



## Endpoint reference

## airbnb/locations

`GET /v1/airbnb/locations`

The places the site knows for a name, each with the place id the searches take, its Google place id, country and bounds.

*Airbnb place lookup*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | A city, area or address — e.g. `Lisbon` |
| `limit` | no | Suggestions, 1 to 20 — e.g. `5` |
| `language` | no | Language code for the site's text |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 6 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/locations?query=Lisbon" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "has_more": false,
  "items": [
    {
      "country_code": "example",
      "display_name": "example",
      "google_place_id": "example",
      "id": "example",
      "name": "example"
    }
  ],
  "query": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/locations#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/locations.json)


## airbnb/search-stays

`GET /v1/airbnb/search-stays`

Stays in a place for a trip: name, city, room type, rating and review count, position, the nightly price and the trip total as the site shows them, photos, instant booking and the host with their rating and years hosting. Pages by cursor.

*Airbnb stay search*

| Parameter | Required | Description |
| --- | --- | --- |
| `location` | no | A city, area or address; resolved to a place once and remembered (or pass place_id) — e.g. `Lisbon` |
| `place_id` | no | A place id from airbnb/locations |
| `checkin` | no | Check-in date, YYYY-MM-DD (with checkout) — e.g. `2026-10-10` |
| `checkout` | no | Check-out date, YYYY-MM-DD (with checkin) — e.g. `2026-10-14` |
| `adults` | no | Adults, up to 16 — e.g. `2` |
| `children` | no | Children, up to 15 |
| `infants` | no | Infants, up to 5 |
| `pets` | no | Pets, up to 5 |
| `min_price` | no | Minimum price per night in the currency |
| `max_price` | no | Maximum price per night in the currency |
| `type_of_place` | no | The site's type-of-place filter |
| `property_type` | no | The site's property-type filter |
| `bedrooms` | no | Minimum bedrooms |
| `beds` | no | Minimum beds |
| `bathrooms` | no | Minimum bathrooms |
| `amenities` | no | The site's amenity ids, separated by commas |
| `booking_options` | no | The site's booking-option filters |
| `host_language` | no | The site's host-language filter |
| `top_tier` | no | The site's top-tier-stays filter |
| `total_price` | no | Show the trip total instead of the nightly price — e.g. `false` |
| `limit` | no | Results per page, 1 to 50 — e.g. `16` |
| `cursor` | no | The cursor from the previous page |
| `currency` | no | Three-letter currency code — e.g. `GBP` |
| `language` | no | Language code for the site's text |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `cursor`: Continue the same source traversal with the complete returned cursor. Saved-result retrieval and a new source page can have different prices; quote the next call.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 11 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/search-stays" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "badges": [
        "example"
      ],
      "city": "example",
      "id": "example",
      "image_url": "https://example.com/example",
      "images": [
        "example"
      ],
      "latitude": 0,
      "longitude": 0,
      "name": "example",
      "notes": [
        "example"
      ],
      "platform": "example",
      "price": {
        "accessibility_label": "example",
        "amount": 0,
        "label": "example",
        "original_amount": 0,
        "original_label": "example",
        "qualifier": "example"
      },
      "price_breakdown": [
        {}
      ],
      "rating": 0,
      "reviews": 0,
      "subtitle": "example",
      "title": "example",
      "type": "example",
      "url": "https://example.com/example"
    }
  ],
  "place": {
    "id": "example",
    "name": "example"
  }
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/search-stays#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/search-stays.json)


## airbnb/stay

`GET /v1/airbnb/stay`

One stay's page: name and headline, property type, location and position, capacity, rating and reviews, description, highlights, amenities by group, house rules, safety, cancellation policies, instant booking, the host with their tags and response figures, and the photos. Sections the page carried beyond this are named in _warnings.

*Airbnb stay*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | The listing number (or pass url, the stay's page) — e.g. `6332745` |
| `url` | no | The stay's page URL instead of an id |
| `checkin` | no | Check-in date, YYYY-MM-DD (with checkout), for dated pricing |
| `checkout` | no | Check-out date, YYYY-MM-DD (with checkin) |
| `adults` | no | Adults, up to 16 — e.g. `2` |
| `children` | no | Children, up to 15 |
| `infants` | no | Infants, up to 5 |
| `pets` | no | Pets, up to 5 |
| `currency` | no | Three-letter currency code — e.g. `GBP` |
| `language` | no | Language code for the site's text |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 6 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/stay?id=6332745" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [],
  "amenities": [
    {
      "group": "example",
      "items": [
        {}
      ]
    }
  ],
  "amenities_count": 0,
  "cancellation_policies": [
    {
      "id": "example",
      "name": "example",
      "summary": "example"
    }
  ],
  "category_ratings": [
    {
      "label": "example",
      "rating": 0,
      "share": 0
    }
  ],
  "description": "example",
  "details": [
    "example"
  ],
  "guests": 0,
  "headline": "example",
  "highlights": [
    {
      "subtitle": "example",
      "title": "example"
    }
  ],
  "house_rule_sections": [],
  "house_rules": [
    "example"
  ],
  "id": "example",
  "image_url": "https://example.com/example",
  "latitude": 0,
  "location": "example",
  "location_radius_m": 0,
  "longitude": 0,
  "name": "example",
  "photos": [
    {
      "caption": "example",
      "url": "https://example.com/example"
    }
  ],
  "platform": "example",
  "property_type": "example",
  "rating": 0,
  "rating_distribution": [],
  "reviews": 0,
  "reviews_note": "example",
  "safety": [
    "example"
  ],
  "type": "example",
  "url": "https://example.com/example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/stay#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/stay.json)


## airbnb/stay-availability

`GET /v1/airbnb/stay-availability`

One stay's calendar month by month: each day's availability, whether check-in and check-out are allowed, the minimum and maximum nights and the price where the site shows one.

*Airbnb stay calendar*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | The listing number (or pass url, the stay's page) — e.g. `6332745` |
| `url` | no | The stay's page URL instead of an id |
| `month` | no | First month, 1 to 12 — e.g. `10` |
| `year` | no | First year — e.g. `2026` |
| `months` | no | How many months, 1 to 12 — e.g. `2` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 6 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/stay-availability?id=6332745" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [],
  "available_days": 0,
  "count": 0,
  "id": "example",
  "months": [
    {
      "days": [
        {}
      ],
      "month": 0,
      "year": 0
    }
  ],
  "platform": "example",
  "type": "example",
  "url": "https://example.com/example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/stay-availability#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/stay-availability.json)


## airbnb/stay-price

`GET /v1/airbnb/stay-price`

Accommodation price for the requested dates and guests. Taxes and service fees are not included in this response.

*Airbnb stay price*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | The listing number (or pass url, the stay's page) — e.g. `6332745` |
| `url` | no | The stay's page URL instead of an id |
| `checkin` | yes | Check-in date, YYYY-MM-DD — e.g. `2026-10-10` |
| `checkout` | yes | Check-out date, YYYY-MM-DD — e.g. `2026-10-12` |
| `adults` | no | Adults, up to 16 — e.g. `2` |
| `children` | no | Children, up to 15 |
| `infants` | no | Infants, up to 5 |
| `pets` | no | Pets, up to 5 |
| `total_price` | no | Show the trip total instead of the nightly price — e.g. `false` |
| `currency` | no | Three-letter currency code — e.g. `GBP` |
| `language` | no | Language code for the site's text |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 6 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/stay-price?id=6332745&checkin=2026-10-10&checkout=2026-10-12" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "breakdown": [
    {
      "amount": 0,
      "description": "example",
      "price_label": "example"
    }
  ],
  "cancellation_policies": [],
  "checkin": "example",
  "checkout": "example",
  "id": "example",
  "nights": 0,
  "platform": "example",
  "price": {
    "amount": 0,
    "label": "example",
    "qualifier": "example"
  },
  "type": "example",
  "url": "https://example.com/example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/stay-price#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/stay-price.json)


## airbnb/stay-rating

`GET /v1/airbnb/stay-rating`

One stay's overall rating and review count with the category ratings (cleanliness, accuracy, communication, location, check-in, value).

*Airbnb stay rating*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | The listing number (or pass url, the stay's page) — e.g. `6332745` |
| `url` | no | The stay's page URL instead of an id |
| `language` | no | Language code for the site's text |
| `currency` | no | Three-letter currency code |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 6 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/stay-rating?id=6332745" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [],
  "category_ratings": [
    {
      "label": "example",
      "rating": 0,
      "share": 0
    }
  ],
  "id": "example",
  "platform": "example",
  "rating": 0,
  "rating_distribution": [],
  "reviews": 0,
  "type": "example",
  "url": "https://example.com/example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/stay-rating#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/stay-rating.json)


## airbnb/stay-reviews

`GET /v1/airbnb/stay-reviews`

Guest reviews with text, rating, date, reviewer and host reply where supplied. Cursor pagination preserves the requested stay and language. Text search and other sort modes are not supported.

*Airbnb stay reviews*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | no | Stay identifier from search-stays, or use url. — e.g. `1010503905929192028` |
| `url` | no | Public Airbnb stay URL instead of id. |
| `limit` | no | Results per page, 1 to 50. Keep unchanged between pages. — e.g. `10` |
| `cursor` | no | Opaque continuation from this operation; preserve all original parameters. |
| `page` | no | Optional initial page; use cursor for subsequent pages. — e.g. `1` |
| `sort` | no | Newest first; only newest/MOST_RECENT is supported. Accepted values: newest, MOST_RECENT. Case, spaces, hyphens and underscores are interchangeable. — e.g. `newest` |
| `language` | no | Two-letter language code with optional region. — e.g. `en` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 3 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/airbnb/stay-reviews?id=1010503905929192028" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [],
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "created_at": "2026-09-01T12:00:00Z",
      "date_label": "2026-09-01T12:00:00Z",
      "id": "example",
      "language": "example",
      "photos": [],
      "platform": "example",
      "rating": 0,
      "reviewer": {
        "avatar_url": "https://example.com/example",
        "id": "example",
        "name": "example"
      },
      "text": "example",
      "type": "example"
    }
  ],
  "listing_id": "example",
  "page": 0,
  "pages": 0,
  "total": 0
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/airbnb/stay-reviews#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/airbnb/stay-reviews.json)

