๐Ÿจ Skyscanner Hotels Scraper avatar

๐Ÿจ Skyscanner Hotels Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
๐Ÿจ Skyscanner Hotels Scraper

๐Ÿจ Skyscanner Hotels Scraper

Scrape Skyscanner hotel listings to extract hotel names, prices, ratings, locations, amenities, room details, and booking links. Compare hotel prices, analyze accommodation options, track travel deals, research markets, and build datasets for travel planning and hotel analysis.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

16 days ago

Last modified

Share

Scrape Skyscanner Hotels for clean, structured hotel data โ€” prices, stars, guest reviews, full amenity lists, partner offers, GPS coordinates and images โ€” from any combination of Skyscanner URLs and free-text destinations, in bulk.

โšก Streams results into the dataset as each hotel is parsed โ€” no waiting until the end of the run for partial output.


โœจ Why choose this scraper?

  • ๐Ÿง  Smart proxy auto-escalation โ€” starts direct (cheapest), automatically falls back to datacenter then residential proxy if Skyscanner pushes back. Once on residential it stays there.
  • ๐ŸŒ URLs and free-text destinations โ€” paste any Skyscanner URL with entity_id=โ€ฆ (no autosuggest hop) OR type a destination name like Alaska / Miami / Tokyo.
  • ๐Ÿ›Ž๏ธ Full amenity list per hotel โ€” the Skyscanner search endpoint only returns a couple of highlight amenities; we hydrate the rest from each hotel's detail page in parallel.
  • ๐Ÿ’ฐ Every partner offer โ€” Hotels.com, Expedia, Booking, Agoda, etc. with deep-links, per-night and total prices, room name and taxes.
  • ๐Ÿงฑ Browser TLS impersonation via curl_cffi (Chrome 124 / 131 fingerprints) defeats DataDome edges without the cost of a real browser.
  • ๐Ÿ“Š Sectioned dataset tabs โ€” Overview, Price, Reviews, Location, Amenities, Offers โ€” switch tabs in the Console to focus on a section.
  • ๐Ÿ’ธ Pay per event โ€” you only pay for hotels we successfully deliver.

๐Ÿ”‘ Key Features

  • ๐Ÿ†” Hotel name, Skyscanner ID, canonical detail URL
  • โญ Star rating and primary image
  • ๐Ÿ’ฐ Cheapest per-night price + base price + taxes/fees breakdown
  • ๐ŸŽซ Full list of partner offers (deep-links, room name, total price)
  • ๐Ÿ“ Guest review score, summary band, count, popular guest type
  • ๐Ÿ›Ž๏ธ Full amenity list per hotel (from the detail page)
  • ๐Ÿ“ GPS coordinates, city name, distance to city centre
  • ๐Ÿ–ผ๏ธ Image gallery URLs

๐Ÿ“ฅ Input

FieldTypeRequiredDefaultDescription
urlsarrayโŒโ€“Skyscanner destination URLs (any URL with entity_id=โ€ฆ is consumed directly)
locationsarrayโŒโ€“Free-text destinations (e.g. Alaska, Tokyo) โ€” resolved via autosuggest
checkindateโŒtomorrow+1ISO date YYYY-MM-DD
checkoutdateโŒcheckin+5ISO date YYYY-MM-DD
adultsintโŒ2Adult travellers
childrenintโŒ0Children (priced as age 10)
roomsintโŒ1Number of rooms
market / currencystringโŒUS / USDPricing locale and currency
limitintโŒ30Cap on hotels returned per destination
sortingstringโŒbestResult order โ€” best / price_low / price_high / rating / stars_high / stars_low / distance
min_price / max_priceintโŒโ€“Bound the cheapest per-night price (client-side)
hydrate_amenitiesboolโŒtrueFetch full amenity lists from hotel detail pages
stars_* / rating_* / types_* / traveller_*togglesโŒโ€“Star, guest-rating, accommodation-type and traveller-type filters
amenity_*togglesโŒโ€“~170 amenity filters grouped into themed sections (results must match ALL ticked)
free_cancellation / breakfast_included / show_discountsboolโŒfalseNative Skyscanner search filters
pay_on_arrival / non_refundable / meals_not_includedboolโŒfalseBest-effort filters inferred from each partner offer's feature badges
proxyConfigurationobjectโŒdirectOptional override of the starting proxy tier

Example input

