# Szallas.hu Reviews Scraper (`knagymate/szallas-reviews-scraper`) Actor

Extract authentic hotel reviews and guest ratings from Szallas.hu. Scrape positive and negative comments, reviewer labels, room types, stay dates, and hotel aggregate scores. Export clean datasets to JSON, CSV, or Excel with cutoff date filters and custom sorting.

- **URL**: https://apify.com/knagymate/szallas-reviews-scraper.md
- **Developed by:** [knagymate](https://apify.com/knagymate) (community)
- **Stats:** 3 total users, 2 monthly users, 82.4% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 reviews

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

## Szallas.hu Hotel Reviews Scraper

Scrape authentic guest feedback from Szallas.hu and turn it into structured, analysis-ready review data for travel research, hospitality benchmarking, and reputation monitoring.

Collect detailed hotel review insights including:

- ⭐ Overall guest ratings and score distributions
- 📝 Positive and negative guest feedback
- 🏨 Hotel-level summary metrics and aggregate review scores
- 📅 Review dates normalized for consistent reporting
- 👤 Reviewer labels, room information, and review metadata
- 🔄 Review pagination across the full available history

Built for teams that need reliable, searchable, and exportable hotel review intelligence from one of the leading accommodation review platforms in Hungary.

***

## ✨ Features

- ✅ Scrape hotel reviews from Szallas.hu property pages
- ✅ Collect multiple properties in a single run via `startUrls`
- ✅ Filter results using `cutoffDate` for incremental updates
- ✅ Limit the result count per hotel with `maxReviewsPerHotel`
- ✅ Sort reviews by newest, oldest, highest score, or lowest score
- ✅ Return both individual review records and a hotel summary record
- ✅ Capture hotel-level aggregate score and review count
- ✅ Preserve raw review payloads for high-fidelity downstream analysis
- ✅ Ready for Apify API workflows and dataset export

***

## 🔍 Supported Szallas.hu Pages

The scraper accepts **valid Szallas.hu hotel detail URLs only**. Standalone hotel IDs, city search pages, or arbitrary search queries are not supported.

**Supported URL formats:**

```text
https://szallas.hu/aquamarina-hotel-visegrad
https://szallas.hu/hotel-villa-volgy-eger
https://szallas.hu/hotel-silver-hajduszoboszlo
```

***

## 🔍 What You Can Use It For

This scraper is designed for:

- Hotel reputation monitoring
- Competitive review benchmarking
- Guest sentiment analysis
- Travel market intelligence
- Content and SEO research
- Hospitality analytics dashboards
- AI and machine learning datasets for travel and accommodation analysis

***

## ⚙️ Input Configuration

| Field | Type | Description |
|---|---|---|
| `startUrls` | array | One or more Szallas.hu hotel detail URLs |
| `maxReviewsPerHotel` | integer | Maximum reviews to return per hotel |
| `cutoffDate` | date | Return only reviews on or after this date (`YYYY-MM-DD`) |
| `sortBy` | string | Ordering: `newestFirst`, `oldestFirst`, `highestRated`, `lowestRated` |
| `alwaysReturnSummary` | boolean | Include a hotel summary record for each URL |

***

## 📥 Example Input

```json
{
  "startUrls": [
    {
      "url": "https://szallas.hu/hotel-villa-volgy-eger"
    }
  ],
  "maxReviewsPerHotel": 100,
  "cutoffDate": "2025-01-01",
  "sortBy": "newestFirst",
  "alwaysReturnSummary": true
}
```

***

## 📦 Output Dataset

The scraper returns a clean review dataset suitable for direct analysis, storage, or integration with business intelligence pipelines.

***

## 🧾 Output Fields

| Field | Description |
|---|---|
| `recordType` | `review` or `summary` |
| `reviewId` | Review identifier |
| `reviewDate` | Review date standardized for reporting |
| `reviewScore` | Overall review score |
| `reviewText` | Positive guest comment |
| `negativeReviewText` | Negative guest comment, when available |
| `reviewerName` | Reviewer label |
| `hotelRoomName` | Room type mentioned in the review |
| `hotelSummary` | Aggregate hotel performance metrics |
| `rawReviewData` | Original review payload returned by the source |

***

## 🏨 Example Review Output

```json
{
  "recordType": "review",
  "reviewId": 4098653,
  "reviewDate": "2026-10-15",
  "reviewScore": 10,
  "reviewText": "Nagyon pozitív élményekkel távoztunk a Villa Völgyből...",
  "negativeReviewText": null,
  "reviewerName": "Fiatal pár",
  "hotelRoomName": "Superior Földszint/Emelet kétágyas szoba (pótágyazható)",
  "hotelSummary": {
    "url": "https://szallas.hu/hotel-villa-volgy-eger",
    "id": "458637",
    "reviewCount": 3919,
    "reviewScore": 9.1,
    "scoreDetails": {
      "all": 9.1
    }
  }
}
```

Example summary record:

```json
{
  "recordType": "summary",
  "hotelSummary": {
    "url": "https://szallas.hu/hotel-villa-volgy-eger",
    "id": "458637",
    "reviewCount": 3919,
    "reviewScore": 9.1,
    "scoreDetails": {
      "all": 9.1
    }
  }
}
```

> ℹ️ Review dates are normalized for clean reporting and analysis.

***

## 🌍 Ideal Use Cases

Perfect for:

- **Hotel reputation monitoring** — Track how guests rate the property over time
- **Competitive benchmarking** — Compare review quality and aggregate scores across accommodations
- **Guest sentiment analysis** — Identify recurring positive and negative themes in feedback
- **Travel market intelligence** — Understand demand, customer satisfaction, and performance trends
- **SEO and content strategy** — Use guest feedback to inform landing pages and editorial content
- **Hospitality analytics** — Combine review data with broader customer experience metrics

***

## 🚀 Integrations

**Platforms:**

- Apify API & Console
- Python
- Node.js
- JavaScript
- Go
- Java

**Workflows:**

- Zapier
- Make.com
- Google Sheets
- Airtable
- Slack
- Discord
- Custom webhooks

**Data warehouses:**

- Google BigQuery
- Snowflake
- Amazon Redshift
- Azure Data Lake
- Airbyte

**AI/ML:**

- OpenAI / GPT
- LangChain
- Hugging Face
- Custom NLP pipelines

**Export formats:**

- JSON
- CSV
- Excel
- API delivery

***

## 📌 Notes

- The scraper is optimized for hotel review collection and scoring workflows.
- Results can be filtered by date and sorted by review ordering to match your research needs.
- Summary records give you a hotel-level view without losing the individual review detail.

# Actor input Schema

## `startUrls` (type: `array`):

List of Szallas.hu hotel detail URLs, for example https://szallas.hu/hotel-villa-volgy-eger.

## `maxReviewsPerHotel` (type: `integer`):

Maximum number of review records to return per hotel.

## `cutoffDate` (type: `string`):

Only include reviews published on or after this date. Format: YYYY-MM-DD. Leave empty to scrape all reviews.

## `sortBy` (type: `string`):

Choose the ordering of reviews returned by the Szallas review endpoint.

## `alwaysReturnSummary` (type: `boolean`):

Include a hotel-level summary record with the aggregate score and review count for each processed hotel.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://szallas.hu/hotel-villa-volgy-eger"
    }
  ],
  "maxReviewsPerHotel": 100,
  "sortBy": "newestFirst",
  "alwaysReturnSummary": true
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://szallas.hu/hotel-villa-volgy-eger"
        }
    ],
    "maxReviewsPerHotel": 100,
    "sortBy": "newestFirst"
};

// Run the Actor and wait for it to finish
const run = await client.actor("knagymate/szallas-reviews-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 = {
    "startUrls": [{ "url": "https://szallas.hu/hotel-villa-volgy-eger" }],
    "maxReviewsPerHotel": 100,
    "sortBy": "newestFirst",
}

# Run the Actor and wait for it to finish
run = client.actor("knagymate/szallas-reviews-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 '{
  "startUrls": [
    {
      "url": "https://szallas.hu/hotel-villa-volgy-eger"
    }
  ],
  "maxReviewsPerHotel": 100,
  "sortBy": "newestFirst"
}' |
apify call knagymate/szallas-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,knagymate/szallas-reviews-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/6dd4JednjjDH3hn5i/builds/HKfFcFfyhNAZjWoi2/openapi.json
