# Trip.com Flight + Hotel Packages API Documentation

<p><strong>Trip.com Flight + Hotel Packages API Documentation</strong> List hotels at a destination priced together with a round-trip flight. Each hotel has the room, breakfast and cancellation terms, the hotel total for the stay, the flight total and the package total, all as numbers in the requested currency. The answer also shows the recommended flights (outbound and return, local times in ISO 8601). Departure date and return date are the hotel check-in and check-out. city_id is the hotel city id of the destination from the suggest endpoint, e.g. 192 for Paris. 10 hotels per page, up to page 3. Only Paris and London are proven; other cities may answer 503 without charge. Package prices are not plain hotel prices. A hotel whose totals do not add up is left out. Cost: 3 credits per successful call. Failed calls cost 0.</p>

- **Documentation:** [https://scrappa.co/docs/tripcom-api/tripcom_packages_search](https://scrappa.co/docs/tripcom-api/tripcom_packages_search)
- **API group:** Trip.com API
- **Endpoint:** `GET https://scrappa.co/api/tripcom/packages/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 |
| --- | --- | --- | --- |
| `from` | string | Yes | Departure IATA city code, uppercase. Example: LON. |
| `to` | string | Yes | Arrival IATA city code, uppercase. Example: PAR. |
| `city_id` | string | Yes | Hotel city id of the destination from the suggest endpoint. Example: 192. |
| `date` | string | Yes | Departure date and hotel check-in, YYYY-MM-DD, today or later. Example: 2027-03-14. |
| `return_date` | string | Yes | Return date and hotel check-out, YYYY-MM-DD, 1 to 30 nights after date. Example: 2027-03-17. |
| `adults` | integer | No | Number of adults, 1 to 4. Defaults to 1. One room. |
| `page` | integer | No | Hotel page, 1 to 3, 10 hotels per page. Defaults to 1. |
| `currency` | string | No | Price currency: USD, EUR or GBP. Defaults to USD. |

## Example response

```json
{
    "data": {
        "to": "PAR",
        "date": "2027-03-14",
        "from": "LON",
        "page": 1,
        "count": 1,
        "adults": 2,
        "flight": {
            "return": [],
            "currency": "EUR",
            "outbound": [
                {
                    "airline": "Air France",
                    "arrival": {
                        "city": "Paris",
                        "time": "2027-03-14T17:05:00",
                        "airport": "Paris Charles de Gaulle Airport",
                        "airport_code": "CDG"
                    },
                    "departure": {
                        "city": "London",
                        "time": "2027-03-14T14:45:00",
                        "airport": "Heathrow Airport",
                        "airport_code": "LHR"
                    },
                    "flight_number": "AF1781",
                    "duration_minutes": 80
                }
            ],
            "price_total": 278.6
        },
        "hotels": [
            {
                "name": "Hotel R\u00e9gence Etoile",
                "score": 9.2,
                "stars": 4,
                "city_id": "192",
                "currency": "EUR",
                "hotel_id": "718146",
                "location": "Near Arc de Triomphe de l\u2019Etoile, Charles de Gaulle - \u00e9toile Metro Station",
                "image_url": null,
                "room_name": "Classic Room",
                "hotel_total": 732.6,
                "flight_total": 278.6,
                "package_total": 1011.2,
                "reviews_count": 562,
                "free_cancellation": true,
                "breakfast_included": true,
                "cancellation_policy": null
            }
        ],
        "nights": 3,
        "city_id": "192",
        "currency": "EUR",
        "has_more": true,
        "return_date": "2027-03-17"
    },
    "meta": {
        "credits": 3,
        "billable": true,
        "endpoint_family": "package_search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A query parameter is missing or invalid. This response is not billable. |
| 404 | Resource Not Found | The id is unknown. This response is not billable. |
| 502 | Unexpected Upstream Answer | Trip.com answered with a page or payload Scrappa cannot read. This response is not billable. Retry later. |
| 503 | Upstream Unavailable | Trip.com did not answer after one retry. This response is not billable. Retry later. |

## 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)
