# Airbnb — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search Airbnb stays by destination and dates, then retrieve listing details, availability calendars, and recent guest reviews for a specific listing.

**Category:** Travel | **Website:** [airbnb.com/](https://airbnb.com/) | **Docs:** [parse.bot/marketplace/d5819501-9e9c-4f29-9e7e-e2a0d0b6e722/airbnb-com-api](https://parse.bot/marketplace/d5819501-9e9c-4f29-9e7e-e2a0d0b6e722/airbnb-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-airbnb-com-api-d5819501/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_availability_calendar

Returns the availability calendar for a listing across a configurable number of months starting from a given month/year. Each day shows availability status, check-in/check-out eligibility, minimum/maximum night constraints, and formatted local price. Useful for finding bookable windows and understanding pricing patterns.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `currency` | string | No | Currency code for pricing |
| `listing_id` | string | Yes | Airbnb listing ID (from search_listings results[*].listing_id) |
| `month` | integer | No | Starting month (1-12). Omitting defaults to current month. |
| `months_count` | integer | No | Number of months to retrieve (1-12) |
| `year` | integer | No | Starting year. Omitting defaults to current year. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbnb-com-api-d5819501/get_availability_calendar \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"currency":"<string>","listing_id":"<string>","month":"<integer>","months_count":"<integer>","year":"<integer>"}'
```

### get_listing_detail

Fetches the full detail page for a single Airbnb listing by its ID. Returns description, amenities, host profile, house rules, location coordinates, images, capacity (guests/bedrooms/beds/baths), and a reviews summary with category ratings. Requires a valid listing_id from search_listings. A separate round-trip from search; use when the summary fields are insufficient.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `adults` | integer | No | Number of adults |
| `checkin` | string | No | Check-in date in YYYY-MM-DD format |
| `checkout` | string | No | Check-out date in YYYY-MM-DD format |
| `currency` | string | No | Currency code for pricing |
| `listing_id` | string | Yes | Airbnb listing ID (from search_listings results[*].listing_id) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbnb-com-api-d5819501/get_listing_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"adults":"<integer>","checkin":"<string>","checkout":"<string>","currency":"<string>","listing_id":"<string>"}'
```

### get_listing_reviews

Retrieves guest reviews for a specific listing with offset-based pagination. Each review includes rating, comment text, language, creation date, reviewer profile, and an optional host response. Sorted by recency or relevance. The offset advances by limit on each page; has_more indicates whether additional pages exist.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `currency` | string | No | Currency code |
| `limit` | integer | No | Number of reviews to return per page |
| `listing_id` | string | Yes | Airbnb listing ID (from search_listings results[*].listing_id) |
| `offset` | integer | No | Offset for pagination |
| `sort` | string | No | Sort order for reviews |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbnb-com-api-d5819501/get_listing_reviews \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"currency":"<string>","limit":"<integer>","listing_id":"<string>","offset":"<integer>","sort":"<string>"}'
```

### search_listings

Full-text location search across Airbnb stay listings. Returns paginated summaries with pricing, ratings, images, coordinates, and host info. Filters narrow by dates, guest count, price range, beds/bedrooms/bathrooms, and property type. Pagination uses an opaque cursor; each page returns up to items_per_page results. Server-side ordering is fixed (Airbnb relevance); client-side sorting over the returned list is the only option for custom order.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `adults` | integer | No | Number of adults |
| `checkin` | string | No | Check-in date in YYYY-MM-DD format |
| `checkout` | string | No | Check-out date in YYYY-MM-DD format |
| `children` | integer | No | Number of children |
| `currency` | string | No | Currency code for pricing (e.g. USD, EUR, GBP) |
| `cursor` | string | No | Pagination cursor from next_cursor of a previous response |
| `infants` | integer | No | Number of infants |
| `items_per_page` | integer | No | Number of results per page |
| `max_price` | integer | No | Maximum price filter |
| `min_bathrooms` | integer | No | Minimum number of bathrooms |
| `min_bedrooms` | integer | No | Minimum number of bedrooms |
| `min_beds` | integer | No | Minimum number of beds |
| `min_price` | integer | No | Minimum price filter |
| `pets` | integer | No | Number of pets |
| `property_type` | string | No | Property type filter |
| `query` | string | Yes | Search location (e.g. 'Paris, France', 'New York', 'Tokyo') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbnb-com-api-d5819501/search_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"adults":"<integer>","checkin":"<string>","checkout":"<string>","children":"<integer>","currency":"<string>","cursor":"<string>","infants":"<integer>","items_per_page":"<integer>","max_price":"<integer>","min_bathrooms":"<integer>","min_bedrooms":"<integer>","min_beds":"<integer>","min_price":"<integer>","pets":"<integer>","property_type":"<string>","query":"<string>"}'
```
