Klook Hotels Scraper avatar

Klook Hotels Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Klook Hotels Scraper

Klook Hotels Scraper

Extract Klook hotel listings with hotel names, prices, ratings, reviews, locations, room details, amenities, discounts, images, and booking URLs. Ideal for hotel price monitoring, travel market research, competitor analysis, accommodation datasets, and travel apps.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

12 days ago

Last modified

Categories

Share

What does Klook Hotels Listing Scraper do?

Klook Hotels Listing Scraper collects hotel listings from Klook search results for destination research, hotel comparisons, and price monitoring. Enter a Klook hotel search URL or a location to receive property names, hotel links, star ratings, guest ratings, prices, images, coordinates, and listing features.

Each dataset row represents one hotel. You can download results as JSON, CSV, Excel, or XML, schedule repeat runs, and access datasets through the Apify API. This Actor collects listing data, not individual guest reviews or a hotel's full room inventory.

Why use Klook Hotels Listing Scraper?

  • Compare properties across a destination - Collect hotel names, star categories, guest ratings, and location descriptions in one dataset.
  • Monitor advertised hotel prices - Keep currency, availability, price descriptions, and the stay dates associated with each listing.
  • Research hotel positioning - Compare features such as swimming pools, fitness facilities, and business centers when Klook publishes them.
  • Create travel datasets - Export hotel links, property images, city and country information, and geographic coordinates.
  • Control collection size - Set an exact maximum result count and a page limit. Duplicate properties within a run are excluded.
  • Keep exports clean - Unavailable fields are omitted rather than written as null placeholders. Numeric zero and boolean false are retained.

What data can you extract from Klook?

DataFields
Hotel identityhotel_id, name, hotel_url, product_id
Hotel qualitystars, rating, rating_max, rating_label, review_count_text
Destinationcity, country, city_id, country_id, latitude, longitude, time_zone
Listing detailslocation_description, images, features, booking_popularity
Price and availabilityprice, formatted_price, currency, currency_symbol, available
Stay contextcheck_in, check_out, suggested_dates, price_date_description
Collection contextlocale, page, position, total_properties, scraped_at

Klook may also publish promotions, tax descriptions, stock messages, pay-later descriptions, or reward information. These are included only when present. Listing features are not a complete inventory of hotel amenities.

How to scrape Klook hotel listings

  1. Open the Actor input form in Apify Console.
  2. Enter a hotel listing URL in startUrl, or enter a destination in location.
  3. Optionally specify stay dates, occupancy, and guest-rating or recommended sorting.
  4. Set resultsWanted and maxPages.
  5. Review the proxy settings and start the run.
  6. Open the dataset preview, then download the results or connect them to your workflow.

With no search input, the Actor searches Dubai. A supplied startUrl takes priority over location. Explicit dates, occupancy, and supported sorting inputs override the corresponding URL options. There is no raw filter or currency input. URL filter selections are preserved; budget filtering and price ordering are not guaranteed by Klook. Options you leave unset preserve the URL values.

Input Parameters

ParameterTypeDefaultDescription
startUrlStringNoneKlook hotels/searchresult/ listing URL. Takes priority over location.
locationStringDubaiDestination name used when no URL is supplied.
checkInStringURL value or unsetCheck-in date in YYYY-MM-DD format.
checkOutStringURL value or unsetCheck-out date after check-in. Supply both dates together.
adultsIntegerURL value or 2Adult occupancy, at least 1.
roomsIntegerURL value or 1Number of rooms, at least 1.
childAgesIntegerURL ages or no childrenOptional age from 0 to 17 for one child. Use a listing URL for multiple children.

| sortBy | String | URL sorting or Klook order | hotel_score (recommended) or review_score (guest rating, highest first). | | resultsWanted | Integer | 20 | Maximum unique hotel records to save. | | maxPages | Integer | 10 | Maximum listing pages to process, with up to 20 hotels per page. | | proxyConfiguration | Object | Apify residential proxy | Proxy settings. Explicit user settings are respected. |

Supported URLs

Use public Klook hotel search-result URLs with stype and svalue, or a city_id. Localized paths such as /en-US/hotels/searchresult/, /zh-HK/hotels/searchresult/, and locale-free /hotels/searchresult/ are accepted. Search types include city, district, place, and hotel searches when the URL contains a valid Klook identifier.

Hotel detail URLs, activity URLs, and city landing pages are not accepted as listing URLs. For these cases, enter the destination in location or open the hotel's destination search on Klook and copy that listing URL. The Actor does not silently substitute a different destination for an invalid URL.

Location names can be ambiguous. The Actor prefers an exact destination match and reports the selected destination in its run log. Use a URL when you need a specific district, landmark, or city with a common name.

Usage Examples

Dubai hotel search URL

Collect up to 20 hotels using the URL's destination and occupancy.

{
"startUrl": "https://www.klook.com/en-US/hotels/searchresult/?city_id=78&stype=city&svalue=78&adult_num=2&child_num=0&room_num=1&currency=USD",
"resultsWanted": 20,
"maxPages": 2
}

Search by location

Collect a larger Dubai dataset without having to find a search URL first.

{
"location": "Dubai",
"resultsWanted": 60,
"maxPages": 3
}

Five-star hotels with fixed stay dates

Compare hotels using the same dates and occupancy. Change these dates before running if they are no longer in the future.

