# HomeToGo Scraper \[$1💰] | Vacation Rentals | Villa Prices (`ahmed_jasarevic/hometogo-scraper`) Actor

Scrape HomeToGo vacation rentals: nightly prices, villa & holiday home listings, amenities, ratings and booking links across Europe and the USA. From $0.001 per result — for market research, price monitoring and rental investment analysis.

- **URL**: https://apify.com/ahmed\_jasarevic/hometogo-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## HomeToGo Scraper — Vacation Rental Prices, Villas & Holiday Home Data

Scrape **vacation rental search results and detailed listings from HomeToGo** (hometogo.com) — Europe's leading vacation-rental metasearch engine — and get structured **holiday home prices, villa data, amenities, ratings and booking links** as clean JSON on Apify. The Actor resolves a destination (e.g. `Algarve, Portugal`) via HomeToGo's autocomplete API, pages through the search results, and enriches each listing with detail fields from HomeToGo's internal JSON payloads — **no browser, plain HTTP, from just $0.001 per listing**.

Built for market research, price monitoring and rental investment analysis, it runs on Apify's infrastructure with **API access, scheduling, webhooks, and proxy rotation** built in.

### Main Use Cases

- **Vacation rental market research** — benchmark nightly and total prices per destination, track provider mix, and map rating distributions across Europe and the USA.
- **Price monitoring for short-term rentals** — schedule weekly runs to track holiday home prices by season and compare villa rental prices across regions.
- **Competitive benchmarking for property managers & STR revenue managers** — audit how your listings (and competitors') are presented on HomeToGo: amenities, photos, review counts, provider deeplinks.
- **Travel data startups & analysts** — get a clean, structured feed of HomeToGo vacation rental inventory for a destination, market, or custom listing set without building and maintaining your own scraper.
- **Rental market investment analysis** — evaluate vacation rental markets and destinations before acquiring or listing properties, using real nightly price and amenity signals.

### How It Works

1. Open the Actor in Apify Console and click **Start**.
2. Enter a **destination** (e.g. `Algarve, Portugal`) — the Actor resolves it to a HomeToGo location id via the autocomplete API — **or** paste **direct URLs** in "Direct listing URLs" (rental URLs `https://www.hometogo.com/rental/{offerId}` and search URLs `https://www.hometogo.com/search/{locationId}` both work).
3. Optionally set check-in/check-out dates, adults, and caps (`maxItems`, `maxRequestsPerCrawl`).
4. If the search endpoint is Cloudflare-blocked, enable **Apify proxy** (residential group) in the Proxy configuration input.
5. Run, then download the dataset as **JSON, HTML, CSV or Excel** — or call it via the Apify API.

No browser is used: the Actor reads HomeToGo's own autocomplete, search (`_format=json`) and `/searchdetails` JSON surfaces with **CheerioCrawler**, making it fast and cheap.

### Track Vacation Rental Prices for Market Research

HomeToGo aggregates **millions of offers** from thousands of providers (Airbnb, Vrbo, Booking.com and local property managers), so one destination search returns a broad cross-provider sample of the market. Use the price and `priceDisplay` fields to track nightly "from" prices, and pair runs with the check-in/check-out inputs to measure **high season vs. shoulder season** spreads. Because records include `provider`, `rating`, `reviewCount` and `propertyType`, you can slice the data by provider, quality tier and property segment straight out of the dataset — input for a vacation rental price monitoring dashboard, a holiday home price index, or a market research tool.

### Compare Holiday Home Listings Across Regions

Run the Actor once per destination (or use Apify's scheduler to run a batch) to compare **villa rental prices, beach house prices and cottage prices across regions** — e.g. Algarve vs. Costa del Sol, Tuscany vs. Provence, or Florida vs. Hawaii. Each record carries `bedrooms`, `bathrooms`, `persons`, `squareMeter`, `latitude`/`longitude` and `amenities`, so you can normalize listings by size and feature set before comparing. The `directUrls` input also lets you benchmark a **fixed set of specific listings** over time — ideal for tracking a competitor's vacation rental pricing week over week.

### Input

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `destination` | string | Search destination, e.g. `Algarve, Portugal` or `Miami Beach, Florida`. Resolved via HomeToGo's autocomplete API. Required unless `directUrls` is set. | — |
| `directUrls` | array | Scrape specific listings directly, one per line. Accepts rental URLs (`/rental/{offerId}` → full detail scrape) and search URLs (`/search/{locationId}` → items are picked up from that search first). Skips the destination search. | `[]` |
| `checkIn` | string | Optional check-in date in `YYYY-MM-DD` format. Leave empty for flexible dates. | — |
| `checkOut` | string | Optional check-out date in `YYYY-MM-DD` format. Leave empty for flexible dates. | — |
| `adults` | integer | Number of adult guests for the search. | `2` |
| `maxItems` | integer | Maximum number of rental listings to scrape (results + details). Free users are capped at 10 items. | `100` |
| `includeOfferDetails` | boolean | Fetch each listing's detail page for extra fields (bedrooms, bathrooms, ratings, provider, description, amenities, rooms). Off = faster/cheaper search-level data only (1 request per search page instead of 1 per listing). Direct rental URLs are always fully scraped regardless. | `true` |
| `maxRequestsPerCrawl` | integer | Hard safety cap on the total number of HTTP requests made by this run. | `500` |
| `proxy` | object | Standard Apify proxy picker. Enable + choose a residential group if Cloudflare blocks direct access. | off |

### Output

Each dataset item is one rental listing. In **search-level mode** (`includeOfferDetails: false`, billed `result`) records contain: `offerId`, `title`, `destination`, `price`, `priceDisplay`, `currency`, `bedrooms`, `persons`, `propertyType`, `latitude`, `longitude`, `images`, rating summary and `bookingUrl`/`detailUrl` — pushed straight from the search payload (~30 listings per request).

In **detail mode** (`includeOfferDetails: true`, billed `offer-detail`) records are enriched with the full field set: `location`, `bathrooms`, `squareMeter`, `amenities`, `niceId`, `rentalObjectId`, `provider`, `providerId`, `checkInTime`, `checkOutTime`, `petFriendly`, `description`, `rooms` and the complete rating summary (`rating`, `starValue`, `maxStarValue`, `reviewCount`, `reviewsWithTextCount`, `ratingLabel`).

### Example Input JSON

```json
{
  "destination": "Algarve, Portugal",
  "checkIn": "2027-06-19",
  "checkOut": "2027-06-26",
  "adults": 2,
  "maxItems": 100,
  "includeOfferDetails": true
}
```

### Example Output JSON

```json
{
  "offerId": "c8c94ed9aa854a97",
  "niceId": "HLPYHSF",
  "rentalObjectId": "cb9b94547dc255da",
  "title": "Vacation home with private pool & BBQ | Water view",
  "destination": "Kahaluu-Keauhou, North Kona, United States",
  "price": 412,
  "priceDisplay": "€412",
  "currency": "€",
  "bedrooms": 3,
  "bathrooms": 2,
  "persons": 6,
  "propertyType": "House",
  "squareMeter": "186 m²",
  "amenities": ["Private pool", "Air conditioning", "WiFi", "Parking", "Grill", "Balcony"],
  "latitude": 19.555658,
  "longitude": -155.964284,
  "images": ["https://cdn.hometogo.net/large/v1/349/4af/efb9947c26a19d14047ab7743b.jpg"],
  "rating": "9.9",
  "starValue": "5.0",
  "maxStarValue": "5.0",
  "reviewCount": 89,
  "reviewsWithTextCount": 43,
  "ratingLabel": "Outstanding",
  "provider": "Kona Coast Vacations",
  "providerId": "streamline",
  "bookingUrl": "https://www.hometogo.com/deeplink/?params=...",
  "detailUrl": "https://www.hometogo.com/rental/c8c94ed9aa854a97",
  "checkInTime": "04:00pm",
  "checkOutTime": "11:00am",
  "petFriendly": false,
  "description": "Oceanfront Keauhou Home w/ Pool + Walk to Pickleball...",
  "rooms": []
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Integrations & Scheduling — Weekly Rental Price Monitoring

The Actor runs entirely on Apify, so it plugs into your existing stack without extra infrastructure:

- **API access** — call it programmatically and fetch results via the Apify API, or use the Python/JavaScript SDK.
- **Scheduler** — set up a weekly or monthly schedule to auto-track vacation rental prices by destination and compare holiday home pricing across seasons.
- **Webhooks** — trigger your own pipeline (database, dashboard, notification) whenever a run finishes.
- **Integrations** — connect via Make, Zapier, n8n, or Google Sheets through Apify integrations to feed a vacation rental market research tool or price monitoring dashboard.

### Related Actors

- [**Airbnb Scraper**](https://apify.com/tri_angle/airbnb-scraper) — the most-used vacation rental scraper on the Apify Store: listings, prices, ratings and host details from Airbnb.
- [**Booking Scraper**](https://apify.com/voyager/booking-scraper) — accommodation and hotel data from Booking.com: prices, ratings, addresses and reviews.
- [**Apartments.com Scraper**](https://apify.com/ahmed_jasarevic/apartments-scraper) — US rental listing data from Apartments.com, complements the vacation-rental datasets with long-term rentals.
- [**TripAdvisor Reviews Scraper**](https://apify.com/ahmed_jasarevic/tripadvisor-scraper) — hotel and restaurant reviews for the travel/hospitality side of your research.

### FAQ

**Is there an official HomeToGo API?**
Yes — HomeToGo has an official GraphQL API (`www.hometogo.com/public/api`) for affiliates and partners, but it requires a partner agreement, an API key and whitelisted origins. It is not self-serve. This Actor fills the gap: anyone can pull the same aggregate vacation rental inventory by destination and dates, paying only per result.

**Is this a good alternative to scraping Airbnb or Vrbo separately?**
HomeToGo is a metasearch engine, so its results already aggregate offers from Airbnb, Vrbo, Booking.com and hundreds of local providers. One run gives you a cross-provider view of a market instead of a single-platform feed — useful for vacation rental market research and price comparison.

**How do I scrape vacation rental prices?**
Enter a destination (optionally with check-in/check-out dates) and run. Price and `priceDisplay` fields hold the nightly "from" price shown in search results. Set `includeOfferDetails: false` in fast mode for a cheap market scan, or `true` for enriched records.

**Does it use a browser / is it fast and cheap?**
No browser — plain HTTP via CheerioCrawler against HomeToGo's JSON surfaces. Compute usage is minimal (256 MB) and billing is per-result, so small runs cost cents.

**Can I track specific listings over time?**
Yes — paste listing URLs in `directUrls` and schedule weekly runs to benchmark how a property's pricing changes.

**What about review texts?**
Individual review texts are loaded client-side on HomeToGo's reviews page and are not present in the embedded JSON. This Actor extracts the full ratings summary (score, star value, review count, label); the `reviews` field is reserved for a future review-text extension.

### SEO Keywords

hometogo scraper, scrap hometogo, vacation rental data, vacation rental prices, holiday home prices, short-term rental data, vacation rental market research, villa rental prices, beach house rental prices, travel rental price comparison, vacation rental price monitoring, vacation rental analytics, holiday accommodation database, vacation rental market analysis, holiday home market analysis, airbnb alternative data, hometogo api alternative, ski resort rental prices, long stay rental data, villa rental market research

### For AI Agents & LLM Apps

- **Purpose** — provide structured vacation rental data (search results and listing details) from HomeToGo for market research, price comparison, and rental market analysis powered by AI agents.
- **Minimal input** — call the Actor with just `{"destination": "Algarve, Portugal"}` (or a `directUrls` array) and read the dataset. Optional: `checkIn`, `checkOut`, `adults`, `maxItems`.
- **Output fields** — each item is one listing: `offerId`, `title`, `destination`, `price`, `priceDisplay`, `currency`, `bedrooms`, `bathrooms`, `persons`, `propertyType`, `squareMeter`, `amenities`, `latitude`, `longitude`, `images`, rating summary (`rating`, `starValue`, `reviewCount`, `ratingLabel`), `provider`, `bookingUrl`, `detailUrl`, `checkInTime`, `checkOutTime`, `petFriendly`, `description`, `rooms`.
- **Behaviors** — deterministic, one record per listing, stable field names; rate-limited HTTP requests; optional Apify proxy for blocked endpoints; free users capped at 10 items per run.
- **Billing** — pay-per-result: **$0.001** per search-level result (`includeOfferDetails: false`) and **$0.0018** per detail-enriched record (`includeOfferDetails: true` or direct rental URLs), plus a per-run start event. A listing is billed exactly once.

**Legality** — scraping may be subject to HomeToGo's Terms of Service and applicable law. Use responsibly, respect rate limits, and check the site's `robots.txt`. This Actor is provided as-is for research and benchmarking.

**Known limitations** — `price` is the nightly "from" price shown on the search listing; the full price breakdown (per-night vs total, taxes) is loaded client-side and is not available without a browser. Prices are date-dependent. Some listings may lack certain fields (e.g. no reviews yet → `reviewCount: 0`). The search JSON shape can change if HomeToGo A/B-tests its frontend — the parser is defensive and tries several paths.

### Legal & Compliance Disclaimer

This Actor is an **independent tool** and is **not affiliated with, endorsed by, or sponsored by HomeToGo** or its parent companies. It accesses **publicly available** data on hometogo.com. The dataset contains **no personal data** — it is limited to public rental listing information (property details, prices, ratings, providers and public booking links); no emails, phone numbers or guest data are collected or exported. You are solely responsible for ensuring your use complies with HomeToGo's Terms of Service, applicable laws, and `robots.txt`, and for how you use or redistribute the data.

Found a bug or want a custom feature? Open an issue on the Actor's Issues tab or contact us about custom scraping solutions.

# Actor input Schema

## `destination` (type: `string`):

Search destination, e.g. "Paris, France" or "Miami Beach, Florida". Required unless you provide direct listing URLs below. Resolved via HomeToGo's autocomplete API.

## `directUrls` (type: `array`):

Optional. Scrape specific HomeToGo listings directly — paste rental URLs (e.g. https://www.hometogo.com/rental/7efd3382047ec65cb803dc1a34d67950), one per line. When provided, the destination search is skipped and each URL is scraped as a full listing (billed as 'offer-detail').

## `checkIn` (type: `string`):

Optional check-in date in YYYY-MM-DD format. Leave empty for flexible dates.

## `checkOut` (type: `string`):

Optional check-out date in YYYY-MM-DD format. Leave empty for flexible dates.

## `adults` (type: `integer`):

Number of adult guests for the search.

## `maxItems` (type: `integer`):

Maximum number of rental listings to scrape. Free users are capped at 10 items.

## `includeOfferDetails` (type: `boolean`):

Fetch each listing's detail page for extra fields (bedrooms, ratings, provider, description). When off, only search-level data is returned (1 request per search page instead of 1 per listing). Rented listings are always fully scraped regardless of this setting.

## `maxRequestsPerCrawl` (type: `integer`):

Hard cap on the total number of HTTP requests made by this run (safety limit).

## `proxy` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "destination": "Paris, France",
  "directUrls": [],
  "checkIn": "2026-07-01",
  "checkOut": "2026-07-08",
  "adults": 2,
  "maxItems": 100,
  "includeOfferDetails": false,
  "maxRequestsPerCrawl": 500,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "destination": "Paris, France",
    "directUrls": [],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/hometogo-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "destination": "Paris, France",
    "directUrls": [],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/hometogo-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "destination": "Paris, France",
  "directUrls": [],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/hometogo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/hometogo-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/w8bAWHSwQdCRutS32/builds/DBy7mIDywxKcF4ecV/openapi.json