{
"urls": [
"https://www.skyscanner.net/hotels/search?entity_id=27537542&checkin=2026-06-15&checkout=2026-06-20&adults=2&rooms=1"
],
"locations": ["Miami", "Tokyo"],
"checkin": "2026-06-15",
"checkout": "2026-06-20",
"adults": 2,
"rooms": 1,
"market": "US",
"currency": "USD",
"limit": 30,
"sorting": "price_low",
"max_price": 250,
"stars_4": true,
"stars_5": true,
"amenity_wifiservice": true,
"amenity_pool": true,
"proxyConfiguration": { "useApifyProxy": false }
}

๐Ÿ“ค Output

Each item in the dataset looks like this:

{
"id": "129270865",
"name": "Qupqugiaq Inn",
"numberOfStars": 2,
"priceInfo": {
"price": 84.72,
"basePrice": 83.72,
"taxesAndFees": [
{ "total": 63, "key": "other_taxes" },
{ "total": 7.28, "key": "service_fee" }
],
"partnerId": "h_h1",
"funnelType": "meta",
"partnerRanking": 1,
"numberOfOffers": 7,
"isLowest": true
},
"amenities": ["WiFi", "Non-smoking", "Bar", "Lobby bar", "Lounge", "..."],
"reviews": {
"score": 3.6,
"summary": "rating_good",
"numberOfReviews": 166,
"mostPopularWith": "",
"taRating": 4,
"reviewSummaryScore": 4,
"reviewSummaryScoreImageUrl": "https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/4.5-64600-4.png",
"reviewSummaryScoreDesc": "Good",
"reviewSummaryCount": 166
},
"distanceInfo": {
"distanceMeters": 0,
"referenceEntityType": "FirstLevelNationAdministrativeDivision",
"referenceEntityName": "Alaska",
"cityName": "Anchorage"
},
"position": { "longitude": -149.89471, "latitude": 61.18792 },
"allPricesInfo": {
"prices": [
{
"partnerId": "h_h1",
"name": "Hotels.com",
"price": 84.72,
"numberOfOffers": 7,
"deepLink": "https://...",
"roomName": "Double room",
"partnerType": "OTA",
"isLowest": true,
"basePrice": 83.72,
"secondaryPrice": 593,
"partnerRanking": 1
}
]
},
"images": ["https://...", "..."],
"image": "https://...",
"url": "https://www.skyscanner.net/..."
}

๐Ÿš€ How to use (Apify Console)

  1. Log in at console.apify.com โ†’ Actors.
  2. Open ๐Ÿจ Skyscanner Hotels Scraper.
  3. Paste your URLs / type destinations in the input.
  4. Pick check-in / check-out, adults, rooms, market and currency.
  5. (Optional) Tick filter toggles: stars, ratings, accommodation types, amenities.
  6. Click โ–ถ Start.
  7. Watch logs stream live โ€” every hotel is pushed to the dataset the moment it's scraped.
  8. Open the Output tab โ†’ switch between Overview / Price / Reviews / Location / Amenities / Offers views.

๐Ÿค– Use via API

curl -X POST "https://api.apify.com/v2/acts/skyscanner-hotels-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"locations": ["Miami"],
"checkin": "2026-06-15",
"checkout": "2026-06-20",
"adults": 2,
"limit": 30
}'

๐Ÿ’ธ Pricing

Pay-per-event. You're billed:

  • Actor start โ€” Apify-managed startup event (small flat fee, first 5s of compute on us).
  • result-item โ€” one event per hotel successfully delivered to the dataset.

You don't pay for failed/blocked requests, retries, or proxy escalations.


โ“ FAQ

Q: Why does the first request take a few seconds? Skyscanner runs hotel search asynchronously โ€” the first POST returns a partial result with a sessionToken, and we re-poll until the search reaches 100 % completion (typically 1โ€“4 polls).

Q: Will it work for non-US markets? Yes โ€” pick a market / currency in the input. Skyscanner returns localised prices and partner availability per market.

Q: Why does the amenity list look short for some hotels? The search endpoint only returns 2โ€“3 highlight amenities. With Hydrate per-hotel amenities ON (default), we fetch each hotel's detail page in parallel and parse the full list โ€” usually 15โ€“40 amenities. Turn it OFF to save requests if you only need price/review data.

Q: My destination is blocked. Leave the proxy at default โ€” the actor will auto-escalate to datacenter then residential proxy. If residential still 403s after 3 retries, the run stops cleanly with a partial result.


๐Ÿ“ฌ Support & feedback

Issues, feature requests or custom scrapers โ†’ dev.scraperengine@gmail.com.


  • Data is collected from publicly available Skyscanner search pages.
  • The end user is responsible for legal compliance (GDPR, CCPA, target site ToS, etc.).
  • Honour robots.txt and reasonable rate limits โ€” leave the default delay in place.