# Expedia Hotel Search API Documentation

Search Expedia hotels for a destination region and stay dates: for each hotel the property id, position, name, area, public url, guest rating (0 to 10) with label and review count, total stay price, original price, price per night in USD, remaining-rooms message, photos, free cancellation flag and amenity preview. Search cards carry no star class: read it from the hotel detail endpoint. Page with offset and limit; has_more is true while more hotels exist and next_offset is the next offset. A destination with no hotels is a successful response with an empty list.

- **Documentation:** [https://scrappa.co/docs/expedia-api/expedia_hotel_search](https://scrappa.co/docs/expedia-api/expedia_hotel_search)
- **API group:** Expedia API
- **Endpoint:** `GET https://scrappa.co/api/expedia/hotels/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `region_id` | string | Yes | Numeric Expedia region id from the destination endpoint. Example: 2734. |
| `region_name` | string | No | Region name from the destination endpoint, up to 120 characters. Example: Paris, France. |
| `check_in` | string | Yes | Check-in date as YYYY-MM-DD, today or later. Example: 2026-11-10. |
| `check_out` | string | Yes | Check-out date as YYYY-MM-DD, after check-in, at most 28 nights. Example: 2026-11-12. |
| `adults` | integer | No | Number of adults, 1 to 8. Defaults to 2. |
| `children` | string | No | Comma separated child ages, 0 to 17, up to 4 children. Example: 5,9. |
| `sort` | string | No | Sort order: recommended, price_low_to_high or review. Defaults to recommended. |
| `limit` | integer | No | Hotels per page, 1 to 50. Defaults to 20. |
| `offset` | integer | No | Number of hotels to skip, 0 to 450. Defaults to 0. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/expedia/hotels/search?region_id=2734&region_name=Paris%2C+France&check_in=2026-11-10&check_out=2026-11-12&adults=2&limit=10"
```

## Example response

```json
{
    "success": true,
    "data": {
        "region_id": "2734",
        "check_in": "2026-11-10",
        "check_out": "2026-11-12",
        "hotels": [
            {
                "property_id": "891396",
                "position": 3,
                "name": "Grand Hotel De Turin",
                "area": "Paris",
                "url": "https://www.expedia.com/Paris-Hotels-Grand-Hotel-De-Turin.h891396.Hotel-Information?chkin=2026-11-10&chkout=2026-11-12&rm1=a2",
                "guest_rating": 10,
                "guest_rating_label": "Exceptional",
                "review_count": 27,
                "total_price": 316,
                "original_price": 349,
                "price_per_night": 133,
                "scarcity_message": "We have 5 left at this price",
                "image_urls": [
                    "https://images.trvl-media.com/lodging/1000000/900000/891400/891396/8fe0b59f.jpg?impolicy=fcrop&w=456&h=286"
                ],
                "free_cancellation": false,
                "sponsored": false,
                "amenities_preview": [
                    "bar",
                    "breakfast",
                    "internet-access"
                ],
                "currency": "USD"
            }
        ],
        "total_results": 513,
        "offset": 0,
        "has_more": true,
        "next_offset": 10
    },
    "meta": {
        "endpoint_family": "hotel_search",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required query parameter is missing or invalid. This response is not billable. |
| 503 | Upstream Unavailable | The upstream service is temporarily unavailable. Please retry shortly. |
| 503 | Invalid Source Response | Expedia answered with a shape that no longer matches the documented contract. This response is not billable. |
| 503 | Service Unavailable | The upstream service is temporarily unavailable. Please retry shortly. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
