Skyscanner Hotels Review Scraper avatar

Skyscanner Hotels Review Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Skyscanner Hotels Review Scraper

Skyscanner Hotels Review Scraper

Extract Skyscanner hotel reviews, guest ratings, feedback, scores, and property insights at scale. Collect structured hotel review data for travel research, sentiment analysis, reputation monitoring, market intelligence, and hospitality analytics.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Skyscanner Hotels Review Scraper

Collect public traveller reviews from Skyscanner hotel pages and turn them into a clean, analysis-ready dataset. Add one or more hotel URLs, choose how reviews should be sorted or filtered, and receive structured review records that can be exported as JSON, CSV, Excel, XML, or RSS.

The Actor is designed for hospitality research, reputation monitoring, competitive benchmarking, travel content analysis, and recurring data workflows. Every dataset item represents one unique review. Empty and unavailable fields are omitted, so downstream tools do not need to clean columns filled with null values.

Features

  • Multiple hotel URLs: Process one or more public Skyscanner hotel detail pages in a single run.
  • Flexible sorting: Collect recommended, newest, highest-rated, or lowest-rated reviews first.
  • Traveller rating filters: Focus on excellent, good, average, or below-average feedback.
  • Guest type filters: Select reviews from families, couples, solo travellers, business travellers, groups, or other guests.
  • Language and locale controls: Request translated labels in your preferred locale and narrow results by review language.
  • Provider filtering: Select reviews supplied by Tripadvisor, Expedia, Hotels.com, or Trip.com.
  • Topic filters: Find reviews about rooms, service, cleanliness, location, transport, food, WiFi, pools, parking, and other common hotel topics.
  • Photo-only reviews: Request reviews that include traveller images.
  • Pagination controls: Set both the desired total number of results and a page limit per hotel.
  • Duplicate-safe output: Duplicate hotel inputs and repeated review records are automatically removed.
  • Clean datasets: Null values, empty strings, empty arrays, and empty objects are excluded from saved records.
  • Production controls: Built-in retries, proxy support, clear run summaries, and safe limits make the Actor suitable for scheduled jobs.

Use cases

Hotel reputation monitoring

Track recent guest feedback for a property and identify changes in ratings, service comments, room quality, cleanliness, or facilities. Schedule the Actor to build regular snapshots for an internal dashboard.

Competitive benchmarking

Collect comparable review datasets for competing hotels in the same market. Compare review volume, ratings, guest segments, providers, and recurring topics without manually copying reviews from individual pages.

Guest sentiment research

Export review text for sentiment analysis, topic classification, summarization, or qualitative research. Filters can isolate a specific traveller segment or subject before the data enters your analysis pipeline.

Travel content and market intelligence

Research what guests value in a destination, hotel category, or property type. Review text can support editorial planning, destination guides, service audits, and market reports.

Operations and service improvement

Focus on low-rated feedback or a subject such as rooms, bathrooms, meals, or transport. Teams can use this narrower dataset to prioritize recurring operational issues.

Input

Open the Actor input form, add at least one Skyscanner hotel URL, and adjust only the controls you need.

FieldTypeRequiredDefaultDescription
startUrlsArrayYesSample hotel URLOne or more public Skyscanner hotel detail URLs. Tracking parameters are accepted and removed from the saved canonical URL.
sortByStringNorecommendedReview order: recommended, rating_high_to_low, rating_low_to_high, or most_recent.
localeStringNoen-GBLocale for translated review content and labels, such as en-GB, en-US, es-ES, or de-DE.
travellerRatingStringNoallRating group: all, rating_excellent, rating_good, rating_average, or rating_below_average.
reviewLanguageStringNoallKeep all review languages or enter a locale such as en-GB.
guestTypeStringNoallTraveller group: all, family, business, solo, group, couple, or other.
providerStringNoallReview provider: all, e_ct for Trip.com, h_h1 for Hotels.com, h_xp for Expedia, or h_vs for Tripadvisor.
tagsArrayNo[]Optional topics such as with_images, location, room, service, clean, meal, wifi, or pool.
results_wantedIntegerNo20Maximum number of unique reviews saved across all hotel URLs.
max_pagesIntegerNo5Maximum review pages processed per hotel. Each page contains up to 10 reviews.
proxyConfigurationObjectNoApify Proxy enabledApify Proxy or custom proxy configuration for reliable production runs.

Basic run

Collect up to 20 recommended reviews from one hotel:

{
"startUrls": [
{
"url": "https://www.skyscanner.com/hotels/united-states/new-york-hotels/doubletree-by-hilton-new-york-downtown/ht-204222293"
}
],
"results_wanted": 20,
"max_pages": 5
}

Recent English reviews

Collect the newest English reviews, with an explicit locale for labels and translated content:

{
"startUrls": [
{
"url": "https://www.skyscanner.com/hotels/united-states/new-york-hotels/doubletree-by-hilton-new-york-downtown/ht-204222293?adults=2&rooms=1"
}
],
"sortBy": "most_recent",
"locale": "en-GB",
"reviewLanguage": "en-GB",
"results_wanted": 50,
"max_pages": 8
}

Family reviews with photos

