# Ihg Reviews Pro Spider (`getdataforme/ihg-reviews-pro-spider`) Actor

The IHG Reviews Spider is an Apify Actor that efficiently scrapes detailed customer reviews from IHG hotel pages, capturing ratings, comments, and user details....

- **URL**: https://apify.com/getdataforme/ihg-reviews-pro-spider.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** Other, Travel, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $18.00 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Ihg Reviews Pro Spider

### Introduction
The Ihg Reviews Spider is a powerful Apify Actor designed to scrape and extract customer reviews from IHG hotel pages efficiently and reliably. It automates the collection of detailed review data, including ratings, comments, and user details, enabling businesses and researchers to gain valuable insights into customer experiences. By leveraging advanced scraping techniques, this Actor ensures high-quality data extraction while respecting website terms and minimizing disruption.

### Features
- **Comprehensive Review Extraction**: Captures full review details such as text, ratings, user nicknames, locations, and submission times from IHG hotel review pages.
- **Flexible URL Input**: Supports multiple URLs for batch processing, allowing users to scrape reviews from various IHG hotels simultaneously.
- **Proxy Integration**: Utilizes Apify's residential proxies to bypass restrictions and ensure anonymous, reliable scraping.
- **Customizable Item Limits**: Set maximum items to process, controlling data volume and runtime for efficient operations.
- **Structured JSON Output**: Delivers clean, machine-readable data in JSON format, ideal for integration with analytics tools or databases.
- **High Reliability**: Built with error-handling mechanisms to manage dynamic web content and potential blocks.
- **Fast and Scalable**: Optimized for performance, handling large volumes of reviews quickly without compromising data accuracy.

### Input Parameters

| Parameter | Type | Required | Description | Example |
|-----------|------|----------|-------------|---------|
| Urls | array | Yes | An array of URLs pointing to IHG hotel review pages to scrape. Each URL must be a valid HTTP/HTTPS link. | ["https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"] |
| proxyConfiguration | object | No | Configuration for proxy servers to hide the scraper's origin, using Apify's proxy system for residential IPs. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
| itemLimit | integer | No | The maximum number of review items to process and extract. | 10 |

### Example Usage

#### Input Configuration
```json
{
  "Urls": [
    "https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"
  ],
  "enddate": "2026-05-15",
  "itemLimit": 20,
  "startdate": "2026-01-13",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
````

#### Output Example

```json
[
  {
    "URL": "https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews",
    "hotel_id": "manmc",
    "user_nickname": "Ian L",
    "review_text": "Warm welcome and excellent, well appointed and clean room.\n\nIt was such a shame the breakfast was a let down.  I was there for 4 night and on the 3rd morning I was told I had the wrong breakfast voucher.  Issues by reception and accepted on the two previous mornings so who was right?  The first morning had the hot food served cold on a refrigerated plate.  The pastries were made of rubber.  The black pudding was cut too thin on two mornings so it is a brittle or perhaps a burnt disc.  They suited management walking looked very important but did not notice what was before their eyes.  I could go on stay here and enjoy it but breakfast elsewhere.",
    "user_rating": 4,
    "review_title": "Good Stay",
    "is_recommended": true,
    "user_location": "Isle of Man",
    "specific_ratings": {
      "StaffService": 5,
      "Cleanliness": 5,
      "RoomComfort": 5,
      "Value": 4,
      "SleepQuality": 5
    },
    "submission_time": "2026-05-14T15:14:28.000+00:00",
    "pros": null,
    "cons": null,
    "member_status": "",
    "check_out_date": null,
    "comments": []
  }
]
```

### Use Cases

- **Market Research and Analysis**: Analyze customer sentiment and trends across IHG hotels to inform marketing strategies.
- **Competitive Intelligence**: Compare review data from multiple IHG properties to benchmark performance against competitors.
- **Price Monitoring**: Track user feedback on value for money to optimize pricing models.
- **Content Aggregation**: Collect reviews for content creation, such as blog posts or social media campaigns.
- **Academic Research**: Gather data for studies on hospitality industry trends and customer behavior.
- **Business Automation**: Integrate review data into dashboards for real-time monitoring of brand reputation.

### Installation and Usage

1. Search for "Ihg Reviews Spider" in the Apify Store
2. Click "Try for free" or "Run"
3. Configure input parameters
4. Click "Start" to begin extraction
5. Monitor progress in the log
6. Export results in your preferred format (JSON, CSV, Excel)

### Output Format

The Actor outputs data in JSON format as an array of objects, each representing a single review. Key fields include `hotel_id` (unique hotel identifier), `user_nickname` (reviewer's name), `review_text` (full review content), `user_rating` (numerical rating out of 5), `review_title` (review headline), `is_recommended` (boolean for recommendation), `user_location` (reviewer's location), `specific_ratings` (object with detailed ratings like sleep quality), `submission_time` (ISO timestamp), `pros` and `cons` (arrays or null), `member_status` (loyalty status), `check_out_date` (date or null), and `comments` (array of response objects with nickname, text, and time). This structure ensures easy parsing and analysis.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: https://getdataforme.com/contact/

We're here to help you get the most out of this Actor!

***

# Actor input Schema

## `Urls` (type: `array`):

The urls for the spider.

## `startdate` (type: `string`):

Select date in format YYYY-MM-DD or relative like '7 days'

## `enddate` (type: `string`):

Select date in format YYYY-MM-DD or relative like '1 day'

## `itemLimit` (type: `integer`):

Specifies the maximum number of items to process.

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

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "Urls": [
    "https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"
  ],
  "itemLimit": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "Urls": [
        "https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"
    ],
    "itemLimit": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/ihg-reviews-pro-spider").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 = {
    "Urls": ["https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"],
    "itemLimit": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/ihg-reviews-pro-spider").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "Urls": [
    "https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"
  ],
  "itemLimit": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call getdataforme/ihg-reviews-pro-spider --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getdataforme/ihg-reviews-pro-spider",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ihg Reviews Pro Spider",
        "description": "The IHG Reviews Spider is an Apify Actor that efficiently scrapes detailed customer reviews from IHG hotel pages, capturing ratings, comments, and user details....",
        "version": "0.0",
        "x-build-id": "ZhV2UKW2ucKona9Rk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~ihg-reviews-pro-spider/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-ihg-reviews-pro-spider",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getdataforme~ihg-reviews-pro-spider/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-ihg-reviews-pro-spider",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getdataforme~ihg-reviews-pro-spider/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-ihg-reviews-pro-spider",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "Urls"
                ],
                "properties": {
                    "Urls": {
                        "title": "Urls",
                        "minItems": 1,
                        "type": "array",
                        "description": "The urls for the spider.",
                        "default": [
                            "https://www.ihg.com/voco/hotels/us/en/manchester/manmc/hoteldetail/hotel-reviews"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "startdate": {
                        "title": "Begin Date",
                        "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
                        "type": "string",
                        "description": "Select date in format YYYY-MM-DD or relative like '7 days'"
                    },
                    "enddate": {
                        "title": "End Date",
                        "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
                        "type": "string",
                        "description": "Select date in format YYYY-MM-DD or relative like '1 day'"
                    },
                    "itemLimit": {
                        "title": "Item Limit",
                        "type": "integer",
                        "description": "Specifies the maximum number of items to process."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Specifies proxy servers that will be used by the scraper in order to hide its origin.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
