ParseForge Scrapers

Expedia Hotel Listings Scraper

parseforge/expedia-scraper

TravelLead generationOther

Scrape Expedia hotel listings by destination or URL. Returns property name, price, star rating, guest rating, and booking link. No API key needed.

Run this scraper See the API call
Total users
38
Monthly active
2
Total runs
346
Bookmarked
0
Rating
Not rated yet
Last modified
11 days ago

Overview

ParseForge

Expedia Hotel Listings Scraper

Scrape Expedia hotel listings for any destination and dates, up to a million properties per run. Every listing comes with its name, price, star rating, guest rating, and booking link. No login or API key. Export to CSV, JSON, Excel, or XML.

Expedia's website uses heavy anti-bot protection (DataDome and Akamai) that blocks standard scrapers. This Actor reads the public hotel search results directly, filtered by price, star rating, guest rating, and sort order, and returns each property in one fixed schema. It handles pagination and proxy rotation automatically.

Who uses it What they scrape Expedia for
Travel market researchers Which hotels are available in a city on specific dates and at what price range
Competitive intelligence analysts How hotel prices and ratings compare across destinations for a brand
Price monitoring teams Track nightly rates for a set of hotels over time to adjust pricing strategies
Travel bloggers and content creators Build a dataset of hotel options for a destination guide or comparison article

What it does

This Actor collects Expedia hotel listings by destination or direct URL, and returns each property as a flat row with name, price, star rating, guest rating, and booking link.

  • ๐Ÿ” Destination search: Enter a city or region and dates, and the Actor fetches all matching hotel listings.
  • ๐Ÿ”— Direct URL mode: Paste a full Expedia hotel search URL to scrape exactly that page, ignoring other filters.
  • ๐Ÿ’ฐ Price filters: Set minimum and maximum price per night to narrow results to your budget range.
  • โญ Star and guest rating filters: Filter by star rating (1-5) and minimum guest rating (0-10) to target quality properties.
  • ๐Ÿ“Š Sort options: Sort by recommended, price low to high, price high to low, guest rating, or star rating.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Expedia data

๐Ÿ“ˆ Monitor hotel pricing trends.

A travel analytics firm runs the Actor weekly for top destinations to track price changes and inform their clients' booking decisions.

๐Ÿ” Build a hotel comparison database.

A travel startup scrapes Expedia listings for 50 cities to populate a price comparison tool with live rates and ratings.

๐Ÿ“Š Support market research reports.

A hospitality consultant collects hotel data for a city to analyze supply, price distribution, and star rating mix for a client report.

๐Ÿจ Optimize revenue management.

A hotel chain uses the Actor to monitor competitor prices on Expedia for their market, adjusting their own rates to stay competitive.

Why choose this scraper

What you get
No login needed Scrape Expedia without an account or API key.
Residential proxies built in Handles DataDome and Akamai protection automatically.
Flexible input Use a destination name or a direct URL, with date and guest count.
Filter on the fly Set price range, star rating, guest rating, and sort order before the run.
Export ready Results come as CSV, JSON, Excel, or XML with one row per property.

How it compares

This Actor focuses on Expedia hotel listings (prices, ratings, and booking links), while the competitors below cover reviews or Google Hotels data.

Feature ParseForge Google Hotels Scraper - Prices, OTA Rates, Room Rates & Reviews Expedia Reviews Scraper โœˆ๏ธ Hotel Ratings, Text & Sentiment Hotels.com Reviews Scraper ๐Ÿจ Ratings, Text & Sentiment
Scrapes hotel listings (name, price, star rating) Yes Yes Not listed Not listed
Scrapes hotel reviews (text, ratings, sentiment) Not listed Not listed Yes Yes
Price filter (min/max per night) Yes Not listed Not listed Not listed
Star rating filter Yes Not listed Not listed Not listed
Guest rating filter Yes Not listed Not listed Not listed
Sort by price, rating, or recommendation Yes Not listed Not listed Not listed
Direct URL input Yes Not listed Not listed Not listed

Configure the run

Drive the Actor from a destination or a direct Expedia search URL, and apply filters for price, star rating, guest rating, and sort order as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "destination": "New York",
  "checkIn": "2026-03-15",
  "checkOut": "2026-03-18",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

