curl --request GET \
--url https://api.aisa.one/apis/v1/airbnb/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/airbnb/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/airbnb/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/airbnb/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/airbnb/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/airbnb/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/airbnb/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"search_metadata": {
"id": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"request_time_taken": 123,
"parsing_time_taken": 123,
"total_time_taken": 123,
"request_url": "<string>",
"html_url": "<string>",
"json_url": "<string>"
},
"search_parameters": {
"engine": "<string>",
"airbnb_domain": "<string>",
"currency": "<string>",
"include_taxes": "<string>",
"q": "<string>",
"bounding_box": "<string>",
"check_in_date": "<string>",
"check_out_date": "<string>",
"time_period": "<string>",
"price_min": 123,
"price_max": 123,
"adults": 123,
"children": 123,
"infants": 123,
"pets": 123,
"type_of_place": "<string>",
"bedrooms": 123,
"beds": 123,
"bathrooms": 123,
"amenities": "<string>",
"property_types": "<string>",
"next_page_token": "<string>"
},
"search_information": {
"query_displayed": "<string>",
"results": "<string>",
"time_period": "<string>",
"check_in_date": "<string>",
"check_out_date": "<string>",
"guests": "<string>",
"adults": 123,
"children": 123,
"infants": 123,
"pets": 123
},
"properties": [
{
"position": 123,
"id": "<string>",
"title": "<string>",
"description": "<string>",
"link": "<string>",
"booking_link": "<string>",
"time_period": "<string>",
"check_in_date": "<string>",
"check_out_date": "<string>",
"price": {
"total_price": "<string>",
"extracted_total_price": 123,
"qualifier": "<string>",
"extracted_qualifier": 123,
"original_price": "<string>",
"extracted_original_price": 123,
"discount": "<string>",
"extracted_discount": 123,
"price_per_qualifier": "<string>",
"extracted_price_per_qualifier": 123,
"breakdown": [
{
"description": "<string>",
"price": "<string>",
"extracted_price": 123
}
],
"total_with_taxes": "<string>",
"extracted_total_with_taxes": 123
},
"accommodations": [
"<string>"
],
"distance": "<string>",
"extracted_distance": 123,
"gps_coordinates": {
"latitude": 123,
"longitude": 123
},
"rating": 123,
"reviews": 123,
"has_free_cancellation": true,
"badges": [
"<string>"
],
"images": [
"<string>"
]
}
],
"pagination": {
"next_page_token": "<string>"
},
"error": "<string>"
}Search Airbnb Listings
curl --request GET \
--url https://api.aisa.one/apis/v1/airbnb/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/airbnb/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/airbnb/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/airbnb/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/airbnb/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/airbnb/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/airbnb/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"search_metadata": {
"id": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"request_time_taken": 123,
"parsing_time_taken": 123,
"total_time_taken": 123,
"request_url": "<string>",
"html_url": "<string>",
"json_url": "<string>"
},
"search_parameters": {
"engine": "<string>",
"airbnb_domain": "<string>",
"currency": "<string>",
"include_taxes": "<string>",
"q": "<string>",
"bounding_box": "<string>",
"check_in_date": "<string>",
"check_out_date": "<string>",
"time_period": "<string>",
"price_min": 123,
"price_max": 123,
"adults": 123,
"children": 123,
"infants": 123,
"pets": 123,
"type_of_place": "<string>",
"bedrooms": 123,
"beds": 123,
"bathrooms": 123,
"amenities": "<string>",
"property_types": "<string>",
"next_page_token": "<string>"
},
"search_information": {
"query_displayed": "<string>",
"results": "<string>",
"time_period": "<string>",
"check_in_date": "<string>",
"check_out_date": "<string>",
"guests": "<string>",
"adults": 123,
"children": 123,
"infants": 123,
"pets": 123
},
"properties": [
{
"position": 123,
"id": "<string>",
"title": "<string>",
"description": "<string>",
"link": "<string>",
"booking_link": "<string>",
"time_period": "<string>",
"check_in_date": "<string>",
"check_out_date": "<string>",
"price": {
"total_price": "<string>",
"extracted_total_price": 123,
"qualifier": "<string>",
"extracted_qualifier": 123,
"original_price": "<string>",
"extracted_original_price": 123,
"discount": "<string>",
"extracted_discount": 123,
"price_per_qualifier": "<string>",
"extracted_price_per_qualifier": 123,
"breakdown": [
{
"description": "<string>",
"price": "<string>",
"extracted_price": 123
}
],
"total_with_taxes": "<string>",
"extracted_total_with_taxes": 123
},
"accommodations": [
"<string>"
],
"distance": "<string>",
"extracted_distance": 123,
"gps_coordinates": {
"latitude": 123,
"longitude": 123
},
"rating": 123,
"reviews": 123,
"has_free_cancellation": true,
"badges": [
"<string>"
],
"images": [
"<string>"
]
}
],
"pagination": {
"next_page_token": "<string>"
},
"error": "<string>"
}授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
查询参数
Number of adult guests
0 <= x <= 16Airbnb domain to search (affects language and regional results)
Comma-separated list of amenity keys (e.g., "wifi,pool,kitchen"). Supports hundreds of amenities including wifi, pool, kitchen, air_conditioning, heating, washer, dryer, parking, pets_allowed, wheelchair_accessible, gym, hot_tub, ev_charger, and many more. Also supports special filters: guest_favorite, instant_book, luxe.
Minimum number of bathrooms
0 <= x <= 8Minimum number of bedrooms
0 <= x <= 8Minimum number of beds
0 <= x <= 8Geographic bounding box coordinates for map-based search. Format: [[ne_lat,ne_lng],[sw_lat,sw_lng]]. Either q or bounding_box is required.
Check-in date in YYYY-MM-DD format. Must be a future date. Cannot be used together with time_period.
^\d{4}-\d{2}-\d{2}$Check-out date in YYYY-MM-DD format. Must be after check-in date. Requires check_in_date to be set.
^\d{4}-\d{2}-\d{2}$Number of children guests
0 <= x <= 15Currency code for pricing. Defaults to USD on airbnb.com; country-specific domains use their own local currency unless this parameter is set.
USD, AUD, BRL, BGN, BAM, CAD, CLP, CNY, COP, CRC, CZK, DKK, EGP, AED, EUR, GHS, GTQ, HNL, HKD, HUF, INR, IDR, ILS, JPY, KZT, KES, MYR, MXN, MAD, TWD, NZD, NOK, PEN, PHP, PLN, GBP, QAR, RON, RUB, SAR, SGD, ZAR, KRW, SEK, CHF, THB, TRY, UGX, UAH, UYU, VND Search engine identifier
airbnb When true, returns tax-inclusive search-card pricing. Each property's price then carries total_with_taxes and itemizes its tax lines in breakdown, without any extra per-property call. Applies to airbnb.com, where taxes normally appear only at checkout; other country-specific domains are unaffected (many, like EU domains, already show tax-inclusive totals by default). The nightly prices are the same as the default response; taxes are itemized on top.
true, false Number of infant guests
0 <= x <= 5Token for pagination to retrieve subsequent pages of results
Number of pets
0 <= x <= 5Maximum price filter per night
x >= 0Minimum price filter per night
x >= 0Comma-separated list of property type keys
Search query for location (e.g., "Barcelona", "Paris"). Either q or bounding_box is required.
Flexible trip length for searches without specific dates. Cannot be used together with check_in_date.
weekend_trip, one_week, one_month Type of accommodation
any, room, entire_home