EaseMyTrip Hotels Scraper - Prices, Ratings, Locations avatar

EaseMyTrip Hotels Scraper - Prices, Ratings, Locations

Pricing

from $3.50 / 1,000 easemytrip hotels scraper - prices, ratings, locations

Go to Apify Store
EaseMyTrip Hotels Scraper - Prices, Ratings, Locations

EaseMyTrip Hotels Scraper - Prices, Ratings, Locations

Collect public hotel records from EaseMyTrip. Get name, INR price, rating, address, coordinates, check-in and check-out times and amenities. Run with a listing URL, hotel page or sitemap; no EaseMyTrip login. Pricing: $0.0035 per hotel record and $0.00005 per Actor start on Free.

Pricing

from $3.50 / 1,000 easemytrip hotels scraper - prices, ratings, locations

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

EaseMyTrip Hotels Scraper: Prices and Ratings

Scrape public hotel pages on EaseMyTrip for name, the INR price shown, rating, address, coordinates, check-in and check-out times, main photo and amenities, with no login. Pay per event on the Free plan: $0.0035 per hotel record delivered and $0.00005 per Actor start.

  • Compare the INR price and rating shown for hotels on one city or category listing.
  • Build a hotel lead list from name, street address, coordinates and amenities.
  • Collect one public hotel page, or hotel URLs found in a sitemap, in the same run.
  • A price the site does not show, and any other unpublished field, comes back as null.
  • An Apify account is enough; the Actor does not ask for an EaseMyTrip login or API key.

What you get

Each dataset item is one hotel. Values come from the public JSON-LD on the hotel page (LodgingBusiness or Hotel). amenities is always an array. Every other field that the page does not publish is null.

FieldTypeDescription
idstringEaseMyTrip hotel id, the numeric suffix of the hotel URL
urlstringHotel page URL on easemytrip.com
namestringHotel name
ratingnumber or nullRating on a 0–5 scale as published in the page structured data
price_inrnumber or nullPrice shown by the site for the hotel, in INR; null when the site shows none
currencystring or nullCurrency of price_inr; INR when a price is present, otherwise null
citystring or nullCity from the page breadcrumb
addressstring or nullStreet address
regionstring or nullState or region
postal_codestring or nullPostal code
country_codestring or nullISO country code
latitudenumber or nullLatitude
longitudenumber or nullLongitude
check_in_timestring or nullCheck-in time
check_out_timestring or nullCheck-out time
image_urlstring or nullMain photo URL
amenitiesarrayAmenity names listed on the page
listing_urlstring or nullListing page the hotel was found on
scraped_atstringUTC timestamp of the scrape

Note: price_inr is the price the site shows at the moment of the scrape, not a fixed room rate. rating is the value published in the page data.

Sample output

One hotel record from a run that started at the public Goa hotels listing. All fields from that record are included.

{
"id": "1099685",
"url": "https://www.easemytrip.com/hotels/the-baga-beach-resort-1099685/",
"name": "The Baga Beach Resort",
"rating": 4.2,
"price_inr": 9499,
"currency": "INR",
"city": "Goa",
"address": "7/225/A, Saunta Vaddo, Baga, Calangute, Goa 403516",
"region": "GOA",
"postal_code": "403516",
"country_code": "IN",
"latitude": 15.556173393, "longitude": 73.752193027,
"check_in_time": "02:00 PM",
"check_out_time": "11:00 AM",
"image_url": "https://img.easemytrip.com/EMTHOTEL-1099685/70/32/na/s/39591428_0.jpg",
"amenities": ["Gym", "Swimming Pool", "Restaurant", "Bar"],
"listing_url": "https://www.easemytrip.com/hotels/hotels-in-goa/",
"scraped_at": "2026-10-15T01:30:49.596057+00:00"
}

Pricing

Billing is pay per event. Two Free-plan events are charged:

EventWhen it is chargedFree-plan price
apify-default-dataset-itemOne scraped hotel record with all fields$0.0035
apify-actor-startWhen the Actor starts. One event per GB of memory, minimum one event$0.00005

1,000 hotel records cost $3.5 on Free and 10,000 hotel records cost $35 on Free. 1,000 Actor starts cost $0.05 on Free and 10,000 Actor starts cost $0.5 on Free.

Default memory is 512 MB, so a default run is one Actor start ($0.00005 on Free). 1428 hotel records plus that one start = $4.99805 on Free.

The Apify Free plan includes $5 of monthly platform usage credit. With one Actor start, that credit covers 1428 hotel records (1428 records plus one start = $4.99805 on Free).

Platform usage for compute, Apify Proxy traffic including residential, and storage is included in these event prices and is paid by the Actor developer. It is not a separate charge on your run.

