A hotel rate API returns the live prices an OTA is showing - per room type, per rate plan, with taxes resolved - as structured JSON. ScrapeGuys operates one in production: submit a hotel and stay dates, poll for the result, get the rates a real guest would see on Booking.com, Agoda, MakeMyTrip, Expedia or Goibibo - or Google Hotels' price for every booking site it lists.
Every job returns the room grid as the OTA renders it for your stay and party: each room type with its offers - price and exactly what it covers (price_basis: per night or whole stay, before or after taxes), meal plan, cancellation terms and tax status - plus the cheapest offer that fits your party. On Agoda, Expedia and Goibibo, tax_required itemizes the tax separately from fees, so you can resolve every offer to the final payable price. The five OTAs share one room-level schema, so a comparison is one join, not five parsers; Google Hotels' price comparison has its own endpoint.
The same room has different prices for different audiences, and most rate tools silently mix them. Every ScrapeGuys hotel job is priced in an explicit context: logged out as a public guest by default, or signed in as a member - at a pinned level such as Booking.com Genius 1 to 3 or MakeMyTrip's MMT Black - and the result says whether the member price was actually confirmed. Parity monitoring, benchmark feeds and undercut alerts only mean something when the context is pinned - so it is part of the request, not an accident of which cookie jar the scraper had. Signed-in pricing is set up per account on the scoping call.
The Rate Shop endpoint prices a whole matrix in one asynchronous job: your hotels × Booking.com, Agoda, MakeMyTrip and Expedia × every arrival date in a range - up to 50 hotels, 90 dates and 1,000 cells per job. That is the shape revenue teams actually consume - tonight's comp set across four channels, or 30 days of lead-time pricing for one property - without orchestrating hundreds of individual calls. For a whole city's inventory, Destination Search returns every property Booking.com lists for a destination and stay; Cheapest Room answers the one-number question.
Booking.com and Agoda price in INR, USD, GBP, EUR or AED, Expedia in INR, USD, GBP, AED or SGD, MakeMyTrip and Goibibo in INR. Jobs can run as desktop or mobile, and Booking.com and Agoda can be priced through their Android app on request - because app-only rates are real and a desktop-only scraper never sees them. Hotels resolve by name and city, by Google place_id, or by the OTA's own property id for the fastest path (not on Expedia).
Each source has a full public reference - request fields, response schemas, error codes and worked curl examples: Booking.com · Agoda · MakeMyTrip · Expedia · Goibibo · Google Hotels · Rate Shop. Flight and bus fares live on their own endpoints: Google Flights, MakeMyTrip and Cleartrip flights, and MakeMyTrip Bus. Hotel profiles and room catalogues without prices: Hotel Details.
Start free with 1,000 API calls and public docs. Paid plans are $15, $79 and $319 per month, and billing is success-based. Dedicated deployments (your panel, your cadence, your schema) are scoped on a 20-minute call and are typically live in 48-72 hours.
1,000 free calls today, or a scoping call for your comp set - most deployments are live in 48-72 hours.