# HomeToGo Rental Search API Documentation

<p><strong>HomeToGo Rental Search API Documentation</strong> Search HomeToGo vacation rentals for one destination and stay. Each offer carries the title, type, bedrooms, bathrooms, guest capacity, size, guest rating, location, coordinates, pictures, amenities, provider, instant booking flag and the link to the offer page. When HomeToGo holds a price for the stay, the offer carries a price object with the price per night, the price for the stay, the fees and the currency. When the stay is not available, there is no price object and availability says why. Filters for price per night, property type, bedrooms, bathrooms, amenities, minimum rating and sale type are checked on every returned offer: an offer that cannot be checked is not returned, so the result may hold fewer offers than asked. Sorting by price or rating is exact for the page. A page is a sample of up to 300 offers from a ranking that shifts between calls; limit and offset slice the sample, page asks for the next sample. total_in_page counts the checked offers of the sample, upstream_total is the unfiltered HomeToGo count for the destination and the filters it supports. Searches with filters or a price or rating sort read details and prices of the whole sample and take a few seconds longer. One request is one lookup.</p>

- **Documentation:** [https://scrappa.co/docs/hometogo-api/hometogo_search](https://scrappa.co/docs/hometogo-api/hometogo_search)
- **API group:** HomeToGo API
- **Endpoint:** `GET https://scrappa.co/api/hometogo/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 |
| --- | --- | --- | --- |
| `location_id` | string | No | HomeToGo destination id from the suggest endpoint. Example: 5460aead9281b for Paris. Send this or destination. |
| `destination` | string | No | Destination name as in the HomeToGo address, e.g. paris, munich or new-york. Send this or location_id. |
| `check_in` | string | Yes | Check-in date, YYYY-MM-DD, today or later. Example: 2027-03-14. |
| `check_out` | string | Yes | Check-out date, YYYY-MM-DD, after check-in, at most 30 nights. Example: 2027-03-18. |
| `adults` | integer | No | Number of adults, 1 to 16. Defaults to 2. |
| `children` | integer | No | Number of children, 0 to 10. Children count as guests. Defaults to 0. |
| `currency` | string | No | Price currency: EUR, USD, GBP, CHF, SEK, DKK, NOK, PLN, CZK, CAD or AUD. Defaults to EUR. |
| `limit` | integer | No | Offers per response, 1 to 50. Defaults to 20. |
| `offset` | integer | No | Offers to skip inside the page sample, 0 to 299. Use next_offset of the previous response. Defaults to 0. |
| `page` | integer | No | Sample page, 1 to 50. Page 2 is the next sample of 300 offers, not an offset. Defaults to 1. |
| `sort` | string | No | recommended, best_value, price_asc, price_desc or rating. Defaults to recommended. Offers without a price or rating come last. |
| `min_price` | integer | No | Lowest price per night in the chosen currency. Offers without a price for the stay are not returned. |
| `max_price` | integer | No | Highest price per night in the chosen currency, at least min_price. |
| `type` | string | No | Comma-separated property types: condo, holiday_apartment, holiday_house, hotel, bed_and_breakfast, castle, dedicated_room, holiday_park, boat, farm, hostel, pension, other_accommodation, camping_suite, shared_room. Types are alternatives. |
| `bedrooms` | integer | No | Minimum number of bedrooms, 1 to 20. |
| `bathrooms` | integer | No | Minimum number of bathrooms, 1 to 20. |
| `amenities` | string | No | Comma-separated amenities that must all be present: internet, garage, kitchen, pets_allowed, terrace, tv, pool, smoking_not_allowed, dishwasher, washing_machine_available, no_dogs, whirlpool, smoking_allowed, air_conditioning, garden, fireplace, microwave, sauna, cot, barbecue, accessible, fenced, detached. |
| `rating` | string | No | Minimum guest rating on the 5 star scale: 3, 3.5, 4, 4.5 or 5. Offers without a rating are not returned. |
| `sale_type` | string | No | always_instantly_bookable or always_on_request. |

## Example response

```json
{
    "data": {
        "page": 1,
        "sort": "price_asc",
        "limit": 1,
        "adults": 2,
        "nights": 7,
        "offers": [
            {
                "geo": {
                    "latitude": 48.8708159,
                    "longitude": 2.2805209
                },
                "url": "https://www.hometogo.com/rental/520ae67572d76712",
                "type": "Apartment",
                "price": {
                    "fees": 0,
                    "total": 1364,
                    "nights": 7,
                    "source": "stay_quote",
                    "currency": "EUR",
                    "per_night": 194.86,
                    "total_excluding_fees": 1364,
                    "free_cancellation_until": "2026-11-01T00:00:00+00:00"
                },
                "title": "Apartment",
                "images": [
                    {
                        "alt": "Apartment with 2 bedrooms for 2 persons - 0",
                        "large": "https://cdn.hometogo.net/large/v1/828/4b4/9d7d687992e72eac55a4f9841f.jpg",
                        "small": "https://cdn.hometogo.net/small/v1/828/4b4/9d7d687992e72eac55a4f9841f.jpg",
                        "medium": "https://cdn.hometogo.net/medium/v1/828/4b4/9d7d687992e72eac55a4f9841f.jpg"
                    },
                    {
                        "alt": "Apartment with 2 bedrooms for 2 persons - 1",
                        "large": "https://cdn.hometogo.net/large/v1/10f/f22/d47b3f80f76175cf078923cc3b.jpg",
                        "small": "https://cdn.hometogo.net/small/v1/10f/f22/d47b3f80f76175cf078923cc3b.jpg",
                        "medium": "https://cdn.hometogo.net/medium/v1/10f/f22/d47b3f80f76175cf078923cc3b.jpg"
                    }
                ],
                "rating": {
                    "label": "Outstanding",
                    "stars": 5,
                    "review_count": 11
                },
                "nice_id": "HUYN3CA",
                "bedrooms": 2,
                "location": {
                    "area": "Porte Dauphine",
                    "city": "Paris",
                    "region": "\u00cele-de-France",
                    "country": "France",
                    "district": "16th arrondissement"
                },
                "offer_id": "520ae67572d76712",
                "position": 1,
                "provider": "HomeToGo",
                "amenities": [
                    {
                        "code": "washing_machine_available",
                        "label": "Washing machine"
                    },
                    {
                        "code": "tv",
                        "label": "TV"
                    },
                    {
                        "code": "internet",
                        "label": "WiFi"
                    },
                    {
                        "code": "no_dogs",
                        "label": "No pets"
                    },
                    {
                        "code": "kitchen",
                        "label": "Kitchen"
                    }
                ],
                "bathrooms": 1,
                "max_guests": 2,
                "availability": "available",
                "instant_booking": true
            }
        ],
        "offset": 0,
        "check_in": "2026-12-01",
        "children": 0,
        "currency": "EUR",
        "has_more": true,
        "check_out": "2026-12-08",
        "next_page": 2,
        "destination": "Paris",
        "location_id": "5460aead9281b",
        "next_offset": 1,
        "has_next_page": true,
        "total_in_page": 9,
        "upstream_total": 622
    },
    "meta": {
        "billable": true,
        "endpoint_family": "rental_search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required query parameter is missing or invalid. This response is not billable. |
| 404 | Resource Not Found | The destination is unknown. This response is not billable. |
| 503 | Service Unavailable | HomeToGo could not be reached or blocked the request. Retry later. This response is not billable. |
| 502 | Unexpected Answer | HomeToGo answered with a shape this API does not know. This response is not billable. |

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