How to use

  1. Open the Actor in Apify Console with your own Apify account.
  2. Set startUrls to a city or category listing, one hotel page, or a hotel sitemap XML URL.
  3. Set maxResults to the number of named hotels you want to save.
  4. Choose proxyConfiguration, then start the run with input in this shape.
{
"startUrls": [{ "url": "https://www.easemytrip.com/hotels/hotels-in-goa/" }],
"maxResults": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
  1. Open the dataset after the run; only hotels that have a name are stored.
  2. Repeat the run through Apify Schedules. Daily is a starting point for hotel prices.

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
startUrlsRequired. Each entry is fetched once. A hotel page contributes that hotel. A .xml sitemap contributes hotel URLs from at most 20 sitemap files. Any other URL is treated as a listing, and hotel links on that page are collected. The same hotel URL is kept once. If no URL is present, the Goa listing below is used.https://www.easemytrip.com/hotels/hotels-in-goa/
maxResultsMaximum number of hotel records with a name to save. A non-integer is treated as 50. A value below 1 saves nothing.50
proxyConfigurationWhen this object is set and useApifyProxy is not false, fetches use Apify Proxy with the groups you pass. Set useApifyProxy to false to fetch with no proxy. The site is reachable without a proxy from most IPs; turn the proxy on if you get blocked.Apify Proxy, group RESIDENTIAL

Limits and edge cases

Each hotel page is fetched once, five pages at a time, so runtime grows with maxResults. A URL is tried up to four times with a 40-second timeout per try. Flights, trains, buses and logged-in areas are out of scope.

ConditionWhat you seeWhat to do
Saved hotels reach maxResultsThe dataset stops at that many hotels that have a nameRaise maxResults
The listing has fewer hotel links than maxResultsFewer records than maxResultsAdd another listing URL, a hotel URL, or a sitemap
Many queued pages have no hotel nameThe dataset can end below maxResults, because at most twice maxResults hotel URLs are queuedAdd another start URL
You expect the next listing pageOnly links on the fetched page are used; further listing pages are not followedPut each listing page you need in startUrls
Sitemap inputAt most 20 XML files are read. Reading stops once maxResults hotel URLs have already been gathered; the last file can add more, still subject to the queue capPoint startUrls at the sitemap file you want
HTTP 404 or 410That URL is skipped and adds no rowCorrect the URL
Page has no LodgingBusiness or Hotel JSON-LD, or no nameNo dataset row for that page. Rows already saved stayUse a public hotel detail page
Fetch still fails after four triesThat source or hotel is skipped. The log says the source could not be read, or the hotel fetch failed. Rows already saved stayRun again. If direct requests fail, set useApifyProxy to true with the RESIDENTIAL group
No price, or the parsed price is not above zeroprice_inr and currency are nullExpected when the site shows no price
Coordinates are missing, or both are 0latitude and longitude are nullExpected when the site has no coordinates
startUrls is a single hotel pagelisting_url is null for that hotelStart from a listing or a sitemap if you need listing_url
maxResults is below 1The run saves no recordsSet maxResults to at least 1
Duplicate hotel URLs across start URLsOne record for that hotel URLNone; duplicates are dropped

FAQ

How much does it cost to scrape EaseMyTrip hotels?

You pay to extract each hotel the Actor delivers. On the Free plan, apify-default-dataset-item is $0.0035 per hotel record and apify-actor-start is $0.00005 per event. At the default 512 MB, the start charge is one event. 1428 results plus that start = $4.99805 on Free. The $5 Free-plan platform credit covers 1428 hotel records with one start.

Why is the dataset empty?

The start URL returned no hotel links, every hotel page lacked a name or hotel JSON-LD, every fetch failed, or maxResults was below 1. Check that each URL is a public city or category listing, a hotel page, or a hotel sitemap. Then set maxResults to at least 1 and read the run log for how many hotel pages were found.

What happens when a hotel page fails?

A 404 or 410 is skipped. Any other fetch error is retried up to four times and then that URL is skipped. Hotels already written to the dataset stay there. The run log reports a failed source or a failed hotel fetch, then the number of hotels saved.

Do I need a login to export the results?

No. You do not provide an EaseMyTrip login, cookies, or an API key. Export the dataset as JSON or CSV after the run. Proxy use is optional: the schema default is Apify Proxy with the RESIDENTIAL group, and useApifyProxy false fetches with no proxy.

Is it allowed to collect this public hotel data?

The Actor reads public hotel pages and the structured data on those pages. It does not sign in. Whether that is allowed depends on EaseMyTrip's terms and on the law that applies to your use case. Nothing here is a legal ruling on your use.

⌂ 换网址