Expedia Hotels Scraper avatar

Expedia Hotels Scraper

Pricing

Pay per usage

Go to Apify Store
Expedia Hotels Scraper

Expedia Hotels Scraper

Extract hotel data from Expedia instantly. Scrape prices, reviews, ratings, availability & amenities across destinations. Perfect for travel research, price monitoring & market analysis. Get structured hotel information for comparison & analytics. No coding required.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Expedia Hotels Listings Scraper

Extract structured Expedia hotel listing data from Hotel-Search result pages. Collect prices, ratings, property links, listing metadata, and search context for analysis, monitoring, and travel intelligence workflows.


Features

  • Hotel listings extraction - Capture Expedia search-result cards with core property metadata.
  • Rich pricing details - Collect nightly, total, and strikeout prices when available.
  • Rating and review context - Include stars, guest score, and review counts.
  • Clean output records - Automatically omit empty values instead of storing null fields.
  • Duplicate-safe collection - Save each hotel once per run using hotel ID deduplication.

Use Cases

Price Monitoring

Track hotel prices across destinations and travel windows to identify spikes, drops, and seasonal movement.

Market Comparison

Benchmark competing properties in the same region by rating, review volume, and price visibility.

Travel Dataset Building

Generate structured hotel datasets for BI dashboards, forecasting, and internal travel tools.

Offer Intelligence

Analyze member-price indicators, strikeout price patterns, and cancellation signals at listing level.


Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNoExpedia London Hotel-Search URLDirect Expedia Hotel-Search URL. If provided, it overrides manual filters.
regionIdStringNo6139104Expedia region ID used when startUrl is not provided.
destinationStringNoLondon, United Kingdom (LON-All Airports)Destination label for the search query.
checkInDateStringNo2026-04-19Check-in date in YYYY-MM-DD format.
checkOutDateStringNo2026-04-20Check-out date in YYYY-MM-DD format.
adultsIntegerNo2Number of adults in room 1.
childrenStringNo""Comma-separated child ages for room 1 (for example 4,8).
sortStringNoRECOMMENDEDSearch sort mode.
results_wantedIntegerNo20Maximum number of listings to save.
max_pagesIntegerNo8Maximum result-load rounds to attempt.
proxyConfigurationObjectNoResidential Apify ProxyProxy settings for stable extraction.

Output Data

Each dataset item can contain:

FieldTypeDescription
hotel_idStringExpedia hotel ID
hotel_nameStringProperty name from search card
cityStringCity or area label
star_ratingNumberOfficial hotel star rating
guest_ratingNumberGuest score shown in listing card
guest_rating_out_of_fiveNumberGuest score in 5-point representation
review_countIntegerNumber of guest reviews
review_labelStringRating label such as "Very Good"
nightly_priceStringNightly price text
total_priceStringTotal stay price text
strikeout_priceStringPrevious price text when present
taxes_and_fees_noteStringTaxes and fees message
free_cancellationBooleanFree cancellation signal when available
member_price_availableBooleanMember price indicator
vacation_rentalBooleanVacation rental marker
image_urlStringPrimary listing image URL
property_urlStringExpedia hotel detail URL
region_idStringSearch region ID
region_nameStringSearch region name
check_inStringCheck-in date
check_outStringCheck-out date
adultsIntegerAdults in room 1
childrenArrayChild ages in room 1
sortStringSort mode used in request
search_idStringExpedia search identifier
source_urlStringSource endpoint URL
operation_nameStringListing operation name
scraped_atStringISO timestamp of capture

Usage Examples

Basic Run

{
"startUrl": "https://www.expedia.com/Hotel-Search?regionId=6139104&destination=London%2C%20United%20Kingdom%20%28LON-All%20Airports%29&adults=2&children=&sort=RECOMMENDED&useRewards=false&semdtl=&userIntent=&vip=false&startDate=2026-04-19&endDate=2026-04-20&theme=&latLong&pwaDialog=&daysInFuture&stayLength",
"results_wanted": 20,
"max_pages": 8
}

