# Skiplagged Hotel Reviews Scraper (`shahidirfan/skiplagged-hotel-reviews-scraper`) Actor

Extract Skiplagged hotel reviews, guest ratings, feedback, review details, hotel information, and traveler experiences at scale. Get structured, analysis-ready data for hotel research, reputation monitoring, sentiment analysis, travel insights, and market intelligence.

- **URL**: https://apify.com/shahidirfan/skiplagged-hotel-reviews-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Travel, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does Skiplagged Hotel Reviews Scraper do?

Skiplagged Hotel Reviews Scraper collects public guest reviews from Skiplagged hotel pages and saves one clean dataset item per review. Add one or more hotel URLs, choose the review order and filter, then export structured guest feedback with the source hotel ID and URL.

It supports standard Skiplagged hotel links, links with a trailing slash, and hotel links that include check-in and check-out dates. The supplied URL is preserved in every matching review record.

### Why use Skiplagged Hotel Reviews Scraper?

- **Reputation monitoring** - Track recent guest feedback and recurring praise or complaints.
- **Hospitality research** - Compare review scores, dates, and guest comments.
- **Sentiment preparation** - Keep positive and negative comments in separate fields.
- **Clean records** - Empty and unavailable values are omitted instead of saved as `null`.
- **Flexible collection** - Run one hotel or a group of hotel URLs with a shared result limit.
- **Automation-ready output** - Schedule runs, download JSON, CSV, Excel, or XML, and connect datasets to Apify integrations.

### What review data can you extract from Skiplagged?

| Field                                                  | Description                                                |
| ------------------------------------------------------ | ---------------------------------------------------------- |
| `hotel_id`                                             | Numeric Skiplagged hotel identifier for the review source. |
| `hotel_url`                                            | Hotel URL supplied in the input.                           |
| `review_id`                                            | Source review identifier.                                  |
| `reviewer_name`                                        | Published reviewer display name.                           |
| `review_rating`                                        | Individual review score.                                   |
| `review_rating_description`                            | Label such as Exceptional, Good, or Poor.                  |
| `review_date`                                          | Review publication date.                                   |
| `positive_review`                                      | Guest's positive feedback when available.                  |
| `negative_review`                                      | Guest's critical feedback when available.                  |
| `positive_review_language`, `negative_review_language` | Published language markers.                                |
| `positive_review_parts`, `negative_review_parts`       | Structured text parts when published.                      |
| `source`                                               | Source website name.                                       |

Fields that Skiplagged does not publish for a particular review are left out of that item.

### How to use Skiplagged Hotel Reviews Scraper

1. Open the Actor in Apify Console.
2. Add one or more public Skiplagged hotel URLs.
3. Select the order and filter you want.
4. Set `results_wanted` and `max_pages`.
5. Run the Actor and inspect the dataset preview.
6. Export the review records or connect the dataset to your workflow.

### Input Parameters

| Parameter            | Type             | Required | Default                 | Description                                                                         |
| -------------------- | ---------------- | -------: | ----------------------- | ----------------------------------------------------------------------------------- |
| `startUrls`          | Array of strings |      Yes | Sample Luxor URL        | One or more Skiplagged hotel URLs.                                                  |
| `sortBy`             | String           |       No | `newest`                | `newest`, `oldest`, `highest_rating`, or `lowest_rating`.                           |
| `filter`             | String           |       No | `all`                   | `all`, `with_text`, `positive`, `negative`, `rating_8_plus`, or `rating_5_or_less`. |
| `results_wanted`     | Integer          |       No | `20`                    | Maximum review records across the run.                                              |
| `max_pages`          | Integer          |       No | `10`                    | Maximum 50-review output pages per hotel.                                           |
| `proxyConfiguration` | Object           |       No | Residential Apify Proxy | Optional Apify Proxy or custom proxy settings.                                      |

The source returns the available review set in one response. `max_pages` is a safety cap on local 50-review batches, which lets you limit larger review runs.

### Usage Examples

#### Basic extraction

Collect the newest 20 reviews from one hotel:

```json
{
    "startUrls": ["https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada"],
    "results_wanted": 20
}
```

#### Multiple hotel URLs

Collect reviews from several hotel pages and stop after 100 records in total:

```json
{
    "startUrls": ["https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada", "https://skiplagged.com/hotel/12984306"],
    "results_wanted": 100,
    "max_pages": 2
}
```

