🏨 Skyscanner Hotels Scraper
Pricing
from $3.99 / 1,000 results
🏨 Skyscanner Hotels Scraper
Scrape Skyscanner hotel search at scale — prices, stars, reviews, amenities, partner offers, GPS and images — for any destination. Smart proxy auto-escalation (direct → datacenter → residential) and live streaming results.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeMesh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 days ago
Last modified
Categories
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
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array | ❌ | – | Skyscanner destination URLs (any URL with entity_id=… is consumed directly) |
locations | array | ❌ | – | Free-text destinations (e.g. Alaska, Tokyo) — resolved via autosuggest |
checkin | date | ❌ | tomorrow+1 | ISO date YYYY-MM-DD |
checkout | date | ❌ | checkin+5 | ISO date YYYY-MM-DD |
adults | int | ❌ | 2 | Adult travellers |
children | int | ❌ | 0 | Children (priced as age 10) |
rooms | int | ❌ | 1 | Number of rooms |
market / currency | string | ❌ | US / USD | Pricing locale and currency |
limit | int | ❌ | 30 | Cap on hotels returned per destination |
sorting | string | ❌ | best | Result order — best / price_low / price_high / rating / stars_high / stars_low / distance |
min_price / max_price | int | ❌ | – | Bound the cheapest per-night price (client-side) |
hydrate_amenities | bool | ❌ | true | Fetch 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_discounts | bool | ❌ | false | Native Skyscanner search filters |
pay_on_arrival / non_refundable / meals_not_included | bool | ❌ | false | Best-effort filters inferred from each partner offer's feature badges |
proxyConfiguration | object | ❌ | direct | Optional 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)
- Log in at console.apify.com → Actors.
- Open 🏨 Skyscanner Hotels Scraper.
- Paste your URLs / type destinations in the input.
- Pick check-in / check-out, adults, rooms, market and currency.
- (Optional) Tick filter toggles: stars, ratings, accommodation types, amenities.
- Click ▶ Start.
- Watch logs stream live — every hotel is pushed to the dataset the moment it's scraped.
- 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.
⚖️ Cautions / legal
- 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.txtand reasonable rate limits — leave the default delay in place.