Hilton Hotels Scraper - Lowest Rates & New Hotel Watch avatar

Hilton Hotels Scraper - Lowest Rates & New Hotel Watch

Pricing

from $0.84 / 1,000 hotel scrapeds

Go to Apify Store
Hilton Hotels Scraper - Lowest Rates & New Hotel Watch

Hilton Hotels Scraper - Lowest Rates & New Hotel Watch

Hilton hotels scraper: country slugs or hilton.com location pages to one row per hotel with lowest rate in USD and local currency, rate plan, brand, address, coordinates, amenities and opening date. For daily rate and new-hotel watching per destination.

Pricing

from $0.84 / 1,000 hotel scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

Hilton hotels scraper: lowest rates and new-hotel watch by country or city

This Hilton hotels scraper lists the hotels Hilton has in a country, state or city and returns one flat row per hotel: Hilton's "from" rate in US dollars and in the hotel's own currency, the rate plan behind it, brand, address, coordinates, amenities, and whether the hotel is open yet (is_open, open_date, pre_open_message). Run it daily on a few destinations and diff the dataset on hotel_code to get a lowest-rate watch (which Tokyo hotel got cheaper) and a new-hotel watch (which hotel appeared, which one opened).

No account, no API key, no login, no browser. It reads hilton.com's own location pages (https://www.hilton.com/en/locations/japan/), which are server-rendered.

Input

