What Is a Hotel Data API? A Plain Definition and Four Real Examples

Denis Gramm, StayAPI
By Denis Gramm, StayAPI · · 9 min read

I hope you enjoy reading this blog post. If you want our team to help you with hotel data integration, click here.

Quick summary

This guide defines a hotel data API and walks through four real requests (rates, reviews, availability, and IDs) with the JSON each one returns.

What Is a Hotel Data API? A Plain Definition and Four Real Examples | StayAPI

Hotel data lives in silos: Booking.com rates come in one shape, TripAdvisor reviews in another, Airbnb calendars in a third.
A hotel data API is a read-only interface that pulls that data from each platform and returns it as JSON you can work with.
This guide shows what that means in practice, with four real requests and the responses they return.

Key Takeaways

  • A hotel data API reads market data. It returns rates, reviews, availability, and property details for hotels you don't run; booking APIs and PMS APIs do different jobs.
  • Four data types cover most work: property IDs, rates, reviews, and availability, each shown below with a live response.
  • IDs come first. Every platform numbers its hotels its own way, so the first call usually turns a URL into the ID the other calls need.
  • Responses are live. Each call returns what the platform shows at that moment, so price or review history means storing responses yourself.
  • The question picks the API. Rates, search, booking, a property list, and your own hotel's reservations each have their own kind of hotel API.

What Is a Hotel Data API?

A hotel data API is a programmatic way to read hotel information from platforms like Booking.com, TripAdvisor, and Airbnb.
You send an HTTP request with a hotel's ID and get structured JSON back: prices, review text, calendar days, property details.
It's read-only, so it never creates or changes a reservation.
That separates it from a booking API, which handles transactions, and from a PMS API, which reads and writes your own hotel's reservations and guests.
Our hospitality API guide maps every kind of hotel API, from PMS to distribution; this post stays on the data side and shows it working.

Hotel Data API Examples: Four Real Requests

All four calls ran on October 15, 2026 against StayAPI's REST API, with the key sent in an x-api-key header.
The responses are trimmed for length, and every field name and value shown is real.

1. Property IDs: Turn a Hotel URL Into an ID

Each platform numbers its hotels differently, so the first call is usually a lookup.
This one takes a Booking.com URL (or just its country code and slug) and returns the hotel's numeric ID:

curl "https://api.stayapi.com/v1/booking/hotel/url-to-id?url=th/baan-coconut" \
  -H "x-api-key: YOUR_API_KEY"
{
  "hotel_id": "1302021",
  "url": "https://www.booking.com/hotel/th/baan-coconut.html"
}

It's the smallest hotel content API call there is, and every other Booking.com request depends on it.
TripAdvisor uses location IDs and Airbnb uses listing IDs, so a product that covers several platforms keeps one ID per platform for every property.
Matching those IDs to the same physical hotel is its own discipline, covered in our hotel mapping guide.

2. Rates: Every Price for One Room on One Night

With the ID in hand, the rooms call returns every room type and every rate on offer.
We asked for The Savoy in London; without dates, the call checks in 14 days out for one night:

curl "https://api.stayapi.com/v1/booking/hotel/rooms?hotel_id=280149" \
  -H "x-api-key: YOUR_API_KEY"

It returned 48 rate blocks across 13 room types for the night of October 29.
Here's one of them:

{
  "room_name": "Superior Queen Room",
  "max_occupancy": 2,
  "refundable": true,
  "refundable_until": "2026-10-27 23:59:59 +0000",
  "breakfast_included": true,
  "room_count_available": 14,
  "genius_discount_percentage": 0,
  "price": {
    "per_night": 975.92,
    "currency": "USD",
    "formatted": "$976",
    "is_mobile_rate": false
  }
}

The same room came back at four prices.
The Superior Queen Room cost $833 non-refundable, $877 with free cancellation, $932 with breakfast, and $976 with both.
A tracker that stores one number per room per night would miss that spread.

Field What it tells you
refundable / refundable_until Whether the rate can be canceled, and until when
breakfast_included Whether the price covers breakfast
genius_discount_percentage The member discount for signed-in Genius users (0 when none applies)
price.is_mobile_rate Whether the price is an app-only rate
room_count_available Rooms left at this rate on Booking.com

To change the stay, add checkin, checkout, adults, or currency; the Booking.com rooms endpoint lists every parameter.

3. Reviews: Text, Ratings, and Who Wrote Them

Reviews follow the same pattern: one ID in → a page of reviews out.
Here's page 1 for the Allamanda Laguna Phuket on TripAdvisor (location ID 305165):

