---
title: "Search Airbnb stays"
method: GET
path: "/airbnb/search"
tags: ["Airbnb"]
---

# Search Airbnb stays

`GET /airbnb/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/airbnb/search`
- Auth: API key in header `x-api-key`

Searches public Airbnb stays for a location, with optional check-in and check-out dates, adult count, currency and page. Pass `ne_lat`, `ne_lng`, `sw_lat` and `sw_lng` to bound the search to a map area. Each result has the listing id, title, URL, location and coordinates, price and price per night, rating, review count, host, and the Superhost and Guest Favorite flags.

## Query parameters

- `location` string, required
- `check_in` string
- `check_out` string
- `adults` integer
- `page` integer
- `currency` string
- `ne_lat` number
- `ne_lng` number
- `sw_lat` number
- `sw_lng` number
- `zoom` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- AirbnbSearchResponse
  - `location` string: Location that was searched.
  - `page` integer: Page number returned.
  - `results` AirbnbListingItem[]: Listings on this page.
    - `host` string: Host name, when the search card shows it.
    - `host_id` string: Airbnb id of the host. Use it with the host endpoint.
    - `id` string: Airbnb listing (room) id. Use it with the room endpoints.
    - `image` string: URL of the listing's main photo.
    - `is_guest_favorite` boolean: IsGuestFavorite reports whether the listing carries an Airbnb Guest Favorite badge (including its "top N%" variants). Like IsSuperhost it comes from the search card's badges[] and renders inconsistently, so a true value is reliable but a false/absent value is not — downstream aggregates treat the rate as an observed lower bound.
    - `is_superhost` boolean: True when the listing carries the Superhost badge.
    - `latitude` number: Latitude of the listing.
    - `location` string: Location text shown for the listing.
    - `longitude` number: Longitude of the listing.
    - `price` number: Price shown on the search card. With check-in and check-out dates it is the total for the stay; without dates it is Airbnb's display figure, not a nightly rate.
    - `price_per_night` number: PricePerNight is the per-night price for the queried stay (search total ÷ nights), set only when check_in+check_out are supplied. It amortizes any fixed fees across the stay, so a longer window yields a tighter base-rate estimate. Without dates the `price` field is an unstable "from"/display figure, not a nightly rate.
    - `rating` number: Average guest rating.
    - `review_count` integer: Number of guest reviews.
    - `title` string: Listing title as shown on the search card.
    - `url` string: Link to the listing on Airbnb.

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/028417aa35bb?raw)