Manual Search Parameters

{
"regionId": "6139104",
"destination": "London, United Kingdom (LON-All Airports)",
"checkInDate": "2026-04-19",
"checkOutDate": "2026-04-20",
"adults": 2,
"children": "6",
"sort": "RECOMMENDED",
"results_wanted": 40,
"max_pages": 10
}

Proxy-Optimized Run

{
"startUrl": "https://www.expedia.com/Hotel-Search?regionId=6139104&destination=London%2C%20United%20Kingdom%20%28LON-All%20Airports%29&adults=2&children=&sort=RECOMMENDED&useRewards=false&semdtl=&userIntent=&vip=false&startDate=2026-04-19&endDate=2026-04-20&theme=&latLong&pwaDialog=&daysInFuture&stayLength",
"results_wanted": 30,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Sample Output

{
"hotel_id": "5173526",
"hotel_name": "Point A London Kings Cross - St Pancras",
"city": "London",
"star_rating": 2.5,
"guest_rating": 8.4,
"guest_rating_out_of_five": 4.2,
"review_count": 2888,
"review_label": "Very Good",
"nightly_price": "$101 nightly",
"total_price": "$121",
"strikeout_price": "$135",
"taxes_and_fees_note": "Total with taxes and fees",
"free_cancellation": false,
"member_price_available": true,
"vacation_rental": false,
"image_url": "https://images.trvl-media.com/lodging/6000000/5180000/5173600/5173526/24292dd5.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"property_url": "https://www.expedia.com/London-Hotels-Point-A-Hotel-London-Kings-Cross-St-Pancras.h5173526.Hotel-Information?...",
"region_id": "6139104",
"region_name": "London, United Kingdom (LON-All Airports)",
"check_in": "2026-04-19",
"check_out": "2026-04-20",
"adults": 2,
"children": [],
"sort": "RECOMMENDED",
"search_id": "5546132f-1251-4ae8-b52a-9ad927c5ee32",
"source_url": "https://www.expedia.com/graphql",
"operation_name": "PropertyListingQuery",
"scraped_at": "2026-04-06T13:32:11.102Z"
}

Tips For Best Results

Start With Default Volume

  • Use results_wanted: 20 first to validate destination and timing.
  • Increase volume only after verifying stable output.

Use Residential Proxies

  • Residential routing improves reliability on protected travel pages.
  • Keep request volume moderate when collecting large destination sets.

Keep Dates Valid

  • Use valid future check-in/check-out values when building URLs from parameters.
  • Ensure check-out is after check-in.

Expect Field Variance

  • Not every listing exposes every field.
  • Empty/null fields are removed automatically from dataset records.

Integrations

  • Google Sheets - Export pricing and rating snapshots for analysts.
  • Airtable - Build searchable destination and hotel tracking tables.
  • Looker Studio - Visualize market trends across city/date combinations.
  • Webhooks - Trigger downstream enrichment or alerting pipelines.

Export Formats

  • JSON - Best for APIs and programmatic pipelines.
  • CSV - Best for spreadsheet workflows.
  • Excel - Best for reporting teams.
  • XML - Best for legacy integrations.

Frequently Asked Questions

Why are some fields missing in certain records?

Listings do not always expose the same details. The actor keeps only non-empty values.

Can I scrape multiple destinations?

Yes. Run one job per destination URL or schedule separate runs with different input payloads.

How many listings can I collect?

It depends on destination inventory and load depth. Increase max_pages and results_wanted as needed.

Why does proxy matter?

Some Expedia result pages apply request-rate controls. Residential proxies improve run stability.

Does the actor remove duplicates?

Yes. Duplicate listing cards are filtered by hotel ID.


Support

For issues or feature requests, use Apify Console support channels.

Resources


This actor is designed for legitimate data collection and analysis workflows. You are responsible for complying with website terms, applicable laws, and responsible data usage practices.