Skip to content
Scrappa Get API key
Trivago API 1 credit/request

Trivago Hotel Search API Documentation

GET https://scrappa.co/api/trivago/search

Trivago Hotel Search API Documentation Search Trivago hotels in one destination: for each hotel the position, id, name, url, type, star class, guest rating and review count, image and thumbnail, coordinates, location, distance to the center, check-in and check-out hours, highlights, number of booking sites and a price estimate for a future month (forecast_price, not a stay price). The response also carries the total hotel count, the price range, a price histogram and the filter counts of the destination. Search rows carry no stay price: use the offers endpoint with a hotel id for prices. Adults, rooms and children ages are accepted, but Trivago returns the same hotels for any group. Pages hold up to 50 hotels; has_more and next_offset drive pagination. Property types combine as alternatives, amenities must all match.

Trivago Hotel Search API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/trivago/search
Auth header
x-api-key
Cost
1 credit/request
destination_id = 1234567890 check_in = example check_out = example
Response preview
200 OK
{
    "data": {
        "sort": "rating",
        "limit": 3,
        "total": 209,
        "hotels": [
            {
                "id": 2531558,
                "url": "https://www.trivago.com/en-US/oar/serviced-apartment-gorki-apartments-berlin?search=100-2531558",
                "name": "Gorki Apartments",
                "type": "Serviced apartment",
                "image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/hotelier-images/44/f6/3a6a16da71a6d82650b2296095b559f0da63ac4f48b8123f6e21aa7e2fc6",
                "stars": 5,
                "rating": 9.6,
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

3 required parameters needed before sending a request.

14 optional filters available.

destination_id integer Required

Trivago destination id from the suggest endpoint. Example: 3848 for Berlin.

Example value 1234567890
check_in string Required

Check-in date, YYYY-MM-DD, today or later. Example: 2027-03-14.

Example value example
check_out string Required

Check-out date, YYYY-MM-DD, after check-in, at most 30 nights. Example: 2027-03-16.

Example value example
adults integer Optional

Number of adults, 1 to 30. Defaults to 2. Search ignores it.

Example value 10
rooms integer Optional

Number of rooms, 1 to 9, not more than adults. Defaults to 1. Search ignores it.

Example value 10
children_ages string Optional

Comma-separated ages of the children, each 0 to 17, up to 6. Example: 5,7.

Example value example
currency string Optional

Three-letter uppercase currency code. Defaults to the currency of the market.

Example value USD
market string Optional

Trivago country site: us, de, uk, fr, es, it or nl. Sets language, currency and prices. Defaults to us.

Example value US
limit integer Optional

Hotels per page, 1 to 50. Defaults to 35.

Example value 10
offset integer Optional

Number of hotels to skip. Use next_offset of the previous page. Defaults to 0.

Example value 10
sort string Optional

relevance, price_asc, price_desc or rating. Defaults to relevance.

Example value relevance
min_price integer Optional

Lowest price per night, whole currency units.

Example value 10
max_price integer Optional

Highest price per night, whole currency units.

Example value 10
stars string Optional

Comma-separated star classes 1 to 5. Example: 4,5.

Example value example
min_rating string Optional

Minimum guest rating: 7.0, 7.5, 8.0 or 8.5.

Example value example
property_type string Optional

Comma-separated property type ids from the filters endpoint. Example: 2,8 (hotels and apartments).

Example value example
amenities string Optional

Comma-separated amenity ids from the filters endpoint. Hotels must offer all of them.

Example value example

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

data meta success
JSON Response
200 OK
{
    "data": {
        "sort": "rating",
        "limit": 3,
        "total": 209,
        "hotels": [
            {
                "id": 2531558,
                "url": "https://www.trivago.com/en-US/oar/serviced-apartment-gorki-apartments-berlin?search=100-2531558",
                "name": "Gorki Apartments",
                "type": "Serviced apartment",
                "image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/hotelier-images/44/f6/3a6a16da71a6d82650b2296095b559f0da63ac4f48b8123f6e21aa7e2fc6",
                "stars": 5,
                "rating": 9.6,
                "popular": true,
                "distance": "0.8 miles to Alexanderplatz",
                "locality": "Berlin",
                "location": "Berlin, Germany",
                "position": 1,
                "free_wifi": true,
                "sponsored": false,
                "thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/hotelier-images/44/f6/3a6a16da71a6d82650b2296095b559f0da63ac4f48b8123f6e21aa7e2fc6",
                "highlights": [
                    "Eclectic apartment living experience",
                    "Personalized in-room wellness",
                    "Rooftop dining terraces",
                    "Family-friendly accommodations",
                    "Central Mitte district location",
                    "Gourmet kitchen facilities",
                    "Premium in-room technology"
                ],
                "coordinates": {
                    "latitude": 52.530602,
                    "longitude": 13.40172
                },
                "image_count": 104,
                "is_superior": false,
                "review_count": 3857,
                "check_in_hour": 15,
                "check_out_hour": 12,
                "forecast_price": {
                    "month": "2027-01",
                    "currency": "USD",
                    "price_per_night": 171
                },
                "provider_count": 18,
                "construction_year": 1910
            },
            {
                "id": 33148366,
                "url": "https://www.trivago.com/en-US/oar/serviced-apartment-mr-s-stil-design-apartments-berlin?search=100-33148366",
                "name": "Mr(s)STiL Design Apartments",
                "type": "Serviced apartment",
                "image": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_800,q_60,w_1200/partner-images/6e/b9/05e3452182293453cb948ea51ab23610e39f98dd717c9ee90e8426355fad",
                "stars": 5,
                "rating": 9.6,
                "popular": false,
                "distance": "2.8 miles to City center",
                "locality": "Berlin",
                "location": "Berlin, Germany",
                "position": 2,
                "free_wifi": true,
                "sponsored": false,
                "thumbnail": "https://imgcy.trivago.com/c_fill,d_dummy.jpeg,e_sharpen:60,f_auto,h_267,q_40,w_400/partner-images/6e/b9/05e3452182293453cb948ea51ab23610e39f98dd717c9ee90e8426355fad",
                "highlights": [
                    "Advanced in-room technology",
                    "Thoughtful family amenities",
                    "Prime West Berlin location",
                    "Gourmet in-room breakfast",
                    "Luxury apartment living experience",
                    "High-end kitchen appliances",
                    "Personalized guest services",
                    "Soundproofed garden view units"
                ],
                "coordinates": {
                    "latitude": 52.49752,
                    "longitude": 13.31834
                },
                "image_count": 29,
                "is_superior": false,
                "review_count": 457,
                "forecast_price": {
                    "month": "2026-11",
                    "currency": "USD",
                    "price_per_night": 155
                },
                "provider_count": 4
            }
        ],
        "market": "us",
        "offset": 0,
        "check_in": "2027-03-14",
        "currency": "USD",
        "has_more": true,
        "check_out": "2027-03-16",
        "city_center": {
            "name": "Berlin",
            "coordinates": {
                "latitude": 52.516136,
                "longitude": 13.378001
            }
        },
        "next_offset": 3,
        "price_range": {
            "max": 600,
            "min": 2
        },
        "destination_id": 3848,
        "price_histogram": [
            {
                "to": 21.92,
                "from": 2,
                "count": 0
            },
            {
                "to": 41.85,
                "from": 21.93,
                "count": 0
            },
            {
                "to": 61.79,
                "from": 41.86,
                "count": 0
            }
        ],
        "available_filters": [
            {
                "hotels": 0,
                "concept": "416-6"
            }
        ]
    },
    "meta": {
        "billable": true,
        "endpoint_family": "hotel_search"
    },
    "success": true
}

Errors

Handle these documented responses before retrying or showing customer-facing failures.

422

Validation Error

A required query parameter is missing or invalid. This response is not billable.

{
    "errors": {
        "destination_id": [
            "The destination id field is required."
        ]
    },
    "message": "The request validation failed"
}
404

Resource Not Found

The destination id is unknown or the offset is past the last hotel. This response is not billable.

{
    "meta": {
        "billable": false,
        "retryable": false,
        "endpoint_family": "hotel_search"
    },
    "error": {
        "code": "NOT_FOUND",
        "message": "The requested Trivago resource was not found."
    },
    "success": false
}
503

Service Unavailable

Trivago could not be reached or answered with an unexpected shape. This response is not billable.

{
    "meta": {
        "billable": false,
        "retryable": true,
        "endpoint_family": "hotel_search"
    },
    "error": {
        "code": "UPSTREAM_UNAVAILABLE",
        "message": "The Trivago API is temporarily unavailable. Please retry."
    },
    "success": false
}

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Try It Live

Test this endpoint in our interactive playground with real data.