Docs
Log in

API usage

Add &scraper=airbnb-serp to a Crawling API request. URL-encode the target URL in the url parameter.

curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
  --data-urlencode 'url=https://www.airbnb.com/s/Beirut/homes' \
  --data-urlencode 'scraper=airbnb-serp' -G
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
    'https://www.airbnb.com/s/Beirut/homes',
    {'scraper': 'airbnb-serp'}
)

import json
data = json.loads(res['body'])
const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });

const res = await api.get(
  'https://www.airbnb.com/s/Beirut/homes',
  { scraper: 'airbnb-serp' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

res = api.get('https://www.airbnb.com/s/Beirut/homes', scraper: 'airbnb-serp')
data = JSON.parse(res.body)

Example input URL

The URL passed in the url parameter (URL-decoded for readability):

https://www.airbnb.com/s/Beirut/homes

Response shape

JSON response body. Field types may be null when the source page omits the value.

search_location
string
Location query.
total_results
integer | null
Matching listings.
listings
array
Listing summary objects.
listings[].id
string
Listing ID.
listings[].title
string
Title.
listings[].url
string
URL.
listings[].location
string
Neighborhood / city.
listings[].price_per_night
string
Nightly price with currency.
listings[].rating
number | null
Average rating.
listings[].reviews_count
integer | null
Reviews.
listings[].images
array
Image URLs.
listings[].guests
integer
Max guests.
listings[].bedrooms
integer
Bedrooms.

Sample response

{
  "search_location": "Beirut",
  "listings": [
    {
      "id": "54281209",
      "title": "Sunny apartment in Hamra",
      "location": "Beirut, Lebanon",
      "price_per_night": "$45",
      "rating": 4.92,
      "reviews_count": 142,
      "guests": 2,
      "bedrooms": 1
    }
  ]
}