Expedia Hotel Details Scraper
Pricing
from $0.84 / 1,000 hotel-scrapeds
Expedia Hotel Details Scraper
Scrape the full property record from Expedia and Hotels.com. Just add property IDs or hotel links and get name, address, coordinates, star class, guest score, amenities, check-in and check-out times, policies, fees and the property's own answered questions. $1.20 per 1,000 hotels.
Pricing
from $0.84 / 1,000 hotel-scrapeds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Share
What is Expedia Hotel Details Scraper?
A hotel's page on Expedia holds a lot that never reaches a search result: the exact coordinates, the fees you pay at the desk, check-in times, the pet policy, the property's own answers to common questions. Expedia Hotel Details Scraper gets you all of it as one record per hotel, from Expedia or Hotels.com. Paste property IDs or hotel links. No dates are needed, because a property record doesn't change with the stay.
What you can count on:
- Coordinates to six decimal places, with the full address, city, postcode and country. They're the property's own published position, good enough to map.
- The charges a headline price hides. Destination fees, city tax, parking and resort charges are returned as the property wrote them, next to the optional extras.
- Times as clock times. Check-in from, check-in until and check-out are returned as
15:00,00:00and11:00, with the site's wording kept beside them. - Both scores. The official star class and the guest score out of 10, with the review count and the score by category. Measured on four properties, all five fields were present on all four.
- About 250 hotels a minute. 150 properties took 35 seconds.
It costs $1.20 per 1,000 hotels on the Free plan and $0.84 on Business, with proxy usage and platform usage included.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 23 of 23 live checks on its inputs and filters passed on 7 October 2026
- 24 hotels run the same day across Expedia and Hotels.com, in two Expedia markets: 24 records, none empty
Typical jobs: geocoding a hotel list you already have, building a map layer for a city, showing guests the fees they'll pay on arrival, checking that your own property's policies, times and amenities are listed as you intended, and enriching a search or rates dataset with address and amenities. The answered questions about pets, parking and check-in are ready-made material for a chatbot.
What data is in the record?
| 🏨 Hotel name and property ID | Site (Expedia or Hotels.com) |
| 📍 Latitude and longitude | 📮 Full address and postcode |
| City, province and country | Market the record came from |
| ⭐ Star class | Guest score, its wording and review count |
| Score by category | What guests loved |
| ✨ Popular amenities | Amenities by category, in full |
| 🕒 Check-in and check-out times | Minimum check-in age |
| Special check-in instructions | 💵 Fees payable at the property |
| Optional extras | What you need to know |
| 🐾 Pet policy | Children and extra beds |
| 💳 Card brands accepted | Full policy sections |
| ❓ Answered questions | Neighbourhood write-up |
| ♿ Accessibility detail | Important information |
| 🖼 Photos, with captions where the site gives one | 🔗 Link to the hotel page |
How to scrape Expedia hotel details
It's a form. You paste hotels in and download a table.
- Create a free Apify account.
- Open Expedia Hotel Details Scraper.
- Add property IDs or paste hotel page links into Hotels. For a long list, use Start URLs, which loads links from a file, a Google Sheet or a remote list.
- Choose Expedia or Hotels.com. A pasted link already names its own site.
- Click Start, and download the records as Excel, CSV, JSON, XML or HTML when the run finishes. Eight hotels take 6 to 9 seconds.
⬇️ Input
Paste property IDs or hotel page links, in any mix. The link https://www.expedia.com/Santorini-Hotels-Ira-Hotel-Spa.h6116875.Hotel-Information and the bare number 6116875 mean the same hotel. You can get IDs for a whole destination from Expedia Hotel Search Scraper.
Each property is one row, and there's a single limit: "Maximum rows for the whole run" stops the run once that many properties have been returned. 0 means no limit.
Three hotels on three continents
{"hotels": ["12570","https://www.expedia.com/Santorini-Hotels-Ira-Hotel-Spa.h6116875.Hotel-Information","375613"]}
A compact record: no photos, no long lists
{"hotels": ["12570", "1723187"],"includePhotos": false,"includeAmenityGroups": false,"includePolicies": false,"includeFaqs": false}
The same hotels read from Hotels.com
{"hotels": ["12570", "3388", "22902"],"site": "hotels"}
Read from another country's site
{"hotels": ["12570", "6116875"],"market": "uk","maxItems": 500}
The four include switches are all on by default. They control the long blocks: the full policy sections, the answered questions, the photo gallery (most of a row's size, around 90 images on a typical hotel) and the full amenity list. Turn them off for a compact record of name, address, coordinates, stars, guest score, amenities and times. The summarised policy columns (check-in and check-out, fees, pets, children and the rest) stay either way.
Market picks which country's site to read. Expedia runs 40 of them, and a record is read from one per run. Leave it on Auto and the first pasted link's own site sets the market, while a list of bare property IDs uses the US site. The property IDs are the same in each market, and each row says which one it came from.
What changes with the market is the link in each row, the order of the address lines and any note that country's site adds for its own law. The French site, for one, adds a French tax-code disclosure to "You need to know". The property's own text is the same wherever you read it. Nothing here is priced, which means the market doesn't affect any money. For rates, use Expedia Room Rates Scraper.
Label language is English by default. The market's own language translates the site's labels (amenity names and groups, section headings) and leaves the property's own text as written. The summarised policy columns are filled either way.
For developers
- The switches are
includePolicies,includeFaqs,includePhotosandincludeAmenityGroups.maxItemsis the only row limit. startUrlstakes the same links ashotels, and the two are combined.siteapplies to bare property IDs only. A pasted link overrides it, and a list mixing Expedia and Hotels.com links is read correctly.- For a schedule, give
dedupStoreNamea name and setonlyNew. Each run then returns only properties no earlier run returned. maxConcurrency(default 4, up to 8) is how many hotels are fetched at once.delayMs(default 0) pauses after each request, per parallel lane, and values above 2000 are treated as 2000. The defaults suit almost any run.- If the platform moves or restarts a run part-way, it carries on where it stopped. Properties already in the dataset aren't fetched, delivered or billed again. Restarting a 150-property run part-way gave the same 150 rows as an uninterrupted run.
⬆️ Output
One row per property. This is the Hilton Chicago, read on 7 October 2026. The long lists and texts are shortened here, and the real record has 202 photos.
{"id": 12570,"brand": "expedia","market": "us","hotelId": 12570,"name": "Hilton Chicago","lat": 41.872505,"lng": -87.62482,"address": "720 S Michigan Ave, Chicago, IL, 60605","city": "Chicago","province": "IL","countryCode": "USA","postcode": "60605","stars": 4,"rating": 8.6,"ratingScale": 10,"ratingText": "Excellent","reviewCount": 3380,"categoryRatings": [{ "name": "Cleanliness", "score": 8.8 },{ "name": "Amenities", "score": 8.6 },{ "name": "Service", "score": 8.8 }],"vipMessage": null,"isVipAccess": false,"neighbourhoodTitle": "About the neighborhood","neighbourhood": "Located in Downtown Chicago, a neighborhood in Chicago, Hilton Chicago is near the airport and near a metro station...","amenities": ["Pool", "Hot Tub", "Pet friendly", "Free WiFi", "Restaurant", "Air conditioning"],"amenityGroups": [{ "group": "Property amenities","categories": [{ "category": "Parking and transportation","items": ["Covered self parking on site (USD 72 per night)", "Covered valet parking on site (USD 88 per day)", "Wheelchair-accessible parking and van parking available"] }] }],"photos": ["https://images.trvl-media.com/lodging/1000000/20000/12600/12570/fabe31cf.jpg?impolicy=resizecrop&rw=1200&ra=fit"],"photoCaptions": [null],"checkInFrom": "15:00","checkInUntil": "00:00","checkOutUntil": "11:00","checkInText": "Check-in start time: 3:00 PM; Check-in end time: midnight Early check-in subject to availability...","checkOutText": "Check-out before 11 AM Contactless check-out available Late check-out subject to availability...","minCheckInAge": 18,"specialCheckInInstructions": "Front desk staff will greet guests on arrival at the property...","petPolicy": "Pets allowed for an extra charge of USD 100 per accommodation, per stay Service animals are welcome, and are exempt from fees Up to 75 lbs per pet","childrenPolicy": "Children are welcome Children up to the age of 18 years can stay for free if using existing beds when occupying the parent or guardian's room...","fees": "You'll be asked to pay the following charges at the property. Fees may include applicable taxes: • Destination fee: USD 29.35 per accommodation, per night We have included all charges provided to us by the property.","optionalExtras": "• Fee for full breakfast: approximately USD 35 for adults and USD 17 for children • Fee for in-room wireless internet: USD 12.95 per day (rates may vary)...","youNeedToKnow": "Extra-person charges may apply and vary depending on property policy Government-issued photo identification and a credit card may be required at check-in for incidental charges...","weShouldMention": "The property has connecting/adjoining rooms, which are subject to availability...","paymentCards": ["American Express", "Diners Club", "Discover", "JCB International", "Mastercard", "Visa"],"policies": [{ "section": "Policies", "heading": "Check-in","lines": ["Check-in start time: 3:00 PM; Check-in end time: midnight", "Early check-in subject to availability"] }],"importantInfo": [{ "section": "Important information", "heading": "Fees","lines": ["You'll be asked to pay the following charges at the property. Fees may include applicable taxes:", "• Destination fee: USD 29.35 per accommodation, per night", "We have included all charges provided to us by the property."] }],"highlights": [{ "text": "Relax in the indoor pool", "detail": "A rare find in this area - enjoy a swim, whatever the weather." }],"accessibility": [{ "section": "Accessibility", "heading": "Common areas","lines": ["Wheelchair accessible (may have limitations)", "Assistive listening devices", "Braille/raised signage"] }],"faqs": [{ "question": "Is Hilton Chicago pet-friendly?","answer": "Yes, this property allows pets with a maximum weight of up to 75 lbs per pet. There's a fee of USD 100 per accommodation, per stay. Service animals are exempt from fees." }],"url": "https://www.expedia.com/en/h12570.Hotel-Information","scrapedAt": "2026-10-07T20:25:51.363Z"}
A few notes on the columns:
policiesandimportantInfohold the same content as the summarised fields, section by section, each with its heading and its lines. Nothing the site publishes is lost to the summarising.starsis the property's official class (1 to 5, half stars included).ratingis the guest score out ofratingScale(10),ratingTextthe site's word for it andreviewCountthe number of verified reviews the site states.categoryRatingshas the per-category scores shown beside it.amenitiesis the short set the site highlights first.amenityGroupsis the complete list, grouped the way the site groups it. It ran to around 36 to 108 entries per hotel on the properties measured.paymentCardsis null when the property publishes none.photosandphotoCaptionsline up index by index, with null where a photo has no caption.vipMessageis only filled for a VIP Access property. It's null whereverisVipAccessis false.minCheckInAgeis null where the property states no minimum age.hotelIdjoins these rows to the search, room rates and reviews actors listed at the end.- A hotel the site never answered is written as a row with an
error, and is never charged.
Expedia or Hotels.com: which should you read?
The two sites share property IDs and publish the same hotel, and you can read either with the same input and get the same columns. They don't fill them equally.
Hotels.com is available on the United States market only, where it answered 6 of 6 properties in testing. It publishes a shorter policy record. You get its fees, optional extras, pet, children and house policies (fees, optionalExtras, petPolicy, childrenPolicy, youNeedToKnow, and the full text in policies). The check-in and check-out times, special check-in instructions, accepted cards, neighbourhood text, weShouldMention and importantInfo were empty on all six Hotels.com properties measured. If you need those, read the same property ID on Expedia.
Hotels.com Japan isn't supported. Each hotel asked for there returns a row with an error that says so, at no charge. Use the Expedia site for Japan (expedia.co.jp). And if Hotels.com doesn't answer for a property on a given run, that property returns an uncharged error row saying so. Run it again later.
How fast is it?
One request per property returns the whole record, and several properties are fetched at the same time. Measured on Apify on 2 October 2026, on Tokyo properties:
| Run | Rows | Run time |
|---|---|---|
| 2 properties | 2 | 3 to 5 s |
| 8 properties | 8 | 6 to 9 s |
| 40 properties | 40 | 11 s |
| 150 properties | 150 | 35 s |
That works out at about a quarter of a second per property on a larger run, or roughly 250 a minute. 500 properties take about two minutes, and around 15,000 fit in the default one-hour run limit.
On that day's sample, name, address, coordinates, check-in and check-out times, amenities and answered questions were present on five of five properties.
How much does it cost?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, once per run | $0.002 | $0.002 | $0.002 | $0.002 |
hotel-scraped, per property returned | $0.0012 | $0.00108 | $0.00096 | $0.00084 |
Enterprise plans pay the Business price.
$1.20 per 1,000 hotels on the Free plan, $0.84 on Business. Nothing is added to that: proxy usage and platform usage are included, and you don't set up a proxy.
- 100 properties: $0.002 + 100 × $0.0012 = $0.122 ($0.086 on Business).
- 1,000 properties: $0.002 + 1,000 × $0.0012 = $1.202 ($0.842 on Business).
Apify's Free plan includes $5 of credits a month. That's about 40 runs of 100 hotels, or roughly 4,000 property records, without paying.
A hotel the site never answered costs nothing.
FAQ
Where do I get the property IDs?
From the hotel's page link, which you can paste as it is: the ID is the number after the h. For a whole city, Expedia Hotel Search Scraper returns an ID for each hotel it lists.
Why is there no description of the hotel?
The property's "About this property" text isn't returned. It was empty on every property measured. The neighbourhood write-up, the highlights and the answered questions are the descriptive text you do get.
Can I get the fees as numbers?
Not directly. Fees and policies are prose, as the property wrote them. You get them as text, cleaned of markup, but not parsed into amounts. In the Hilton Chicago record above the destination fee reads "USD 29.35 per accommodation, per night".
How do I make the rows smaller?
Turn off "Include photos" first, because the gallery is most of a row. Then "Include the full amenity list", "Include policies and fees" and "Include answered questions".
Does the record include room types or prices?
Neither. A property record takes no dates, and prices need them. Rooms and rates come from Expedia Room Rates Scraper, and search prices from Expedia Hotel Search Scraper.
Why does a time read "midnight" in the text?
checkInText and checkOutText are as published, and a property can write "midnight" or "noon". The parsed columns (checkInFrom, checkInUntil, checkOutUntil) give you the clock time.
Can I read one hotel from two markets in one run?
One market per run. Each country's site is its own listing, and the property IDs match across them. Run the hotel once per market you want.
What are the limits?
- There's no marketing description, and fees and policies are text, not parsed amounts.
- Hotels.com is read on the United States market only and publishes a shorter policy record, as described above.
- Room-level detail isn't here. Expedia Room Rates Scraper returns rooms and rates.
- One market per run.
vipMessage,minCheckInAgeandpaymentCardsare null where the property doesn't publish them.
Do I need proxies or an account?
You need neither. There's no login to give it, and proxy usage is part of the price.
Is it legal to scrape Expedia and Hotels.com?
The actor reads only pages Expedia and Hotels.com serve to a logged-out visitor. It takes no account access and collects no private data. Scraping public data is generally lawful in the UK, EU and US. You're responsible for how you use what you collect, including under GDPR where it identifies a person, and for the site's own terms.
From your own tools
To keep adding hotels to a table, schedule the run in Apify with a memory store named and "Only new properties" on. Each run then returns only the hotels you don't have yet. Results can go on to Google Sheets, Airbyte, Make or Zapier, or to your own endpoint through a webhook.
curl -X POST "https://api.apify.com/v2/acts/boncross~expedia-hotel-details/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"hotels":["12570"]}'
For an AI agent, add the Apify MCP server (mcp.apify.com) to your client and call boncross/expedia-hotel-details. It can then answer questions about a hotel's location, times, fees and policies from the record.
More from BonCross
- Expedia Hotel Search Scraper: Every hotel Expedia and Hotels.com list for a destination and your dates.
- Expedia Reviews Scraper: Expedia guest reviews for any hotel, including hotels given as Hotels.com links.
- Expedia Room Rates Scraper: Every room Expedia and Hotels.com are selling for a hotel and your dates.
- Google Hotels Prices Scraper: Google Hotels price comparisons for any hotel and stay.
- Google Hotels Search Scraper: Google Hotels prices for a whole city or map area.
- Hilton Hotel Details Scraper: Everything a Hilton property publishes about itself: address, coordinates, phone,…
Your feedback
Is a field empty that the hotel's page clearly shows, or do you need something the record doesn't have? Raise it on the Issues tab in Apify Console. BonCross reads every issue and replies there.