curl "https://api.stayapi.com/v1/tripadvisor/hotel/reviews/305165?page=1&per_page=20" \
  -H "x-api-key: YOUR_API_KEY"
{
  "success": true,
  "total_count": 359,
  "reviews": [
    {
      "rating": 5,
      "title": "A Quiet and Peaceful Retreat Wrapped in Beautiful Gardens",
      "published_date": "2026-07-22",
      "trip_info": { "stay_date": "2025-09-01", "trip_type": "FAMILY" },
      "user": { "hometown": "United States", "contribution_count": 245 },
      "additional_ratings": { "value": 5, "rooms": 5, "location": 5, "service": 5, "sleep quality": 5 }
    }
  ]
}

A total_count of 359 means 18 pages at 20 reviews a page, the most TripAdvisor returns per page.
This guest stayed in September 2025 and posted in July 2026, so filter on stay_date when the timing of the stay matters.
additional_ratings changes from review to review: this guest scored 5 categories, the next review on the page scored 6, and the one after that scored none.
Count how many reviews rated each category before you average it, or a handful of guests will set the number.
Other platforms carry different review fields, which our hotel reviews API guide covers platform by platform.

4. Availability: An Airbnb Calendar, Day by Day

For vacation rentals, availability comes as a calendar.
This call returns two months for a home in Central Austin:

curl "https://api.stayapi.com/v1/airbnb/listing/14741664/calendar?months=2" \
  -H "x-api-key: YOUR_API_KEY"

Three days from the October block:

{
  "success": true,
  "listing_id": "14741664",
  "months": [
    {
      "month": 10,
      "year": 2026,
      "days": [
        { "date": "2026-10-21", "available": true, "available_for_checkin": true, "bookable": true, "min_nights": 2 },
        { "date": "2026-10-22", "available": true, "available_for_checkin": false, "bookable": true, "min_nights": 2 },
        { "date": "2026-10-23", "available": false, "available_for_checkin": false, "bookable": false, "min_nights": 2 }
      ]
    }
  ]
}

October 22 is open, but a guest can't check in that day.
The listing has a 2-night minimum and October 23 is taken, so a stay starting on the 22nd can't fit.
Two more details catch people out.
The call returns whole months, so days already past come back unavailable.
And a false day can mean booked or blocked by the host, which the calendar doesn't distinguish.
Field definitions are in the Airbnb calendar endpoint docs.

The Four Calls Side by Side

Each response keeps the shape of its platform's data, so plan one parser per endpoint.

Data type Platform What the call takes Fields worth knowing
Property ID Booking.com Hotel URL or slug hotel_id
Rates Booking.com hotel_id, optional dates price.per_night, refundable, room_count_available
Reviews TripAdvisor Location ID, page rating, additional_ratings, trip_info.trip_type
Availability Airbnb Listing ID, months available, available_for_checkin, min_nights

Which Kind of Hotel API Answers Your Question

The four examples above are the data side.
Neighboring questions need a different kind of hotel API, and one of them needs storage more than any API.

If you need Kind of API Guide
Current rates across booking sites Hotel price API hotel price API
Hotels in a destination, with availability Hotel search API hotel search API
To sell or reserve rooms Hotel booking API hotel booking API
A property list you own and refresh Hotel database hotel database
Your own hotel's reservations and guests PMS API The hospitality API guide, linked above
Price history Stored live responses hotel price history

For a one-time research pull, the setup cost of any API usually outweighs the benefit; a hotel data API pays off once the same pull runs every week.

Getting Started with StayAPI

  1. Sign up at stayapi.com for 50 free requests (a one-time allowance, no credit card).
  2. Convert a hotel URL to its ID with the URL-to-ID endpoint, as in example 1.
  3. Make the rooms call from example 2 with your hotel_id, adding checkin and checkout for the dates you care about.
  4. Store each response with a timestamp if you want history, since every call returns the current state.
  5. Automate the pull with N8N or Make.com, or pipe the JSON into Google Sheets or Looker Studio.

For a walkthrough with your own use case, book a demo.

FAQ

Is there a free hotel data API?

StayAPI's signup includes 50 free requests, once, with no credit card.
Paid plans are flat monthly tiers by request volume, from $49 for 1,500 requests a month up to 100,000 a month, with custom terms above that.
Fully free hotel APIs exist with narrower coverage or tighter usage terms; our free hotel API guide maps every real option.

Is a hotel data API the same as a hotel database?

A hotel database is a stored list of properties and their attributes; a hotel data API returns live data on request.
An API can build a database: loop over your property list, call the details endpoint for each one, and store the responses.

How is a hotel data API different from a booking API?

A hotel data API only reads: rates, reviews, availability, property details.
A booking API creates, changes, and cancels reservations, and it usually comes with a supplier or distribution agreement.

Can a hotel data API give me historical prices?

Each call returns what the platform shows right now, so history comes from logging responses over time.
Run the same rooms call daily, store each response with its timestamp, and after a few weeks you have a price curve per room and rate type.

Can I use a hotel data API without a technical team?

Yes, for scheduled pulls.
No-code tools like N8N and Make.com can call the API on a schedule and write the JSON into a Google Sheet.

Ship in 3 days

Ready to simplify your hotel data?

Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.