FieldNotes
destinationsOne per line: a country slug (japan, usa, france, thailand), a place under it (japan/tokyo, usa/california), or the address of a hilton.com location page (https://www.hilton.com/en/locations/japan/tokyo/). The slug is the one in the page address. A hotel that two destinations both contain is returned once, under the first.
maxItemsHotels to return per destination (default 100, up to 10,000).
expandToCitiesDefault on. A country or state page shows only the first 20 hotels Hilton has there; with this on the actor also reads the narrower pages it links to until Hilton's own count for the destination is reached. Off = the one page you asked for, 20 hotels at most.
proxyConfigurationApify datacenter proxy by default.

Example input:

{
"destinations": ["japan", "https://www.hilton.com/en/locations/thailand/"],
"maxItems": 100,
"expandToCities": true
}

Output

Row example (real values, read from https://www.hilton.com/en/locations/japan/ on 2026-10-28):

{
"hotel_code": "HNDTSLX",
"name": "The Tokyo Station Hotel, an SLH Hotel",
"url": "https://www.hilton.com/en/hotels/hndtslx-the-tokyo-station-hotel/",
"destination": "japan",
"found_on": "japan",
"brand_code": "LX",
"brand": "SLH",
"address_line": "1 9 1 Marunouchi",
"city": "Tokyo",
"state": "13",
"state_name": null,
"postal_code": "100-0005",
"country_code": "JP",
"country": "Japan",
"address": "100-0005, Tokyo, 1 9 1 Marunouchi, Chiyoda ku, Japan",
"latitude": 35.681501,
"longitude": 139.766,
"phone": "+81 3-5220-1111",
"is_open": true,
"open_date": "2024-07-09",
"pre_open_message": null,
"reservations_enabled": true,
"reservations_open_date": null,
"seasonally_closed": false,
"seasonal_reopen_date": null,
"adults_only": false,
"new_acquisition": false,
"amenities": ["Concierge", "On-site restaurant", "Fitness center", "Luxury", "Smoke-free", "Pets not allowed", "Room service", "Spa"],
"image_url": "https://www.hilton.com/im/en/HNDTSLX/20610440/hndtslx-65089270-exterior-6201x4134.jpg?impolicy=crop&cw=5000&ch=3333&gravity=NorthWest&xposition=0&yposition=-1",
"image_alt": "The Tokyo Station Hotel Exterior at Night",
"currency": "JPY",
"lowest_rate_usd": 1007.12,
"lowest_rate_local": "¥158,906",
"rate_plan_code": "HPPRP1",
"rate_plan_name": "Honors Discount",
"rate_plan_description": "Hilton Honors Membership Required.",
"cma_total_price_indicator": false,
"fee_transparency_indicator": false,
"listing_updated_at": "2026-10-28T16:20:58Z"
}
FieldNotes
hotel_codeHilton's hotel code (HNDTSLX). The key to diff runs on: one row per code.
name, urlAs Hilton prints them; url is the hotel's own hilton.com page.
destination, found_ondestination is what you asked for; found_on is the location page the hotel was read from (japan/small-luxury-hotels-slh when a brand page listed it).
brand_code, brandHilton's brand code and the name from the page's own brand table (LX is SLH there). brand is null for a code the table does not list (YH, YOTEL, was seen).
address_line, city, state, state_name, postal_code, country_code, country, addressAs sent. state is Hilton's state code: a prefecture number in Japan (13 is Tokyo), letters in the USA (KS). state_name is null for most countries (it is Kansas in the USA, null in Japan and Thailand).
latitude, longitude, phoneAs sent.
is_openFalse for a hotel that has not opened. This is the new-hotel flag.
open_dateOpening date YYYY-MM-DD. Null for many long-open hotels (Hilton Tokyo has none) - null does not mean "not open", read is_open.
pre_open_messageHilton's pre-opening text, e.g. "We're accepting reservations for 15 January 2027 and beyond." Null for an open hotel.
reservations_enabled, reservations_open_dateWhether Hilton takes bookings, and from what date when it will start.
seasonally_closed, seasonal_reopen_date, adults_only, new_acquisitionHilton's flags as sent. new_acquisition marks a hotel Hilton took over from another operator.
amenitiesAmenity names from the page's amenity table; empty list if none.
image_url, image_altThe hotel's main photo (3:2 crop) and its alt text.
currencyISO currency of the hotel's own price text.
lowest_rate_usdHilton's "from" rate in US dollars (USD): Tokyo 1007.12 prints as ¥158,906, a rate of 157.8 yen to the dollar. Null when Hilton sends no rate for the hotel, never 0.
lowest_rate_localThe same rate as Hilton prints it, in currency ("¥158,906"). Hilton rounds it, so it can differ from lowest_rate_usd by a rounding step (USA: 121.23 prints as $122). Null with no rate.
rate_plan_code, rate_plan_name, rate_plan_descriptionThe rate plan behind the lowest rate. Read these before comparing rates: the lowest plan is often "Honors Discount", which needs a free Hilton Honors membership, or non-refundable. Null with no rate.
cma_total_price_indicator, fee_transparency_indicatorTwo price-display flags Hilton sends on the rate, passed through unchanged. Hilton does not document them and this actor does not claim what they mean. Null with no rate.
listing_updated_atWhen Hilton's server built the listing the hotel came from (UTC). The rate is a cached snapshot from then, not from the moment of the request.

Honest nulls and limits

  • No rate does not mean pre-opening. A hotel that has not opened yet has no rate (YOTEL Tokyo Ginza, opening 2026-12-03), but so do some open hotels with nothing on sale (a Hilton Grand Vacations resort in Odawara). lowest_rate_usd is null for both; is_open tells them apart.
  • The rate is not a quote for a stay. The page is Hilton's location listing: it states no check-in date, number of nights or guests. It is Hilton's "from" rate for the hotel, useful for day-over-day change and for ranking hotels against each other, not for a booking decision. For a priced stay, use the hotel's url.
  • The rate is cached and moves in steps. The same address fetched seconds apart returned two rate sets (Tokyo Station Hotel 1007.12 and 1109.1) whose listing_updated_at stamps were 9,351 seconds apart. Compare rows on listing_updated_at as well as on the date of your run.
  • No room types, availability calendar, reviews or hotel descriptions. One row is one hotel as the location listing shows it.

Pricing

Pay per event:

  • $0.002 per run (actor-start), charged only after your input is validated, so a run that fails on bad input costs nothing.
  • $0.00084 per hotel row written (hotel-scraped), i.e. $0.84 per 1,000 hotels. A hotel found twice in one run (neighbouring cities overlap) is returned and charged once.

How it fetches

Every number below was measured on 2026-10-29.

  • A location page is https://www.hilton.com/en/locations/<place>/ and carries its hotels as JSON in the Next.js __NEXT_DATA__ block. HTTP 200 from a plain home connection and from Apify datacenter and residential addresses (10 of 10 each, every body a real location page, run bAnQa4zG1KgbNpkEh). A 200 without that block, a 403/429/5xx or a dropped connection is treated as the address being refused: the actor rotates to a fresh address and retries.
  • A page does not paginate. ?page=2, ?offset=20, ?start=20 and ?pageNumber=2 all returned the same first 20 hotels as the bare address. A country or state page lists the first 20 of the hotels Hilton has there (Japan 20 of 55, Thailand 20 of 39, France 20 of 75, USA 20 of 6,660); the page says the real count (totalSize). A city page lists every hotel it has (Tokyo 16 of 16, Osaka 15 of 15).
  • So the actor goes to the narrower pages. With expandToCities on it follows the links on the country page to reach every hotel: by brand when the brand pages can hold the whole place (Japan: the 12 brand pages hold 35 hotels the first page does not, 55 of 55 in total), otherwise by city or state, with the other as the fallback. Japan by city alone reached 54 of 55: the one hotel no city page lists (SHMFSLX) is on a brand page. Thailand by brand reached 39 of 39. It stops as soon as Hilton's own count is reached, at maxItems, or at 600 pages per destination.
  • City pages are radius searches. A city page lists nearby hotels too, so neighbouring pages overlap: Japan's 27 city pages that were read add up to 163 listings of 54 different hotels. Rows are de-duplicated, and a hotel in a different country than the destination is dropped.
  • A brand page can be cut at 20 too (Germany: Hampton lists 20 of 26). The actor then follows that brand page's own "by city" links.
  • Measured end to end (this actor's own code, from a home connection, 2026-10-29): Thailand 39 of 39 hotels in 10 pages, Japan 55 of 55 in 13 pages, Germany 56 of 56 in 25 pages (Hampton's brand page is cut at 20, so its city pages were read), Delaware 22 of 22 in 8 pages. For a country too big to read in full (USA: 6,660) a maxItems cut-off keeps the hotels from the first pages in Hilton's link order, which is alphabetical by state.
  • Each page weighs about 1 MB and holds 1 to 20 hotels. Reading all of a big country therefore reads many pages; use maxItems.
  • A place Hilton does not know is HTTP 404 and is reported, not retried. Some city links redirect to a neighbouring page (japan/higashiyama-ku to japan/kyoto); the redirect is followed and the page read once.
  • The log ends with Hilton's own count and the number found per destination, and a warning when they differ.

If Hilton changes the page, the run fails with a message instead of returning empty rows.