Expedia Hotels Scraper avatar

Expedia Hotels Scraper

Pricing

from $4.00 / 1,000 hotel scrapeds

Go to Apify Store
Expedia Hotels Scraper

Expedia Hotels Scraper

Scrape Expedia.com hotel search results by destination + dates (or a Hotel-Search URL): name, nightly price, total, star class, guest rating, review count, location, image, deal badges, and property URL. Filters for star, guest rating, and price. PPE. MCP-ready.

Pricing

from $4.00 / 1,000 hotel scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Scrape Expedia.com hotel search results at scale. Give it a destination and dates (or a Hotel-Search URL) and get back clean, structured records for every hotel on the results pages — nightly price, total price, star class, guest rating, review count, location, image, deal badges, and the property URL.

Clears Expedia's anti-bot (PerimeterX + Akamai) with a stealth browser on residential proxies and reads the structured property-search data directly. MCP-ready for AI agents (Claude, ChatGPT, Gemini). Pay only for the hotels you keep.

What you get

FieldDescription
nameHotel name
pricePerNightLead nightly price (number, in currency)
strikethroughPriceWas-price when a discount is shown
totalPriceTotal stay price for the date range
priceLabelPrice exactly as Expedia displays it (e.g. $199)
currencyCurrency code label (default USD)
starRatingProperty star class, 0–5
guestRatingGuest review score, 0–10
guestRatingLabelWord score (e.g. Wonderful)
reviewCountNumber of guest reviews
neighborhoodArea / neighborhood when shown
latitude, longitudeMap coordinates when present
imageLead photo URL
freeCancellationTrue when the card advertises free cancellation / fully refundable
propertyUrlLink to the hotel page on Expedia
hotelIdExpedia property ID
positionResult rank across the scraped pages
searchQueryThe destination you searched
scrapedAtISO 8601 timestamp

When to use it

  • Hotel price intelligence — track nightly rates across a city and date range.
  • Travel market research — star/guest-rating distribution, review volume, neighborhood spread.
  • Lead lists for travel tooling — feed an itinerary builder, comparison site, or AI travel agent.
  • Revenue / competitive monitoring — watch how a property ranks and prices versus its set.

Not what you need? For a single hotel's full detail or its reviews, use a dedicated hotel-detail / reviews actor — this one scrapes search result pages.

Pricing

Pay-per-event (PPE):

EventPrice
Actor start$0.00005
Hotel scraped$0.004 per hotel kept

Hotels removed by your filters are not charged. A typical 50-hotel run costs about $0.20. Pay-per-usage (compute + proxy) is also available — pick whichever billing model suits your job size at run time.

Input

Minimal — just a destination:

{
"destination": "New York, New York",
"checkIn": "2026-07-15",
"checkOut": "2026-07-17",
"adults": 2,
"maxResults": 50
}

Or scrape a search URL directly:

{
"startUrls": [
"https://www.expedia.com/Hotel-Search?destination=Tokyo&startDate=2026-07-15&endDate=2026-07-17"
],
"maxResults": 100
}

Input fields

FieldTypeDefaultNotes
destinationstringPlace to search (city, region, landmark).
checkIn / checkOutstring YYYY-MM-DD+14 / +16 daysStay window. Auto-defaulted when omitted.
adultsinteger21–14. Affects price.
roomsinteger11–8.
startUrlsarrayExpedia Hotel-Search URLs (alternative to destination).
maxResultsinteger50Cap across all pages.
sortByenumrecommendedpriceLowToHigh, starRating, guestRating, distance.
minStarRatinginteger0–5 filter.
minGuestRatinginteger0–10 filter.
minPrice / maxPriceintegerNightly-price filters.
freeCancellationOnlybooleanfalseKeep only free-cancellation cards.
currencystringUSDOutput label.
proxyConfigurationobjectresidential→datacenterSee proxies below.

Proxies & reliability

Expedia is protected by Akamai Bot Manager, which gates on IP reputation. Residential proxies are required — datacenter IPs are blocked. The actor automatically prefers Apify Residential and falls back to Apify datacenter (US) when residential is unavailable on your plan.

If a run is blocked, the actor honest-fails: it returns a single diagnostic record with a clear status message and charges $0 — it never silently reports an empty success. Re-run, or run with residential proxies, to get data.

Output example

{
"recordType": "hotel",
"hotelId": "12345",
"name": "The Manhattan Grand",
"pricePerNight": 219,
"totalPrice": 438,
"currency": "USD",
"starRating": 4,
"guestRating": 8.6,
"guestRatingLabel": "Wonderful",
"reviewCount": 1842,
"neighborhood": "Midtown",
"freeCancellation": true,
"propertyUrl": "https://www.expedia.com/h12345.Hotel-Information",
"image": "https://...jpg",
"position": 3,
"searchQuery": "New York, New York",
"scrapedAt": "2026-06-21T00:00:00.000Z"
}

Use with AI agents (MCP)

This actor is exposed through the Apify MCP server as apify--expedia-hotels-scraper. Agents call it with a destination + dates and receive structured hotel records — ideal for travel-planning and price-comparison assistants. Output is flat and token-efficient; nulls are explicit.

FAQ

How does it get past Expedia's anti-bot? A stealth browser clears Expedia's PerimeterX/Akamai challenge, then the actor captures the property-search GraphQL response for clean, structured data.

Why do I need residential proxies? Expedia's anti-bot blocks datacenter IPs. Residential (or mobile) IPs pass.

How many hotels per search? Expedia returns roughly 50 per result page; the actor paginates up to your maxResults.

Can I scrape a single hotel's reviews? Not with this actor — it scrapes search result pages. Use a dedicated reviews actor for that.

Is pagination charged twice? No. Hotels are de-duplicated by ID across pages; you're charged once per unique hotel kept.

What if a destination has no hotels? You get an empty dataset with a clear status message — and $0 in hotel charges.

This actor collects publicly available data from Expedia.com search result pages. Use it in compliance with Expedia's Terms of Use and all applicable laws (including data-protection regulations such as GDPR/CCPA). Do not use scraped data to infringe intellectual-property rights or for any unlawful purpose. You are responsible for how you use the output. This actor is not affiliated with, endorsed by, or sponsored by Expedia, Inc. or the Expedia Group.