Guide

Hotel Rate API: per-room OTA prices as JSON

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.

What you get back

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.

example · GET /api/v1/scraper/ota-price/{job_id}/ · Booking.com, Genius L2 (abridged)
{ "id": "a1b2c3d4-...", "status": "completed", "ota": "booking", "check_in": "2026-12-15", "check_out": "2026-12-17", "currency": "INR", "device_type": "desktop", "account_type": "l2", "result": { "origin_hotel_name": "The Taj Mahal Palace, Mumbai", "hotel_id": "in/taj-mahal-palace-mumbai", "nights": 2, "authenticated": true, "member_price_confirmed": true, "cheapest_fitting_price": 24000.0, "cheapest_fitting_basis": "total_stay_before_taxes", "room_types": [ {"name": "Luxury Room Palace Wing", "sold_out": false, "offers": [ {"price": 24000.0, "price_basis": "total_stay_before_taxes", "meal_plan_code": "CP", "free_cancellation": true, "tax_status": "excluded", "tax_amount": 4320.0, "fits_occupancy": true} ]} ] } }

Member prices, not just public rates

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.

Multi-OTA comparisons by stay date

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.

Geo, currency and device options

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).

Where the docs and samples are

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.

Pricing

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.

FAQ

What is a hotel rate API?
A hotel rate API returns the live room prices an OTA or metasearch site is currently showing - per room type, with taxes and fees - as structured JSON. You send a hotel and stay dates; it returns the rates a real guest would see, without you running any scrapers.
Which sites can I get hotel rates from?
ScrapeGuys returns room-level rates from Booking.com, Agoda, MakeMyTrip, Expedia and Goibibo, each documented on its own page, plus Google Hotels' price comparison across booking sites and a Rate Shop endpoint that prices whole grids of hotels, OTAs and stay dates in one job.
Can I get member prices, not just public rates?
Yes - this is where most tools stop and rate accuracy breaks. ScrapeGuys prices jobs as a logged-out guest or as a signed-in member - including Booking.com Genius level 1-3 and MMT Black on MakeMyTrip - so parity and benchmark numbers reflect what each audience actually pays. Signed-in pricing is set up per account.
Are taxes and fees included in the price?
Every offer states its tax status and whether the price is per night or for the whole stay. On Agoda, Expedia and Goibibo, the tax_required option itemizes the tax separately from any fee, so comparisons resolve to the final payable price and are genuinely like-for-like.
How do multi-OTA comparisons by stay date work?
The Rate Shop endpoint takes up to 50 hotels, any of Booking.com, Agoda, MakeMyTrip and Expedia, and a date range, and returns the full matrix - each hotel priced on each channel for each stay date - in one asynchronous job, which is how revenue teams run their daily comp-set shop.
What does the hotel rate API cost?
The free tier includes 1,000 API calls with public docs. Paid plans are $15, $79 and $319 per month with success-based billing; dedicated high-volume deployments are scoped on a call.

Need hotel rates in production?

1,000 free calls today, or a scoping call for your comp set - most deployments are live in 48-72 hours.

BOOK A CALL SEND YOUR TARGETS