A larger pull:

{
  "destination": "New York",
  "checkIn": "2026-03-15",
  "checkOut": "2026-03-18",
  "maxItems": 200,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

Pricing

Pay-per-result: $0.01599 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.60
1,000 results $15.99
10,000 results $159.90

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Expedia Hotel Listings Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Expedia through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/expedia-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your destination is a valid city or region name, and that your check-in and check-out dates are in YYYY-MM-DD format and in the future. Also ensure residential proxies are enabled.

The Actor is returning very few results.

Increase maxItems. Also check if your price or star rating filters are too restrictive. Try removing filters to see the full listing count.

I'm getting blocked or captchas.

Lower maxConcurrency to 1 or 2, and make sure you are using Apify residential proxies. If the issue persists, try a different proxy group or contact support.

The price shown is not in USD.

Expedia displays prices based on your IP location. The price filter is in USD, but the output price will be in the currency shown on the page. Use a proxy in a USD region if needed.

My direct URL is not working.

Ensure the URL is a valid Expedia hotel search URL (e.g., https://www.expedia.com/Hotel-Search?destination=...). If you provide a URL, the destination and date fields are ignored.

FAQ

Question Answer
Do I need an Expedia API key? No. This Actor scrapes the public Expedia website directly, so no API key or account is required.
What proxy type does this Actor use? It uses Apify residential proxies by default, which are required to bypass Expedia's DataDome and Akamai anti-bot protection.
Can I scrape Expedia without a check-in date? No. Expedia requires check-in and check-out dates to show results. You must provide both in YYYY-MM-DD format.
How many properties can I scrape per run? You can set maxItems up to 1,000,000. The actual number depends on how many listings Expedia returns for your query.
Does this scrape hotel reviews? No. This Actor only scrapes hotel listing data (name, price, star rating, guest rating, booking link). For reviews, use the Expedia Reviews Scraper.
Can I filter by price in a specific currency? The price filter is in USD. Expedia may show prices in other currencies depending on your location, but the filter applies to the displayed price.
What happens if I get blocked? Lower the maxConcurrency setting (default 3) and ensure residential proxies are enabled. The Actor retries failed requests automatically.
Can I scrape multiple destinations in one run? No. Each run scrapes one destination or one URL. To scrape multiple destinations, run the Actor multiple times with different inputs.
Does the Actor handle pagination? Yes. It automatically follows pagination to collect all matching properties up to your maxItems limit.
What data fields are returned? Each property returns its name, price, star rating, guest rating, booking link, and other fields visible in the search results. The exact field list is shown in the output schema after a run.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Expedia, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
destination string City or region to search for hotels (e.g. 'New York', 'Paris', 'London'). Used when no Start URL is provided. New York
startUrl string Expedia Hotel-Search URL to scrape. If provided, destination and other filters are ignored. not set
checkIn string Check-in date in YYYY-MM-DD format (e.g. '2026-03-15'). 2026-03-15
checkOut string Check-out date in YYYY-MM-DD format (e.g. '2026-03-18'). 2026-03-18
adults integer Number of adult guests per room. 2
children integer Number of children per room. 0
rooms integer Number of rooms to book. 1
maxItems integer How many properties to collect per run. 10
priceMin integer Minimum price per night filter (in USD). not set
priceMax integer Maximum price per night filter (in USD). not set
starRating array Filter by star rating. Select one or more values (1-5). not set
guestRating number Minimum guest rating filter (0-10, e.g. 7 = 'Good'). not set
sort string (5 options) Sort results by this criteria. RECOMMENDED
proxyConfiguration object Proxy settings. Residential proxies are required for Expedia (DataDome + Akamai protection). {"useApifyProxy":true,"apifyProxyGroups"
maxConcurrency integer Maximum number of parallel page requests. Lower if you get blocked. 3

Pricing

from $11.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.01199 to $0.01599

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~expedia-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": "New York",
    "checkIn": "2026-09-15",
    "checkOut": "2026-09-18",
    "maxItems": 3
  }'

Examples

Input that runs as-is.

input.json
{
  "destination": "New York",
  "checkIn": "2026-09-15",
  "checkOut": "2026-09-18",
  "maxItems": 3
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Expedia Hotel Listings Scraper on Apify All scrapers