Hilton Room Rates Scraper
Pricing
from $2.10 / 1,000 hotel-priceds
Hilton Room Rates Scraper
Scrape every room Hilton is selling for a hotel and your dates. Just add hotel codes or hilton.com URLs and get nightly rate, stay total, Honors points cost, bed count, amenities, image and rate plan names. Points rows carry the cash price beside the points. $3.50 per 1,000 priced hotel-stays.
Pricing
from $2.10 / 1,000 hotel-priceds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What is Hilton Room Rates Scraper?
For any Hilton hotel and dates, Hilton Room Rates Scraper returns each room on sale with its nightly rate and stay total. Ask for Honors points as well and you see what the same room costs as an award night, with the cash price on the same row. You supply hotel codes or hilton.com links and your dates. It works for all Hilton brands, from Hampton and Hilton Garden Inn to Conrad, Waldorf Astoria and LXR.
What a cheapest-price lookup won't give you:
- The whole room list, and the whole rate list when you want it. By default you get one row per room at the rate Hilton shows first. Switch on every rate plan and a single stay at a Times Square hotel returned 374 cash rates over 33 rooms, a London hotel 154 over 10 (5 October 2026).
- Points and cash side by side. A points row has points per night, the total, and the points for each night separately when an award price changes mid-stay.
- A month of arrival dates in one go. The price calendar gives the lowest nightly rate for each date, with rooms left at that rate. We checked 27 dates against the room list on 6 October 2026 and all 27 cash prices matched.
- It's quick at volume. 180 hotel-stays (918 rooms, 14 sold out) came back in about 8 seconds.
- $3.50 per 1,000 priced hotel-stays on the Free plan, $2.60 on Business, however many rooms a stay returns. A sold-out stay costs $0.0005 and a stay Hilton never answered costs nothing.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 37 of 37 live checks on its inputs and filters passed on 8 October 2026
- 6 hotels run on 7 October 2026 on 3 stays each: 104 rates, 5 sold-out answers
- Charges matched the stays: 18 checked, 13 priced
- A stay Hilton cannot answer gets an uncharged row saying why
Three ways to run it
The room list (the default). One row per room the hotel is selling for your stay, cheapest first, priced at its lead rate. This is what you want for watching a competitive set or checking whether accessible, suite or executive rooms are still on sale.
Every rate plan. Each room sells under several plans: flexible, advance purchase, non-refundable, breakfast included, member and special rates. Turn on "Every rate plan" and each one is a row with its own price and terms. Expect 10 to 30 times as many rows. Use it for rate-parity checks, or to see what an AAA, senior, government, travel agent, small business or corporate rate is worth against the public one.
The monthly price calendar. One row per hotel and arrival date: the lowest nightly rate for a stay of your length starting that day, its rate plan and room, and how many rooms are left at that rate. With points on, you also get the lowest award price per date. It's the fast way to find the cheap nights before pricing them in full.
In all three you can price several hotels and several date ranges in one run, choose cash, points or both, and have the actor remember the lowest rate between runs and report what moved.
What room and rate data do you get?
| π¨ Hotel name and hotel code | Brand code |
| π Check-in, check-out and nights | Adults, children, child ages and rooms |
| π Room name and description | Room type code and category |
| Bed count | How many the room sleeps |
| βΏοΈ Accessible room flag | Suite and executive flags |
| Rate plan code, name and terms | The rate plan codes the room sells under |
| Lead rate flag, the rate Hilton shows first | Special rate type and advance-purchase flag |
| π· Nightly rate, as Hilton shows it | Stay total, tax included |
| Whether the nightly rate includes tax | Rate plan's own tax flag |
| π΅ Nightly rate in US dollars | Currency |
| Price after tax as shown | Service charge terms |
| βοΈ Honors points per night | Total points for the stay |
| Points for each night of the stay | Flags for rates that change mid-stay |
| Amenities, highlights and attributes | πΌ Room photograph |
| π Lowest rate for the hotel and stay | Change since the last run |
| π Link to the booking page | Timestamp of the run |
How to scrape Hilton room rates
- Create a free Apify account, then open Hilton Room Rates Scraper.
- Add hotels as Hilton hotel codes such as LONCWHI, or paste hilton.com URLs. The links Hilton Hotel Search Scraper returns work as they are.
- Set your check-in and check-out dates, guests and rooms.
- Choose cash rates, Honors points, or both. If you want the cheapest rate for each arrival date in a month, turn on the monthly price calendar.
- Click Start, then download the results as JSON, CSV, Excel, XML or HTML.
β¬οΈ Input
You give it hotels and a stay. A hotel is a Hilton hotel code or any hilton.com hotel or booking URL. The stay can be fixed dates, or a rolling one: a number of days ahead (default 30) and a number of nights (default 2). A stay is 1 to 30 nights.
Got more links than you'd want to paste? Start URLs loads them in bulk from a file, a Google Sheet or a remote list, and is combined with the Hotels box.
Three limits work together. "Maximum rooms per hotel-stay" keeps the cheapest rooms of each stay (0, the default, keeps them all). "Maximum hotel-stays for the whole run" caps the priced hotel-stays, and "Maximum rows for the whole run" caps the rows. The run stops at whichever it reaches first, and you aren't charged for anything past a cap.
| Field | Default | What it does |
|---|---|---|
hotels | none | Hotel codes or hilton.com URLs |
startUrls | [] | The same links, loaded in bulk |
maxRoomsPerHotel | 0 | Rooms per hotel-stay, cheapest first, up to 200. 0 keeps all rooms |
maxItems | 0 | Priced hotel-stays for the whole run. 0 means no limit |
maxRows | 0 | Rows for the whole run. 0 means no limit |
checkIn / checkOut | empty | YYYY-MM-DD |
checkInDaysAhead / nights | 30 / 2 | The rolling window used when the dates are empty |
stays | none | Several {checkIn, checkOut} ranges; replaces the single stay |
adults / rooms / childrenAges | 2 / 1 / none | Adults per room (1 to 8), rooms (1 to 9), one age per child |
rateModes | ["cash"] | cash, points, or both |
specialRate | "" | aaa, senior, governmentMilitary, travelAgent or smb |
promoCode / corporateId / groupCode | none | Price the stay on those terms |
includeUnavailable | false | Keep rooms the hotel lists but is not selling for the dates |
allRatePlans | false | Off: one row per room, its lead rate. On: one row per room and rate plan, at most the 250 cheapest per stay |
priceCalendar | false | One row per hotel and arrival date, instead of the room list |
calendarMonths | 1 | With the calendar: months to cover, from the month of the check-in date, up to 12 |
currency | USD | Three-letter code; clear it for the hotel's own currency |
priceStoreName / onlyNewOrChanged | none / false | Remember the lowest rate between runs; return only what moved |
includeRawData | false | Add the untouched record as raw |
delayMs | 0 | Optional pause before each call, 0 to 30,000 ms |
maxConcurrency | 16 | Parallel requests, 1 to 32 |
Price one hotel for one stay:
{"hotels": ["LONCWHI"],"checkIn": "2026-11-10","checkOut": "2026-11-12","adults": 2,"rooms": 1}
Compare several hotels across two date ranges, in cash and in points:
{"hotels": ["LONCWHI", "HNLMOGV"],"stays": [{ "checkIn": "2026-11-10", "checkOut": "2026-11-12" },{ "checkIn": "2026-12-05", "checkOut": "2026-12-07" }],"adults": 2,"rateModes": ["cash", "points"],"maxRows": 200}
Award nights in points, with rates in pounds:
{"hotels": ["LONCWHI"],"checkIn": "2026-11-10","checkOut": "2026-11-13","rateModes": ["points"],"currency": "GBP"}
Monitor a hotel daily and return only stays whose lowest rate moved:
{"hotels": ["DXBGIGI"],"checkInDaysAhead": 30,"nights": 2,"priceStoreName": "hilton-prices","onlyNewOrChanged": true}
For developers
maxItemscounts priced hotel-stays: one hotel, one stay, one rate mode, with all its rooms. Sold-out and unchanged stays don't count towards it. In the price calendar each priced date counts as one.- When
maxRowsfalls partway through a stay, that stay is cut to fit, keeping its cheapest rates, and is billed as one stay.maxRoomsPerHotelkeeps the cheapest rooms and, withallRatePlanson, all the rate plans of each kept room. - With
allRatePlanson, a stay keeps at most its 250 cheapest rates. - Asking for both rate modes prices each hotel-stay twice, and each pass is billed as its own hotel-stay.
priceStoreNamenames the store that remembers the lowest nightly rate per hotel and stay.onlyNewOrChangedneeds it. The remembered figure is the nightly rate as Hilton shows it. A store written on 2 October 2026 holds a tax-included figure for that day and isn't compared: the next run reports no previous rate for those stays.- If two stays of one hotel in a row get no answer, the hotel's remaining stays are skipped, each with an uncharged error row saying so. One answered stay resets the count.
maxConcurrency(default 16, from 1 to 32) is how many requests run at once.delayMs(default 0) adds a pause before each, and values above 2,000 are treated as 2,000. We'd leave both alone.- A run that the platform restarts carries on where it stopped. No stay is repeated or billed twice.
checkinandcheckoutin lowercase are accepted too.
β¬οΈ Output
Each room is one row in the dataset, and the Output tab has an Overview table. Rows within a stay are cheapest first. If you ask for both rate types you get each room twice, marked by rateMode. Here's a points row from a real run, abridged:
{"id": "LONCWHI-2026-11-10-2026-11-13-K1D-LV0-points","hotelId": "LONCWHI","hotelName": "Hilton London Canary Wharf","brandCode": "HI","url": "https://www.hilton.com/en/book/reservation/rooms/?ctyhocn=LONCWHI&arrivalDate=2026-11-10&departureDate=2026-11-13&room1NumAdults=2&numRooms=1&displayCurrency=GBP","checkIn": "2026-11-10","checkOut": "2026-11-13","nights": 3,"adults": 2,"children": 0,"childrenAges": [],"rooms": 1,"roomId": "K1D","roomName": "King Deluxe Room","roomDescription": "Treat yourself to this contemporary King Deluxe Room, starting at 33 sq. m./355 sq. ft. This spacious room has large windows and a king bed.β¦","roomCategory": "guest","accommodationCode": "STD","numBeds": 1,"sleeps": 2,"isAccessible": false,"isSuite": false,"isExecutive": false,"ratePlanId": "LV0","ratePlanName": "Flexible Rate","ratePlanDescription": null,"specialRateType": null,"isAdvancePurchase": null,"isLeadRate": true,"currency": "GBP","pricePerNight": 343.67,"priceTotal": 1031,"pricesIncludeTax": true,"pricePerNightUSD": 455.43,"pricePerNightText": "Β£344","priceAfterTaxText": "Β£1,031","isTaxIncluded": true,"isRateChanging": true,"serviceChargeDetails": null,"pointsPerNight": 176000,"pointsTotal": 528000,"pointsNightly": [189000, 185000, 154000],"pointsRatePlanId": "HPPRP1","hasPointsRate": true,"isPointsRateChanging": true,"isMemberRate": false,"isConfidentialRate": false,"isCommissionable": true,"ratePlanCount": 17,"ratePlanCodes": ["LV0", "HPPRP1", "R3X", "H3F", "RPLOCR", "RPLOSR", "β¦"],"amenities": ["Alarms - Audible", "Automatic Door Closer", "β¦"],"highlights": ["Sleeps 2", "Mini refrigerator", "Hand-held shower", "β¦"],"attributes": ["Sleeps 2", "Workspace", "Mini refrigerator"],"imageUrl": "https://www.hilton.com/im/en/LONCWHI/22774844/king-deluxe-room.jpg?β¦","isLowestRate": false,"hotelLowestPerNight": 245.75,"hotelLowestPointsPerNight": 70000,"rateMode": "points","scrapedAt": "2026-10-07T19:27:36.960Z"}
The id is built from the hotel, the stay, the room and the rate plan. It's unique across a run, and you can join on it. Each row has one room photograph, in imageUrl.
Lead rate, or one row per rate plan. By default each room is priced at its lead rate, the plan Hilton shows first for it, and isLeadRate marks it. On a default cash row Hilton gives that public rate a code (ratePlanId) and no name, and ratePlanName is empty. With "Every rate plan" on, each plan is a row with its own price, name, terms (ratePlanDescription, isAdvancePurchase, specialRateType) and tax flag. Those three terms columns fill only in that mode. Award plans paid only in points are rows too, with pricePerNight empty and the points columns filled.
Prices as Hilton shows them. pricePerNight is the nightly rate exactly as Hilton's booking page shows it: the average over the nights where the rate changes during the stay, including any mandatory nightly charge Hilton adds. Whether it includes tax depends on the hotel, and pricesIncludeTax tells you. It's false where tax is added at checkout (the United States, the UAE and Japan, for example) and true where it's already inside (UK hotels, VAT included). priceTotal is Hilton's stay total for the room with all taxes and charges. isTaxIncluded is kept for compatibility and always equals pricesIncludeTax. hotelLowestPerNight is on the same basis as pricePerNight. roomDescription and serviceChargeDetails keep the light formatting tags Hilton writes them with.
Points. The points columns (pointsPerNight, pointsTotal, pointsNightly, pointsRatePlanId and hotelLowestPointsPerNight) are empty unless you choose the points rate type, which is off by default.
Price memory. With a price memory store named, each row of a stay seen before also has previousLowestPerNight, previousScrapedAt, priceChange and priceChangePct.
Sold out, and stays with no answer. A stay with nothing on sale returns one row with isSoldOut: true, availabilityStatus, the hotel code, dates and party. hotelName is empty on that row, because Hilton's sold-out answer doesn't include it. A hotel code Hilton doesn't know, a link that names no hotel, or a stay that couldn't be answered returns one row with error saying why.
The price calendar rows
With the calendar on, you get one row per hotel and arrival date in place of the room list. It runs from your check-in date to the end of that month, then through each further month you ask for (calendarMonths, default 1), for a stay of your length (nights). Dates before the check-in date are left out.
Each row has checkIn, checkOut, pricePerNight (the hotel's lowest nightly rate for that stay, on the same basis as the room list), pricesIncludeTax, ratePlanId, ratePlanName, roomId, roomsLeft (rooms left at that rate), depositAmount, isAvailable, calendarMonth, calendarNights (the stay length the dates in that row's month were priced for) and isCalendarDay: true. With the points rate type, a points row per date has pointsFirstNight (the lowest award price for the first night), pointsRatePlanName (the name of that award plan, null when Hilton gives none) and, for one-night stays, pointsPerNight.
Checked on 6 October 2026 against the room list for the same hotels and dates: 27 of 27 cash prices equal the lowest room rate, with the same rate plan and room, and 12 of 12 one-night points prices equal the lowest award.
{"isCalendarDay": true,"hotelId": "NYCTEPO","hotelName": "Tempo by Hilton New York Times Square","checkIn": "2026-11-11","checkOut": "2026-11-12","nights": 1,"isAvailable": true,"currency": "USD","pricePerNight": 399.79,"pricesIncludeTax": false,"ratePlanId": "HPPAP2","ratePlanName": "Honors Discount Non-refundable","roomId": "K1","roomsLeft": 22,"calendarMonth": "2026-11","rateMode": "cash"}
How much does it cost to scrape Hilton room rates?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.002 | $0.002 | $0.002 | $0.002 |
hotel-checked, per hotel and stay Hilton answered, whatever the answer | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
hotel-priced, per hotel and stay that came back with rates, every room included | $0.003 | $0.0027 | $0.0024 | $0.0021 |
calendar-day, per priced arrival date (price calendar only) | $0.0005 | $0.00045 | $0.0004 | $0.00035 |
Enterprise plans pay the Business price.
$3.50 per 1,000 priced hotel-stays on the Free plan, $2.60 on Business, however many rooms each one returns. Each rate type counts as its own hotel-stay. Proxy usage and platform usage are inside that price.
- One hotel, one stay: $0.002 + $0.0005 + $0.003 = $0.0055 ($0.0046 on Business).
- Five hotels across two date ranges, in cash and in points, is twenty hotel-stays: $0.002 + 20 Γ $0.0035 = $0.072 ($0.054 on Business).
- A thousand hotel-stays of which fifty are sold out: $0.002 + 1,000 Γ $0.0005 + 950 Γ $0.003 = $3.352 ($2.497 on Business).
- One hotel's price calendar with 30 priced dates in the month: $0.002 + $0.0005 + 30 Γ $0.0005 = $0.0175 ($0.013 on Business).
On the Free plan, Apify's $5 of monthly credits pays for about 69 runs the size of the second example, close to 1,400 priced hotel-stays.
What a sold-out or unanswered stay costs
You pay the full $0.0035 ($0.0026 on Business) only for a hotel-stay that returns rates.
- Hilton has nothing on sale for the dates: you get one row marked sold out and pay the $0.0005 check fee.
- The lowest rate hasn't moved and "Only new or changed" is on: you get no row and pay the $0.0005 check fee.
- The stay couldn't be answered, or Hilton doesn't know the code: you get one row saying why and pay nothing.
In the price calendar, hotel-checked is charged once per hotel and month Hilton answered and calendar-day once per priced date. hotel-priced isn't charged there, and a date with nothing on sale is returned free.
How many rooms come back, and how fast?
A hotel-stay takes a second or two on its own, and stays are read many at a time.
| Run | Hotel-stays | Rows | Time |
|---|---|---|---|
| One hotel, one stay, 6 rooms kept | 1 | 6 | about 2 s |
| Eight hotels in four cities, four stays, cash, every room | 32 | 219 | 2.5 to 3.2 s |
| Eight hotels, two stays, cash and points, every room | 32 | 384 | about 4.5 s |
| Eight hotels, four stays, cash and points, every room | 64 | 796 | 5.4 s |
| 60 hotels, three stays | 180 | 918 rooms, 14 sold out | about 8 s |
Whole runs on Apify, measured on 1 and 2 October 2026.
On 6 October 2026, three hotels for one stay in cash and points returned 116 rows over 6 hotel-stays at one row per room. The same stays with every rate plan returned 1,253 rows a day earlier, 70 to 408 per hotel-stay. The price calendar answers a month of dates for one hotel in about a third of a second: three hotels, two months, cash and points came to 308 rows in under 3 seconds.
Batch your hotels. Dozens of hotel-stays in one run finish in seconds and pay one start fee, and many thousands fit inside the default one-hour run limit.
Limitations
- Cancellation deadlines and the tax breakdown per rate aren't returned.
ratePlanDescriptionhas the plan's own terms in words. - Taxes aren't itemised by kind. The nightly rate and the stay total with tax are both numbers, but Hilton doesn't publish the split between taxes, service charges and fees.
pricePerNightUSDis on the same basis aspricePerNight. - Rooms left is returned only by the price calendar, for the cheapest rate of each date.
- The calendar's points price is the first night's award price. For stays longer than one night, the average per night is in the room list.
- Award rates are the public award chart. Whether a member has enough points to redeem depends on their own account and isn't returned.
- A corporate or promotion code that doesn't cover the hotel's brand isn't rejected: Hilton returns its generic
LV0rate, which can be dearer than sending no code. The run log warns you when that happens. - Group codes and promotion codes couldn't be verified end to end. Corporate codes and special rates were.
- There's no hotel search here. You give hotels by code or URL, one or many per run.
- A stay must be between 1 and 30 nights.
Feeding a rate monitor or your own code
The setup we'd suggest for a comp-set monitor: an Apify Schedule, empty dates so the rolling window applies, a price memory store and "Only new or changed". Each run then returns only the stays whose lowest rate moved, and a webhook or the Slack and Google Sheets integrations can pass them on. Zapier, Make, Airbyte and GitHub connect the same way.
From code, one call starts a run and returns the rows:
POST https://api.apify.com/v2/acts/boncross~hilton-room-rates/run-sync-get-dataset-items
There's an apify-client package on npm for Node.js and on PyPI for Python. An agent in Claude Desktop, Cursor or your own MCP client can call the actor through mcp.apify.com as boncross/hilton-room-rates: it sends hotels and dates and gets the priced rooms back as JSON.
FAQ
Do I need proxies or a Hilton account?
No proxy, no proxy charge and no sign-in. These are the rates any visitor sees without logging in.
What is a Hilton hotel code?
It's the code Hilton gives each property, such as LONCWHI for Hilton London Canary Wharf or DXBGIGI for Hilton Garden Inn Dubai Deira. It appears as ctyhocn in hilton.com booking URLs, and you can paste those URLs in place of the code.
What do I get for a sold-out stay, and do I pay for it?
You get one row with isSoldOut: true and the dates, which is what a rate monitor needs to know. It costs the $0.0005 check fee, a seventh of the Free-plan price of a priced stay. A stay Hilton never answered is an error row and costs nothing.
How do I compare cash and points for the same room?
Choose both rate types. Each room comes back twice, once as a cash row and once as a points row that also has a cash rate and its plan name. Divide one by the other and you have the cash value of a point, room by room.
Why does an award stay show a different points cost for each night?
Hilton prices award nights by the night. A three-night stay can cost a different number of points on each of the three. You get the nightly figures as a list in pointsNightly, alongside the total for the stay.
Should I turn on every rate plan?
Only if you need the plans themselves. The default row per room is enough to track a hotel's prices, and it keeps your dataset small. Every rate plan costs the same per hotel-stay but returns 10 to 30 times the rows, capped at the 250 cheapest per stay.
How do I find the cheapest night in a month?
Turn on the monthly price calendar and set "Nights" to your stay length. Sort the rows by pricePerNight. Then price the dates you like with the calendar off to see each room.
My corporate code returned a dearer rate. Why?
The code probably doesn't cover that hotel's brand. Hilton doesn't reject it. It answers with its generic LV0 rate, and the run log flags it.
Is it legal to scrape Hilton?
Scraping publicly available data is generally lawful. These are rates anyone can see without signing in, and no personal data is collected. You remain responsible for complying with Hilton's terms and the law that applies to you.
More from BonCross
- Hilton Hotel Details Scraper: Everything a Hilton property publishes about itself: address, coordinates, phone,β¦
- Hilton Hotel Search Scraper: Every Hilton hotel for any destination and dates.
- ikyu.com Room Rates Scraper (δΈδΌ): Each room and rate plan ikyu.com (δΈδΌ) sells for a hotel or ryokan on your dates.
- ikyu.com Search Scraper (δΈδΌ): ikyu.com (δΈδΌ) search results for any Japanese area, station or landmark on your dates.
- Jalan.net Area Rates Scraper (γγγγ): Jalan (γγγγ) prices and rooms left for every available hotel in an area, a wholeβ¦
- Jalan.net Room Rates Scraper (γγγγ): Every plan and room Jalan (γγγγ) lists for a hotel on a date.
Your feedback
Seen a rate here that doesn't match Hilton's booking page, or a room that's missing from a stay? Send us the hotel code and dates on the Issues tab in Apify Console. We read every issue, and the awkward cases are the ones that improve the actor.