Collect family traveller reviews that include images, with the highest ratings first:

{
"startUrls": [
{
"url": "https://www.skyscanner.com/hotels/united-states/new-york-hotels/doubletree-by-hilton-new-york-downtown/ht-204222293"
}
],
"sortBy": "rating_high_to_low",
"reviewLanguage": "en-GB",
"guestType": "family",
"tags": ["with_images"],
"results_wanted": 30,
"max_pages": 5
}

Output

Results are stored in the run's default dataset. Each item contains the hotel context, review content, rating, traveller information, source provider, and collection timestamp. A field is included only when the source publishes a meaningful value.

FieldTypeDescription
hotelIdStringSkyscanner hotel identifier extracted from the input URL.
hotelUrlStringCanonical public hotel URL without tracking parameters.
totalReviewCountIntegerTotal review count published for the hotel.
availableReviewCountIntegerNumber of reviews available after filters are applied.
reviewDetailLinkStringProvider review details URL when available.
partnerReviewIdStringUnique review identifier supplied by the review provider.
titleStringReview headline when published.
reviewStringFull review text.
ratingNumberTraveller rating on a five-point scale.
localeStringReview locale.
guestTypeStringTraveller group associated with the review.
countryStringReviewer country when published.
checkinDateStringStay or check-in date when published.
reviewDateStringReview publication date label.
translationTypeStringIndicates whether the content is source text or translated.
translatedBooleanWhether translated content is available.
providerObjectReview provider identifier, name, and available branding fields.
logoStringRating or provider logo URL when available.
imagesArrayTraveller review images when available.
repliesArrayHotel or provider replies when available.
scrapedAtStringISO timestamp recording when the item was collected.

Sample dataset item

{
"hotelId": "204222293",
"hotelUrl": "https://www.skyscanner.com/hotels/united-states/new-york-hotels/doubletree-by-hilton-new-york-downtown/ht-204222293",
"totalReviewCount": 1516,
"availableReviewCount": 1516,
"partnerReviewId": "1072172077",
"title": "Would Definitely Return",
"review": "Had a most enjoyable stay with my teenage daughter. Lovely room, comfortable beds, and good subway links close by.",
"rating": 5,
"locale": "en-GB",
"guestType": "Family traveller",
"reviewDate": "Comment: 8 Aug 2026",
"translationType": "TRANSLATION_TYPE_SOURCE",
"translated": true,
"provider": {
"id": "h_vs",
"name": "Tripadvisor"
},
"scrapedAt": "2026-08-20T07:15:17.658Z"
}

Tips for reliable results

  • Start with 20 results and the default filters to confirm that the hotel URL is correct.
  • Increase results_wanted and max_pages together. A five-page cap can return at most about 50 reviews per hotel before filters and deduplication.
  • If filters produce fewer results than requested, the hotel may have only a small number of matching reviews.
  • Use most_recent for monitoring workflows and rating sorting for positive or negative feedback analysis.
  • Keep Apify Proxy enabled for scheduled and higher-volume production runs.
  • When processing multiple hotels, results_wanted is the overall dataset limit, while max_pages applies separately to each hotel.
  • The same hotel supplied through multiple URL variants is processed once.

Integrations and automation

Connect the resulting dataset to Google Sheets, Make, Zapier, Slack, webhooks, cloud storage, or your own application. You can run the Actor from Apify Console, on a schedule, through the Apify API, with the official JavaScript or Python client, or from the command line.

Common workflows include daily review monitoring, weekly competitor reports, sentiment dashboards, alerting on low-rated feedback, and sending new review records into a warehouse or CRM.

Frequently asked questions

Which URLs are supported?

Use public HTTPS Skyscanner hotel detail URLs containing an ht- hotel identifier. Full booking URLs with dates, rooms, traveller counts, and tracking parameters are supported. Localized Skyscanner domains are also accepted when the URL contains a valid hotel identifier.

Why did the run return fewer reviews than requested?

The selected hotel may have fewer matching reviews, filters may narrow the available set, the page cap may be reached, or the source may not return every review for the chosen locale and provider combination.

Are null values included?

No. Nulls and other empty values are removed recursively before a record is saved. Fields such as images, replies, country, title, or check-in date are omitted when unavailable.

Can I scrape more than one hotel?

Yes. Add multiple entries to startUrls. Duplicate hotel IDs are automatically consolidated. Remember that results_wanted limits the total output across the entire run.

Can I schedule recurring runs?

Yes. Use Apify schedules and optionally connect a webhook or integration to process the dataset after each successful run.

Does a review always contain a title, images, or a reply?

No. Providers publish different metadata. The Actor keeps all meaningful data that is available and omits unavailable fields.

This Actor collects publicly accessible information. You are responsible for using it in accordance with applicable laws, privacy requirements, contractual obligations, and the target website's terms. Avoid collecting personal data that you do not need, use reasonable run limits, and apply appropriate retention and security controls to exported datasets.

Support

If a valid hotel URL stops returning expected results, open an issue on the Actor page. Include the input URL, a run ID, the filters used, and a short description of the expected outcome. Do not include passwords, tokens, proxy credentials, or other secrets.