Expedia
Expedia: Hotels Search
Hotels Search from Expedia. Costs 1 credit per successful call.
GET
https://api.perceptlayer.com
/
v1
/
expedia
/
hotels-search
Hotels Search
curl --request GET \
--url https://api.perceptlayer.com/v1/expedia/hotels-search \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.perceptlayer.com/v1/expedia/hotels-search"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.perceptlayer.com/v1/expedia/hotels-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.perceptlayer.com/v1/expedia/hotels-search';
const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.perceptlayer.com/v1/expedia/hotels-search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.perceptlayer.com/v1/expedia/hotels-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 => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.perceptlayer.com/v1/expedia/hotels-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.perceptlayer.com/v1/expedia/hotels-search")
.header("X-API-Key", "<api-key>")
.asString();{
"endpoint": "expedia.hotels-search",
"params": {
"region_id": "2734",
"region_name": "Paris, France",
"check_in": "2026-11-20",
"check_out": "2026-11-23",
"adults": "2",
"limit": "10"
},
"response": {
"success": true,
"data": {
"region_id": "2734",
"check_in": "2026-11-20",
"check_out": "2026-11-23",
"hotels": [
{
"property_id": "564660",
"position": 1,
"name": "Mercure Paris Centre Tour Eiffel",
"area": "Paris",
"url": "https://www.expedia.com/Paris-Hotels-Mercure-Paris-Centre-Tour-Eiffel.h564660.Hotel-Information?chkin=2026-11-20&chkout=2026-11-23&rm1=a2",
"guest_rating": 8,
"guest_rating_label": "Very good",
"review_count": 1000,
"total_price": 690,
"price_per_night": 230,
"image_urls": [
"https://images.trvl-media.com/lodging/1000000/570000/564700/564660/1f239d26.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/570000/564700/564660/758a98bd.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/570000/564700/564660/a75c7f5b.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"
],
"free_cancellation": false,
"sponsored": true,
"amenities_preview": [
"restaurant",
"bar",
"room-service"
],
"currency": "EUR"
},
{
"property_id": "994215",
"position": 2,
"name": "L’Hôtel du Collectionneur Paris",
"area": "Paris",
"url": "https://www.expedia.com/Paris-Hotels-LHotel-Du-Collectionneur-Arc-De-Triomphe.h994215.Hotel-Information?chkin=2026-11-20&chkout=2026-11-23&rm1=a2",
"guest_rating": 8.6,
"guest_rating_label": "Excellent",
"review_count": 1012,
"total_price": 1203,
"original_price": 1329,
"price_per_night": 401,
"image_urls": [
"https://images.trvl-media.com/lodging/1000000/1000000/994300/994215/11aa0d6c.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/1000000/994300/994215/4727fa50.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/1000000/994300/994215/b7cd487a.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"
],
"free_cancellation": false,
"sponsored": true,
"amenities_preview": [
"spa-facilities",
"fitness-facilities",
"pool-indoor"
],
"currency": "EUR"
},
{
"property_id": "6454",
"position": 3,
"name": "Le Méridien Paris Arc De Triomphe",
"area": "Paris",
"url": "https://www.expedia.com/Paris-Hotels-Le-Meridien-Paris-Arc-De-Triomphe.h6454.Hotel-Information?chkin=2026-11-20&chkout=2026-11-23&rm1=a2",
"guest_rating": 8.2,
"guest_rating_label": "Very good",
"review_count": 1001,
"total_price": 596,
"price_per_night": 199,
"scarcity_message": "We have 5 left at this price",
"image_urls": [
"https://images.trvl-media.com/lodging/1000000/10000/6500/6454/7e2075fc.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/10000/6500/6454/92f74392.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/10000/6500/6454/2a0d18ee.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"
],
"free_cancellation": false,
"sponsored": false,
"amenities_preview": [
"restaurant",
"bar",
"outdoor-space"
],
"currency": "EUR"
}
],
"total_results": 500,
"offset": 0,
"has_more": true,
"next_offset": 10
},
"meta": {
"endpoint_family": "hotel_search",
"billable": true
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}1 credit per successful call; failed calls are free. See the Expedia API overview for every Expedia endpoint.
Authorizations
Query Parameters
Maximum string length:
120Available options:
recommended, price_low_to_high, review Was this page helpful?
⌘I
Hotels Search
curl --request GET \
--url https://api.perceptlayer.com/v1/expedia/hotels-search \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.perceptlayer.com/v1/expedia/hotels-search"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.perceptlayer.com/v1/expedia/hotels-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.perceptlayer.com/v1/expedia/hotels-search';
const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.perceptlayer.com/v1/expedia/hotels-search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.perceptlayer.com/v1/expedia/hotels-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 => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.perceptlayer.com/v1/expedia/hotels-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.perceptlayer.com/v1/expedia/hotels-search")
.header("X-API-Key", "<api-key>")
.asString();{
"endpoint": "expedia.hotels-search",
"params": {
"region_id": "2734",
"region_name": "Paris, France",
"check_in": "2026-11-20",
"check_out": "2026-11-23",
"adults": "2",
"limit": "10"
},
"response": {
"success": true,
"data": {
"region_id": "2734",
"check_in": "2026-11-20",
"check_out": "2026-11-23",
"hotels": [
{
"property_id": "564660",
"position": 1,
"name": "Mercure Paris Centre Tour Eiffel",
"area": "Paris",
"url": "https://www.expedia.com/Paris-Hotels-Mercure-Paris-Centre-Tour-Eiffel.h564660.Hotel-Information?chkin=2026-11-20&chkout=2026-11-23&rm1=a2",
"guest_rating": 8,
"guest_rating_label": "Very good",
"review_count": 1000,
"total_price": 690,
"price_per_night": 230,
"image_urls": [
"https://images.trvl-media.com/lodging/1000000/570000/564700/564660/1f239d26.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/570000/564700/564660/758a98bd.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/570000/564700/564660/a75c7f5b.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"
],
"free_cancellation": false,
"sponsored": true,
"amenities_preview": [
"restaurant",
"bar",
"room-service"
],
"currency": "EUR"
},
{
"property_id": "994215",
"position": 2,
"name": "L’Hôtel du Collectionneur Paris",
"area": "Paris",
"url": "https://www.expedia.com/Paris-Hotels-LHotel-Du-Collectionneur-Arc-De-Triomphe.h994215.Hotel-Information?chkin=2026-11-20&chkout=2026-11-23&rm1=a2",
"guest_rating": 8.6,
"guest_rating_label": "Excellent",
"review_count": 1012,
"total_price": 1203,
"original_price": 1329,
"price_per_night": 401,
"image_urls": [
"https://images.trvl-media.com/lodging/1000000/1000000/994300/994215/11aa0d6c.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/1000000/994300/994215/4727fa50.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/1000000/994300/994215/b7cd487a.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"
],
"free_cancellation": false,
"sponsored": true,
"amenities_preview": [
"spa-facilities",
"fitness-facilities",
"pool-indoor"
],
"currency": "EUR"
},
{
"property_id": "6454",
"position": 3,
"name": "Le Méridien Paris Arc De Triomphe",
"area": "Paris",
"url": "https://www.expedia.com/Paris-Hotels-Le-Meridien-Paris-Arc-De-Triomphe.h6454.Hotel-Information?chkin=2026-11-20&chkout=2026-11-23&rm1=a2",
"guest_rating": 8.2,
"guest_rating_label": "Very good",
"review_count": 1001,
"total_price": 596,
"price_per_night": 199,
"scarcity_message": "We have 5 left at this price",
"image_urls": [
"https://images.trvl-media.com/lodging/1000000/10000/6500/6454/7e2075fc.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/10000/6500/6454/92f74392.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"https://images.trvl-media.com/lodging/1000000/10000/6500/6454/2a0d18ee.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455"
],
"free_cancellation": false,
"sponsored": false,
"amenities_preview": [
"restaurant",
"bar",
"outdoor-space"
],
"currency": "EUR"
}
],
"total_results": 500,
"offset": 0,
"has_more": true,
"next_offset": 10
},
"meta": {
"endpoint_family": "hotel_search",
"billable": true
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}