Skyscanner Hotels Scraper 🏨 avatar

Skyscanner Hotels Scraper 🏨

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Skyscanner Hotels Scraper 🏨

Skyscanner Hotels Scraper 🏨

Extract Skyscanner hotel data at scale, including hotel names, prices, ratings, reviews, locations, availability, and booking details. Ideal for hotel price comparison, travel market research, competitor tracking, tourism analytics, and hospitality datasets.

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

4 days ago

Last modified

Share

What does Skyscanner Hotels Scraper do?

Skyscanner Hotels Scraper collects hotel listings from a public Skyscanner hotel search and saves them as clean, structured dataset items. Each item represents one unique hotel, including the name, star rating, guest rating, image URLs, normalized prices, available partner offers, destination, and public hotel page.

Use it for hotel price research, destination comparisons, travel planning, accommodation directories, competitor monitoring, and scheduled market snapshots. Empty values are removed before saving, so unavailable fields are omitted instead of being stored as nulls.

Features

  • Search from one Skyscanner URL or a destination.
  • Accept a full search URL, a numeric destination ID, a Skyscanner destination URL, or a location name.
  • Keep URL input as the priority when both URL and location are supplied.
  • Set check-in, check-out, travellers, children ages, rooms, market, locale, and currency.
  • Sort by best match, price, guest rating, stars, or distance.
  • Control the total number of listings and the maximum number of pages.
  • Return prices, taxes, discounts, image URLs, ratings, map coordinates, and partner offers when published.
  • Deduplicate listings by hotel ID.
  • Push page results as they become available for safer long runs.
  • Use Apify Proxy or custom proxy URLs for production runs.

How to use

  1. Open the Actor input form.
  2. Paste a public Skyscanner hotel search URL, or clear the URL and enter a location.
  3. Set dates and traveller details if they are not already present in the URL.
  4. Choose a result limit and page limit.
  5. Start the run and open the default dataset when it finishes.

When url is supplied, it is used first. When it is empty, location is resolved and a search is created using the supplied dates and traveller details. A numeric destination ID or a Skyscanner destination URL is the most reliable location format. Free-text locations may need proxy access if the destination service applies a challenge.

Input parameters

FieldTypeDefaultDescription
urlStringSample search URLPublic Skyscanner hotel search URL. Takes priority over location.
locationStringNew YorkCity name, numeric destination ID, or Skyscanner destination URL.
checkinString2026-08-27Check-in date in YYYY-MM-DD format.
checkoutString2026-08-28Check-out date in YYYY-MM-DD format. Must be after check-in.
adultsInteger2Number of adult travellers.
roomsInteger1Number of rooms.
marketStringUSTwo-letter market used for availability and prices.
localeStringen-USLocale for labels and translated content.
currencyStringUSDThree-letter price currency.
sortByStringbestbest, price_low, price_high, rating, stars_high, stars_low, or distance.
results_wantedInteger20Maximum unique hotels saved across the run.
max_pagesInteger5Maximum listing pages requested. Each page contains up to 35 hotels.
proxyConfigurationObjectApify ProxyProxy settings for reliable production runs.

Usage examples

Basic search URL

{
"url": "https://www.skyscanner.com/hotels/search?entity_id=27537542&checkin=2026-08-27&checkout=2026-08-28&adults=2&rooms=1",
"results_wanted": 20,
"max_pages": 1
}

Destination by numeric ID

{
"location": "27537542",
"checkin": "2026-08-27",
"checkout": "2026-08-28",
"adults": 2,
"rooms": 1,
"sortBy": "price_low",
"results_wanted": 50,
"max_pages": 2
}

Destination URL and rating sort

{
"location": "https://www.skyscanner.com/hotels/search?entity_id=27537542",
"checkin": "2026-08-27",
"checkout": "2026-08-28",
"sortBy": "rating",
"results_wanted": 35,
"max_pages": 1
}

Output data

The default dataset contains one item per unique hotel. Common fields include:

FieldDescription
hotelIdSkyscanner hotel identifier.
hotelNamePublic hotel name.
starRating and starLabelPublished star classification.
detailsPageUrl and canonicalHotelUrlPublic hotel detail links.
reviewScore, reviewScoreDescription, reviewCountGuest rating information when available.
imageUrlsDirect image URLs for the listing.
pricePerNight and pricePerNightWithTaxesNormalized nightly prices.
totalPrice and totalPriceWithTaxesNormalized stay totals.
partnerOffersAvailable booking partner offers.
latitude, longitudeMap coordinates when available.
entityId, location, market, currencySearch context.
sourcePage, sourceUrl, scrapedAtCollection metadata.

Sample output

{
"hotelId": "204222293",
"hotelName": "DoubleTree by Hilton New York Downtown",
"starRating": 4,
"starLabel": "4 stars",
"detailsPageUrl": "https://www.skyscanner.com/hotels/.../ht-204222293",
"reviewScore": 4.2,
"reviewCount": 1516,
"imageUrls": ["https://content.skyscnr.com/..."],
"pricePerNight": "$188",
"pricePerNightWithTaxes": "$219",
"entityId": "27537542",
"location": "New York",
"currency": "USD",
"checkin": "2026-08-27",
"checkout": "2026-08-28",
"sourcePage": 1,
"scrapedAt": "2026-08-20T07:15:17.658Z"
}

Fields that are not published for a listing are left out of that item.

Tips for reliable runs

  • Start with a URL containing entity_id, dates, adults, and rooms.
  • Keep max_pages modest while testing, then increase it with results_wanted.
  • Use price_low for budget comparisons and rating for highly rated properties.
  • Keep proxy access enabled for scheduled or higher-volume runs.
  • If free-text location lookup is challenged, use the destination URL or numeric ID instead.
  • The result limit applies to the complete run, while page limits control how far pagination can continue.

Integrations and automation

Use the dataset with Google Sheets, Make, Zapier, webhooks, cloud storage, dashboards, or a custom application. Schedule recurring runs for price snapshots, destination monitoring, or hotel directory updates. The dataset can be exported as JSON, CSV, Excel, XML, or RSS.

Frequently asked questions

Can I use both url and location?

Yes. The URL is intentionally the primary input. Location is used only when URL is empty.

Do I need to provide dates?

Yes. Dates can come from the search URL or from checkin and checkout. Separate input fields override URL query values.

Why are fewer hotels returned than requested?

The search may have fewer available listings, the page limit may have been reached, or duplicate hotel IDs may have been removed.

Are null values included?

No. Nulls, empty strings, empty arrays, and empty objects are removed recursively before items are saved.

Can I scrape several destinations in one run?

This version accepts one search target per run. Create separate scheduled runs for separate destinations so each dataset remains easy to interpret.

This Actor collects publicly accessible information. You are responsible for complying with applicable laws, privacy requirements, contractual obligations, and the target website's terms. Use reasonable limits and retain only the information you need.

Support

If a valid search stops returning expected results, include the run ID, input shape, and a short description when requesting support. Do not share passwords, proxy credentials, tokens, or other secrets.