Trivago
Trivago: Search
Search from Trivago. Costs 1 credit per successful call.
GET
https://api.perceptlayer.com
/
v1
/
trivago
/
search
Search
curl --request GET \
--url https://api.perceptlayer.com/v1/trivago/search \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.perceptlayer.com/v1/trivago/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/trivago/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.perceptlayer.com/v1/trivago/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/trivago/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/trivago/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/trivago/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/trivago/search")
.header("X-API-Key", "<api-key>")
.asString();{
"endpoint": "trivago.search",
"params": {
"destination_id": "22235",
"check_in": "2026-11-20",
"check_out": "2026-11-23"
},
"response": {
"success": true,
"data": {
"destination_id": 22235,
"check_in": "2026-11-20",
"check_out": "2026-11-23",
"market": "us",
"currency": "USD",
"sort": "relevance",
"total": 2500,
"limit": 35,
"offset": 0,
"has_more": true,
"next_offset": 35,
"city_center": {
"name": "Paris",
"coordinates": {
"latitude": 48.856445,
"longitude": 2.352231
}
},
"price_range": {
"min": 2,
"max": 600
},
"price_histogram": [
{
"from": 2,
"to": 21.92,
"count": 0
},
{
"from": 21.93,
"to": 41.85,
"count": 1
},
{
"from": 41.86,
"to": 61.79,
"count": 4
}
],
"available_filters": [
{
"concept": "416-6",
"hotels": 0
}
],
"hotels": [
{
"id": 49992,
"position": 1,
"name": "Residence Hoteliere Champ de Mars",
"url": "https://www.trivago.com/en-US/oar/residence-hoteliere-champ-de-mars-paris?search=100-49992",
"type": "Hotel",
"stars": 3,
"is_superior": false,
"rating": 8.3,
"review_count": 1284,
"image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/partner-images/3d/35/474372b8841db141133d4541e7305b2c469bda3dc9a0f939838996854564",
"thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/partner-images/3d/35/474372b8841db141133d4541e7305b2c469bda3dc9a0f939838996854564",
"image_count": 28,
"coordinates": {
"latitude": 48.851398,
"longitude": 2.2975
},
"location": "Paris, France",
"locality": "Paris",
"distance": "0.5 miles to Eiffel tower",
"check_in_hour": 14,
"free_wifi": true,
"popular": false,
"provider_count": 7,
"sponsored": false,
"forecast_price": {
"month": "2027-01",
"price_per_night": 91,
"currency": "USD"
}
},
{
"id": 2627611,
"position": 2,
"name": "VIP Paris Yacht Hôtel & Spa",
"url": "https://www.trivago.com/en-US/oar/hotel-vip-paris-yacht-hôtel-spa?search=100-2627611",
"type": "Hotel",
"stars": 4,
"is_superior": false,
"rating": 8.3,
"review_count": 3286,
"image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/hotelier-images/b3/24/ae14c958f9d2b5374c04a7df6d37f41087ab0c0440919e04918dafb294a9",
"thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/hotelier-images/b3/24/ae14c958f9d2b5374c04a7df6d37f41087ab0c0440919e04918dafb294a9",
"image_count": 88,
"coordinates": {
"latitude": 48.841389,
"longitude": 2.37254
},
"location": "Paris, France",
"locality": "Paris",
"distance": "1.3 miles to Notre-Dame Cathedral",
"check_in_hour": 16,
"check_out_hour": 11,
"construction_year": 2006,
"free_wifi": true,
"highlights": [
"Panoramic rooftop sundeck",
"On-site secure parking",
"Suites with private spa facilities"
],
"popular": false,
"provider_count": 16,
"sponsored": false,
"forecast_price": {
"month": "2026-11",
"price_per_night": 143,
"currency": "USD"
}
},
{
"id": 48409,
"position": 3,
"name": "Mercure Paris Bercy Bibliothèque",
"url": "https://www.trivago.com/en-US/oar/hotel-mercure-paris-bercy-bibliothèque?search=100-48409",
"type": "Hotel",
"stars": 4,
"is_superior": false,
"rating": 8.6,
"review_count": 6167,
"image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/partner-images/c4/b0/14dfac884192d534dce285af328e027590093b5cecaa30a547d18ad6f090",
"thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/partner-images/c4/b0/14dfac884192d534dce285af328e027590093b5cecaa30a547d18ad6f090",
"image_count": 101,
"coordinates": {
"latitude": 48.837479,
"longitude": 2.37287
},
"location": "Paris, France",
"locality": "Paris",
"distance": "1.5 miles to Notre-Dame Cathedral",
"check_in_hour": 12,
"check_out_hour": 12,
"free_wifi": true,
"highlights": [
"Seine-view privilege rooms",
"Private seventh-floor terraces",
"Quai de la Gare metro access"
],
"popular": false,
"provider_count": 20,
"sponsored": false,
"forecast_price": {
"month": "2026-11",
"price_per_night": 98,
"currency": "USD"
}
}
]
},
"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 Trivago API overview for every Trivago endpoint.
Authorizations
Query Parameters
Available options:
us, de, uk, fr, es, it, nl Available options:
relevance, price_asc, rating, price_desc Available options:
1, 2, 3, 4, 5 Available options:
7.0, 7.5, 8.0, 8.5 Was this page helpful?
⌘I
Search
curl --request GET \
--url https://api.perceptlayer.com/v1/trivago/search \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.perceptlayer.com/v1/trivago/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/trivago/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.perceptlayer.com/v1/trivago/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/trivago/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/trivago/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/trivago/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/trivago/search")
.header("X-API-Key", "<api-key>")
.asString();{
"endpoint": "trivago.search",
"params": {
"destination_id": "22235",
"check_in": "2026-11-20",
"check_out": "2026-11-23"
},
"response": {
"success": true,
"data": {
"destination_id": 22235,
"check_in": "2026-11-20",
"check_out": "2026-11-23",
"market": "us",
"currency": "USD",
"sort": "relevance",
"total": 2500,
"limit": 35,
"offset": 0,
"has_more": true,
"next_offset": 35,
"city_center": {
"name": "Paris",
"coordinates": {
"latitude": 48.856445,
"longitude": 2.352231
}
},
"price_range": {
"min": 2,
"max": 600
},
"price_histogram": [
{
"from": 2,
"to": 21.92,
"count": 0
},
{
"from": 21.93,
"to": 41.85,
"count": 1
},
{
"from": 41.86,
"to": 61.79,
"count": 4
}
],
"available_filters": [
{
"concept": "416-6",
"hotels": 0
}
],
"hotels": [
{
"id": 49992,
"position": 1,
"name": "Residence Hoteliere Champ de Mars",
"url": "https://www.trivago.com/en-US/oar/residence-hoteliere-champ-de-mars-paris?search=100-49992",
"type": "Hotel",
"stars": 3,
"is_superior": false,
"rating": 8.3,
"review_count": 1284,
"image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/partner-images/3d/35/474372b8841db141133d4541e7305b2c469bda3dc9a0f939838996854564",
"thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/partner-images/3d/35/474372b8841db141133d4541e7305b2c469bda3dc9a0f939838996854564",
"image_count": 28,
"coordinates": {
"latitude": 48.851398,
"longitude": 2.2975
},
"location": "Paris, France",
"locality": "Paris",
"distance": "0.5 miles to Eiffel tower",
"check_in_hour": 14,
"free_wifi": true,
"popular": false,
"provider_count": 7,
"sponsored": false,
"forecast_price": {
"month": "2027-01",
"price_per_night": 91,
"currency": "USD"
}
},
{
"id": 2627611,
"position": 2,
"name": "VIP Paris Yacht Hôtel & Spa",
"url": "https://www.trivago.com/en-US/oar/hotel-vip-paris-yacht-hôtel-spa?search=100-2627611",
"type": "Hotel",
"stars": 4,
"is_superior": false,
"rating": 8.3,
"review_count": 3286,
"image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/hotelier-images/b3/24/ae14c958f9d2b5374c04a7df6d37f41087ab0c0440919e04918dafb294a9",
"thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/hotelier-images/b3/24/ae14c958f9d2b5374c04a7df6d37f41087ab0c0440919e04918dafb294a9",
"image_count": 88,
"coordinates": {
"latitude": 48.841389,
"longitude": 2.37254
},
"location": "Paris, France",
"locality": "Paris",
"distance": "1.3 miles to Notre-Dame Cathedral",
"check_in_hour": 16,
"check_out_hour": 11,
"construction_year": 2006,
"free_wifi": true,
"highlights": [
"Panoramic rooftop sundeck",
"On-site secure parking",
"Suites with private spa facilities"
],
"popular": false,
"provider_count": 16,
"sponsored": false,
"forecast_price": {
"month": "2026-11",
"price_per_night": 143,
"currency": "USD"
}
},
{
"id": 48409,
"position": 3,
"name": "Mercure Paris Bercy Bibliothèque",
"url": "https://www.trivago.com/en-US/oar/hotel-mercure-paris-bercy-bibliothèque?search=100-48409",
"type": "Hotel",
"stars": 4,
"is_superior": false,
"rating": 8.6,
"review_count": 6167,
"image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/partner-images/c4/b0/14dfac884192d534dce285af328e027590093b5cecaa30a547d18ad6f090",
"thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/partner-images/c4/b0/14dfac884192d534dce285af328e027590093b5cecaa30a547d18ad6f090",
"image_count": 101,
"coordinates": {
"latitude": 48.837479,
"longitude": 2.37287
},
"location": "Paris, France",
"locality": "Paris",
"distance": "1.5 miles to Notre-Dame Cathedral",
"check_in_hour": 12,
"check_out_hour": 12,
"free_wifi": true,
"highlights": [
"Seine-view privilege rooms",
"Private seventh-floor terraces",
"Quai de la Gare metro access"
],
"popular": false,
"provider_count": 20,
"sponsored": false,
"forecast_price": {
"month": "2026-11",
"price_per_night": 98,
"currency": "USD"
}
}
]
},
"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>"
}
}