{
"startUrl": "https://www.klook.com/en-US/hotels/searchresult/?city_id=78&filter_selected=star%7C5",
"checkIn": "2026-11-15",
"checkOut": "2026-11-17",
"adults": 2,
"rooms": 1,
"sortBy": "review_score",
"resultsWanted": 20,
"maxPages": 2
}

Output Data

All optional fields are omitted when missing. Dates and prices are a snapshot, not a booking quote.

FieldTypeDescription
hotel_idStringKlook hotel identifier.
name, local_nameStringHotel name and local name when published.
hotel_urlStringHotel detail link without tracking parameters.
starsNumberHotel star category.
rating, rating_maxNumberGuest rating and its maximum scale.
rating_labelStringGuest rating label, such as Fantastic.
review_count_textStringReview count exactly as Klook displays it.
city_id, country_id, product_idNumberDestination and product identifiers.
city, countryStringProperty city and country.
latitude, longitudeNumberProperty coordinates.
time_zoneStringProperty timezone offset.
location_description, descriptionStringListing location text and description when published.
imagesArrayProperty image URLs.
features, promotions, price_tagsArrayPublished feature, promotional, and pricing labels.
booking_popularityStringBooking-count label shown in the listing.
price, price_after_taxNumberListed price and post-tax price when published.
formatted_priceStringFormatted listing price.
currency, currency_symbolStringCurrency associated with the returned price and its displayed symbol.
tax_description, original_price_descriptionStringTax and original-price information when available.
availableBooleanAvailability marker published with the price.
stock_descriptionStringAvailability text when published.
price_date_descriptionStringDate context associated with the listed rate.
pay_later_description, reward_descriptionStringPay-later and reward information when published.
check_in, check_outStringStay dates associated with the listing price.
suggested_datesBooleanWhether Klook supplied suggested dates instead of fixed search dates.
localeStringSearch language/region.
search_url, search_locationStringSupplied search URL or location, depending on search mode.
page, positionNumberSource page and position in saved results.
total_propertiesNumberNumber of matching properties reported by Klook.
scraped_atStringCollection timestamp in ISO format.

Sample Output

This shortened record is based on a live Dubai result. Prices, review counts, and suggested dates change over time.

{
"hotel_id": "116863",
"name": "The S Hotel Al Barsha",
"hotel_url": "https://www.klook.com/en-US/hotels/detail/116863-the-s-hotel-al-barsha/",
"stars": 4,
"rating": 4.5,
"rating_max": 5,
"rating_label": "Fantastic",
"review_count_text": "240 reviews",
"city": "Dubai",
"country": "United Arab Emirates",
"latitude": 25.069861,
"longitude": 55.244083,
"location_description": "1.0km from Dubai Butterfly Garden",
"features": ["Fitness", "Business center"],
"booking_popularity": "3K+ people booked",
"price": 63.13,
"currency": "USD",
"available": true,
"check_in": "2026-10-09",
"check_out": "2026-10-10",
"suggested_dates": true,
"locale": "en-US",
"page": 1,
"position": 1,
"total_properties": 1039
}

Tips for Best Results

  • Specify fixed dates for meaningful price comparisons. Without dates, different hotels can use different suggested stays.
  • Keep currency and occupancy constant across monitoring runs.
  • Copy filters from a working Klook search. Filter IDs and sorting choices can vary by destination.
  • Increase both limits for large collections. For example, 100 hotels normally requires at least 5 pages.
  • Klook may include surrounding towns in a destination search. The output city identifies each property's actual city.
  • Start with 20 hotels and check the results before scheduling larger runs.
  • Residential proxies can improve access consistency, but access is not guaranteed. Review failure logs before retrying.

Integrations

  • Google Sheets and Excel - Compare hotel ratings, prices, and destination coverage.
  • JSON and CSV exports - Import structured hotel data into analysis tools.
  • Apify schedules - Collect periodic listing snapshots.
  • Webhooks, Make, and Zapier - Trigger reporting and downstream workflows after a run.
  • Apify API - Start runs and retrieve datasets from your own applications.

Frequently Asked Questions

Does this Actor scrape individual hotel reviews?

No. It collects hotel listings and their rating summaries. Individual guest review text is outside this Actor's scope.

Can I collect every hotel in a destination?

You can request a large result count and enough pages. The run stops at either configured limit, an empty or repeated page, or the end of Klook's reported results. Access restrictions and changing search results can reduce coverage.

Why are some fields missing?

Missing fields were not published for that listing. The Actor omits null values, empty strings, and empty collections, while retaining valid zero and false values.

Are the prices guaranteed booking rates?

No. Prices reflect the listing at collection time and can change with dates, occupancy, availability, taxes, promotions, and user context. Check Klook before booking.

What happens if I provide both a URL and a location?

The URL determines the destination. Explicit dates, occupancy, and supported sorting inputs can still override URL options.

Can I schedule collection and export CSV or Excel?

Yes. Use Apify schedules and dataset exports. Preserve run timestamps if you combine several snapshots.

Support

Report problems through the Actor's Issues tab. Include the search URL or location, the relevant input options, and a run link. Do not share proxy credentials or other secrets.

This Actor is not affiliated with Klook. Use it for legitimate collection of publicly available hotel data and comply with Klook's terms, applicable laws, privacy requirements, and rights associated with property images. Do not use collected data to misrepresent hotel availability or booking prices.