# Expedia Hotel Room Offers API Documentation

Retrieve the room offers of one Expedia hotel for stay dates: for each room the unit id, name, features, highlights, amenities, photos and rate plans with total price, original price, price per night in USD, cancellation terms and remaining-rooms message. A hotel without availability for the dates is a successful response with an empty room list. An unknown property id returns 404 and is not billed.

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

## 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 |
| --- | --- | --- | --- |
| `property_id` | string | Yes | Numeric Expedia property id from the hotel search endpoint. Example: 891396. |
| `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. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/expedia/hotels/rooms?property_id=891396&check_in=2026-11-10&check_out=2026-11-12&adults=2"
```

## Example response

```json
{
    "success": true,
    "data": {
        "property_id": "891396",
        "check_in": "2026-11-10",
        "check_out": "2026-11-12",
        "currency": "USD",
        "rooms": [
            {
                "unit_id": "33122",
                "name": "Classic Double Room",
                "features": [
                    "City view",
                    "108 sq ft",
                    "1 bedroom",
                    "Sleeps 2",
                    "1 Queen Bed",
                    "Free WiFi"
                ],
                "highlights": [
                    "Heating",
                    "Blackout drapes/curtains",
                    "Premium bedding"
                ],
                "amenities": [
                    "Hair dryer",
                    "Private bathroom",
                    "Free WiFi"
                ],
                "images": [
                    "https://images.trvl-media.com/lodging/1000000/900000/891400/891396/56eebd51.jpg?impolicy=fcrop&w=1200&h=800"
                ],
                "rate_plans": [
                    {
                        "rate_plan_id": "393644063",
                        "total_price": 316,
                        "original_price": 349,
                        "price_per_night": 133,
                        "cancellation": "Non-Refundable",
                        "scarcity_message": "We have 5 left"
                    },
                    {
                        "rate_plan_id": "68640",
                        "total_price": 349,
                        "original_price": 385,
                        "price_per_night": 147,
                        "cancellation": "Fully refundable before Nov 8",
                        "scarcity_message": "We have 5 left"
                    }
                ]
            }
        ]
    },
    "meta": {
        "endpoint_family": "room_offers",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required query parameter is missing or invalid. This response is not billable. |
| 404 | Property Not Found | The Expedia property does not exist. 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)