#### Filtered and sorted extraction

Keep reviews scored 8 or higher and show the highest ratings first:

```json
{
    "startUrls": ["https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada/2026-08-24/2026-08-25"],
    "sortBy": "highest_rating",
    "filter": "rating_8_plus",
    "results_wanted": 50,
    "max_pages": 1
}
```

### Sample Output

```json
{
    "hotel_id": 76955,
    "hotel_url": "https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada",
    "review_id": "review_1",
    "reviewer_name": "Ray",
    "review_rating": 9,
    "review_rating_description": "Wonderful",
    "review_date": "2026-08-22",
    "positive_review": "Very clean room and helpful check in staff",
    "negative_review": "A little far down the strip also we had two rooms and they were on separate floors",
    "source": "skiplagged.com"
}
```

### Tips for Best Results

- Use complete public hotel URLs copied from Skiplagged.
- Start with `results_wanted: 20` to confirm the input and output shape.
- Use `with_text` when you need written feedback rather than score-only reviews.
- Use `max_pages` to cap larger collections at predictable 50-review batches.
- Review the dataset preview before scheduling repeated monitoring runs.

### Integrations and exports

Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other formats. Use schedules for recurring monitoring, webhooks for run notifications, or integrations such as Google Sheets, Make, and Zapier for downstream workflows.

### Frequently Asked Questions

#### Can I use a URL with dates?

Yes. Hotel URLs with check-in and check-out segments are accepted, as are base hotel URLs without dates.

#### Can I collect reviews from multiple hotels?

Yes. Add multiple strings to `startUrls`; `results_wanted` applies to the total review dataset across the run.

#### Can I export the results to CSV or Excel?

Yes. Apify supports CSV, Excel, JSON, XML, and other dataset export formats.

#### What happens when a field is unavailable?

The field is omitted from that record. The Actor does not add always-empty or always-null values.

#### Is it legal to collect Skiplagged reviews?

Public data collection can be subject to laws, contracts, and website rules. You are responsible for complying with Skiplagged's terms, applicable law, privacy requirements, and responsible-use practices.

### Related Actors

- [Trip.com Hotel Reviews Scraper](https://apify.com/shahidirfan/trip-com-hotel-reviews-scraper) - Collect hotel reviews and guest insights from Trip.com.
- [HRS Reviews Scraper](https://apify.com/shahidirfan/hrs-reviews-scraper) - Collect structured hotel reviews from HRS.

### Support

For issues or feature requests, use the Actor's Issues tab on Apify or contact the developer through the Apify profile.

### Legal Notice

This Actor is intended for legitimate collection of publicly available hotel review data. Users are responsible for using the output lawfully, respecting source-site terms, and protecting any personal information contained in public reviews.

# Actor input Schema

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

One or more public Skiplagged hotel URLs. Hotel URLs with or without stay dates are supported.

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

Order reviews before they are saved.

## `filter` (type: `string`):

Keep all reviews, reviews with text, or reviews in a rating group.

## `results_wanted` (type: `integer`):

Maximum number of review records to save across all supplied hotel URLs.

## `max_pages` (type: `integer`):

Maximum number of 50-review output pages to process per hotel. The source returns the available review set in one response, so this caps local batching.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy or custom proxy configuration for protected network requests.

## Actor input object example

```json
{
  "startUrls": [
    "https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada"
  ],
  "sortBy": "newest",
  "filter": "all",
  "results_wanted": 20,
  "max_pages": 1,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (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": [
        "https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada"
    ],
    "sortBy": "newest",
    "filter": "all",
    "results_wanted": 20,
    "max_pages": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/skiplagged-hotel-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": ["https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada"],
    "sortBy": "newest",
    "filter": "all",
    "results_wanted": 20,
    "max_pages": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/skiplagged-hotel-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": [
    "https://skiplagged.com/hotel/76955/luxor-las-vegas-nevada"
  ],
  "sortBy": "newest",
  "filter": "all",
  "results_wanted": 20,
  "max_pages": 1
}' |
apify call shahidirfan/skiplagged-hotel-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,shahidirfan/skiplagged-hotel-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/ffmwCxnKfWYXWpP7q/builds/Eubh0UJnCgp06n6yh/openapi.json
