Scraping Bot Animated

scrapingbot

Expedia Scraper API

Extract structured accommodation data from public Expedia pages as JSON. Send a accommodation URL and receive the fields exposed by the target page.

Get your API keyRead the documentation500 free credits per month, no card required.

Decide before you build

Endpoint
POST /scrape/booking
Scrapers
Expedia accommodation pages
Cost
from 1 credit / call
Free plan
500 credits / month
Call pattern
sync, POST
On failure
credits refunded
Response format
JSON
Concurrency
by plan tier

Booking & Travel requests are synchronous. Cost depends on the options selected for the request.

Try the Expedia scraper on your own targetRun a request against a public accommodation page and inspect the JSON before you integrate.

Open the live test

What you get back

accommodation data

Expedia data in JSON

Retrieve the accommodation information exposed by the public Expedia page.

  • Accommodation name, description and images
  • Rates, currency and availability when available
  • Location, facilities and room information
  • Ratings and booking details exposed publicly
Request options

Control how the page is collected

Use rendering or proxy options only when the target requires them.

  • JavaScript rendering with useChrome
  • Premium proxy and country targeting
  • Public URL input; no account login required
  • Structured JSON in the same response

Call the Expedia scraper

Send a public accommodation URL to the Booking & Travel endpoint. The API returns the result in the same response.

Step 1Submit the Expedia accommodation URL and only the options required by the target.
bash
# POST - scrape a public accommodation page
curl -X POST "https://api.scraping-bot.io/scrape/booking" \
  -u "yourUsername:yourApiKey" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://example.com/hotel/example",
  "options": {
    "useChrome": false,
    "premiumProxy": false
  }
}'

Code example

Authenticate with your ScrapingBot username and API key, then read the returned JSON.

const auth = "Basic " + Buffer.from("yourUsername:yourApiKey").toString("base64");

const response = await fetch("https://api.scraping-bot.io/scrape/booking", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: auth },
  body: JSON.stringify({ url: "https://example.com/hotel/example", options: { useChrome: false, premiumProxy: false } }),
});

const result = await response.json();

Run this call in two minutesCreate an account, copy your API key, then use the example above.

Get your API key

Request parameters

ParameterTypeDefaultDescription
urlstring—Full public page URL, including https://.
options.useChromebooleanfalseRender JavaScript when the target page requires a browser.
options.premiumProxybooleanfalseUse a premium proxy for targets that require it.
options.proxyCountrystring—Country targeting with a premium proxy.

Response example

Example of the structured data returned for a public Expedia accommodation page. Available fields vary with the target page.

json
{
    "data": {
        "image": "https://a.travel-assets.com/egds/marks/flags/us.svg",
        "images": [
            "https://a.travel-assets.com/egds/marks/flags/us.svg"
        ],
        "title": "Maisons du Monde Htel Suites La Rochelle Vieux Port",
        "price": null,
        "currency": "EUR",
        "siteURL": "https://www.expedia.com/La-Rochelle-Hotels-Maisons-Du-Monde-Hotel-Suites-La-Rochelle-Vieux-Port.h1527121.Hotel-Information?chkin=2024-11-14&chkout=2024-11-19&x_pwa=1&rfrr=HSR&pwa_ts=1726473781218&useRewards=false&rm1=a1&regionId=2133&destination=La+Rochelle,+Charente-Maritime,+France&destType=MARKET&neighborhoodId=553248633938962084&latLong=46.159851,-1.15161&sort=RECOMMENDED&top_dp=90&top_cur=USD&userIntent=&selectedRoomType=201710862&selectedRatePlan=395175278&searchId=22c6636e-e5a3-4aa9-b370-41e6673f73e4&propertyName=Maisons+du+Monde+H%C3%B4tel+%26+Suites+-+La+Rochelle+Vieux+Port",
        "siteHtml": null,
        "statusCode": 200,
        "htmlLength": 1708698,
        "captchaFound": false,
        "isHtmlPage": true,
        "host": "www.expedia.com",
        "destination": "La Rochelle, Charente-Maritime, France",
        "domain": "HOTEL",
        "geo": {
            "country": "fr",
            "city": "lesmureaux",
            "latitude": 48.9909,
            "state": "idf",
            "longitude": 1.9049
        },
        "id": 1527121,
        "date": {
            "start": "2024-11-14",
            "end": "2024-11-19"
        },
        "offerSearchData": {
            "startDate": "2024-11-14",
            "endDate": "2024-11-19",
            "adults": "1",
            "petsIncluded": false
        },
        "amenities": [
            "Breakfast available",
            "24/7 front desk",
            "Housekeeping",
            "Laundry",
            "Air conditioning",
            "Pet friendly"
        ],
        "description": "Hotel with a 24-hour front desk, a short walk to Vieux Port",
        "globalReviews": {
            "stars": 4,
            "rating": "8.8",
            "text": "Excellent",
            "numberReviews": 241
        },
        "location": {
            "text": "3 rue St Jean du Perot, La Rochelle, Charente-Maritime, 17000",
            "image": "https://maps.googleapis.com/maps/api/staticmap?&size=375x250&map_id=3b266eb50d2997c6&zoom=13&markers=icon:https%3A%2F%2Fa.travel-assets.com%2Ftravel-assets-manager%2Feg-maps%2Fproperty.png%7C46.15651%2C-1.15469&channel=expedia-HotelInformation&maptype=roadmap&scale=1&key=AIzaSyCYjQus5kCufOpSj932jFoR_AJiL9yiwOw&signature=pjjU9k6Qe94r081iUUYo2yVf4Kk="
        },
        "locationSummary": [
            {
                "title": "Tour de la Chaine",
                "duration": "1 min walk"
            },
            {
                "title": "Tour de la Lanterne",
                "duration": "4 min walk"
            },
            {
                "title": "Vieux Port",
                "duration": "4 min walk"
            },
            {
                "title": "La Rochelle (LRH-La Rochelle - Île de Ré)",
                "duration": "18 min drive"
            }
        ],
        "media": [],
        "rooms": []
    }
}

Credits, failures and limits

CaseCreditsNotes
Standard requestfrom 1 credit / callCurrent plans start at this rate.
JavaScript renderingAdditional creditsEnable only when the target requires it.
Premium proxyAdditional creditsUse for targets that require a premium proxy.
Unsuccessful requestNot deductedOnly successful requests count towards the monthly limit.

Booking & Travel API or Raw HTML scraper?

Booking & Travel APIRaw HTML scraper
Endpoint/scrape/booking/scrape/raw-html
ReturnsStructured accommodation JSONRendered page HTML
FlowOne synchronous requestOne synchronous request
Starting costfrom 1 credit / callfrom 1 credit / call
Use it whenYou need parsed accommodation fieldsYou need your own extraction logic

Questions about the Expedia API

Does the Expedia scraper access private data?
No. This guide covers public accommodation pages and does not require signing in to a Expedia account.
Are all fields always available?
No. Returned data depends on what the public Expedia page exposes and what the extractor supports.
Can I collect multiple pages at once?
Each request takes one public URL. Submit one request per page you need to collect.
When should I use a premium proxy?
Use it only when a target requires it or when you need country targeting for a public page.

Source: ScrapingBot API documentation.

Other booking & travel scrapers

Browse the Booking & Travel category for the complete list of guides. Visit the ScrapingBot blog for implementation guides.

4.9
★★★★★
133 Google reviews

Trusted by developers using Booking & Travel data.
Customer reviews apply to ScrapingBot's service overall, not specifically to this scraper.

Start scraping Expedia today

500 free credits every month. No card required, cancel anytime.