Hotel Database: Where to Get One (Directories, Free Datasets, and the Live API Route)

Denis Gramm, StayAPI
By Denis Gramm, StayAPI · · 11 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 maps the four things people mean by a hotel database, where to get each one, how big the free datasets really are, and how a live catalog is assembled from an API.

Hotel Database: Where to Get One (Directories, Free Datasets, and the Live API Route) — StayAPI

Searching for a hotel database lands you on a Kaggle dataset, a 75-year-old industry directory, a construction-projects list, and a video about designing tables for a hotel management system, all on the same results page.
That's because the phrase means four different things, and each one has a different source.
The catch runs through all four: hotel data goes stale fast.
Prices move daily, ratings move weekly, and a directory bought in January has openings and closures missing by spring.
This guide sorts the four meanings, names the real sources for each with their sizes, and shows how a live hotel catalog is assembled from an API when a download won't do.

Key Takeaways

  • "Hotel database" means four different products. A directory of properties and contacts, a static dataset for analysis, a live catalog behind an app, and a schema for a management system.
  • Free datasets are large and frozen. Public sets run from 1,000 hotels with reviews to 50 million TripAdvisor reviews, all snapshots of a past date.
  • OpenStreetMap is the free, current geo layer. As of this week it holds 453,219 objects tagged as hotels, with names and coordinates and nothing about prices.
  • A live catalog is assembled, not downloaded. Destination lookup, paginated search, then details per hotel through a hotel data API, refreshed on request rather than on a vendor's schedule.
  • Every real hotel database needs a cross-platform ID column. The same property carries a different ID on every booking site, and matching them is its own job.

The Four Things People Mean by Hotel Database

The Four Things People Mean by Hotel Database — StayAPI

Meaning What's Inside Who Buys or Builds It Freshness
Directory Property names, addresses, chain affiliation, room counts, decision-maker contacts Suppliers selling to hotels, event planners Annual or quarterly editions
Static dataset A snapshot of listings, prices, or reviews as CSV or JSON Researchers, students, ML teams Frozen at collection date
Live catalog IDs, names, coordinates, photos, amenities, current prices and ratings App builders, travel tech, analysts Refreshed on request
Management-system schema Tables for guests, rooms, reservations, folios Students, PMS developers Not a data product at all

The fourth row is a database-design exercise, and the tutorials that rank for it are the right resource; this guide covers the first three.
The three real products overlap in name only.
A directory knows the general manager's email and nothing about tonight's rate; a dataset knows what a room cost in 2017; a live catalog knows both current values and neither historical one.

Directory Databases: For Selling to Hotels

Directory Databases: For Selling to Hotels — StayAPI

The oldest hotel databases are sales tools.
Travel Weekly's Hotel and Travel Index has cataloged properties, rates, and GDS reservation codes for more than 75 years, and construction-projects databases sell pipelines of hotels under development with the contacts attached.
What they're good for: prospecting, market sizing by chain and region, and event planning.
What they aren't: a source of current prices, availability, or guest sentiment, because none of that is what a directory sells.
If your job is benchmarking hotel performance rather than finding hotels, that's a third category again, the STR and benchmarking-data class, which our STR report guide explains.

Static Datasets: Free, Big, and Frozen

Static Datasets: Free, Big, and Frozen — StayAPI

For analysis, teaching, and model training, public datasets are the right answer, and they're larger than most people expect.

Dataset Size (as published) What's In It Source
TBO Hotels Dataset 1,000,000+ hotels Rates, reviews, amenities, location, star rating across countries Kaggle
515K Hotel Reviews in Europe 515,000 reviews, 1,493 hotels Booking.com-style reviews with scores and reviewer nationality Kaggle
HotelRec 50 million reviews Large-scale TripAdvisor review corpus for recommendation research GitHub
CMU hotel-review datasets 878,561 reviews, 4,333 hotels TripAdvisor reviews as JSON, 1.3 GB CMU
Datafiniti hotel reviews 1,000 hotels Location, name, rating, and review text from a business database Kaggle
OpenStreetMap hotels 453,219 tagged objects Names and coordinates, no prices OSM taginfo

Two of these deserve a note.
The OpenStreetMap layer is the one genuinely free and current hotel database for geography: 453,219 objects carry the hotel tag as of this week, with names, coordinates, and often addresses, under an open license.
It knows nothing about prices or reviews, which is exactly its fit: a base map that a live catalog fills in.
The review corpora answer the "hotel reviews dataset" question for anyone training a sentiment model or benchmarking a pipeline, and our hotel review sentiment analysis guide uses that kind of data for exactly that.
The catch is the same for all of them.
A 2017 review can't tell you what guests said last week, and a rate collected two years ago tells you about two years ago; when the question is about today, a frozen dataset is the wrong tool.

The Live Catalog: Building a Hotel Database From an API

The Live Catalog: Building a Hotel Database From an API — StayAPI

A live hotel database isn't downloaded, because no one sells a fresh one.
It's assembled from an API in three passes and refreshed on request, and hotel data APIs exist to make each pass one call.
StayAPI's Booking.com endpoints are a worked example, against the largest source there is: Booking.com reports more than 28 million listings and 70 million guest reviews.
Pass 1: the property list.
Resolve each market to a destination ID, then page through search results at up to 100 per page; the hotel search API guide walks through both calls.
Each result carries the hotel ID, the coordinates, the star class, the guest score, and the headline price.
Pass 2: the details record.
For each ID, the details endpoint returns the fields a catalog row needs:

curl -X GET "https://api.stayapi.com/v2/booking/hotel/details?hotel_id=4045490" \
  -H "x-api-key: YOUR_API_KEY"
{
  "success": true,
  "hotel_id": "4045490",
  "data": {
    "hotel_name": "Maxime Boutique Hotel Avenida da Liberdade",
    "address": "58 Praça da Alegria",
    "city": "Lisbon",
    "country": "pt",
    "postal_code": "1250-004",
    "latitude": 38.71833447459589,
    "longitude": -9.145319386577626,
    "star_rating": 3.0,
    "review_score": 8.8,
    "review_count": 3625,
    "main_photo_url": "https://cf.bstatic.com/xdata/images/hotel/square200/646162366.jpg?...",
    "page_name": "maxime"
  }
}
Field Catalog Column
hotel_id Primary key for this platform
latitude / longitude Geo index, joinable to the OpenStreetMap layer
star_rating Official class, null for unclassified stays
review_score / review_count Reputation snapshot with its sample size
main_photo_url Thumbnail for listings
page_name The slug in the property's public URL

Pass 3: the enrichment.
Facilities and photos come from sibling endpoints keyed by the same ID, and prices come from a dated call whenever you need them, which is the hotel price API job.
The freshness rule falls out of the passes.
Pass 1 reruns weekly to catch openings and closures, pass 2 reruns when a row is stale, and prices are pulled at query time rather than stored as truth; StayAPI has no rate limits, so the weekly pass over a market is one loop.
Full parameters are in the hotel details endpoint documentation, and the free hotel details tool shows one record without code.
One tradeoff, stated plainly: a catalog built this way covers the properties the booking sites list, which is nearly everything with a public rate and not the hotels that only sell direct.
If you'd rather scrape the catalog yourself, our hotel listings scraping tutorial teaches the method and its upkeep.

Cross-Platform IDs: The Column Every Hotel Database Needs

Cross-Platform IDs: The Column Every Hotel Database Needs — StayAPI

The Lisbon hotel above is 4045490 on Booking.com.
On Expedia it's a different number, on TripAdvisor a third, on Google a token, and on its own website nothing at all.
A hotel database that stores one platform's ID can only read that platform.
The moment the question becomes "what does this hotel cost on every site" or "what do guests say everywhere," the catalog needs a row that links all of those IDs to one property.
Meta search endpoints do the first step: a hotel name in, that hotel's page links on each booking site out, and each platform's URL-to-ID endpoint turns a link into the ID.
That's the hotel-matching problem, and our hotel mapping guide covers how the matching works and when a mapping service beats doing it yourself.
Plan the column from day one.
Retrofitting cross-platform IDs onto a single-platform catalog is the most common rebuild in hotel data projects.

Which Hotel Database for Which Job

Your Job Best Source Why
Selling to hotels, event sourcing Directory database Contacts and affiliations, maintained by an editorial team
Training a model, teaching a class Static dataset Free, large, and reproducible
Base map of every hotel's location OpenStreetMap Free, current, open license
App or dashboard with current prices and ratings Live catalog from a data API (StayAPI) Refreshed on request, keyed by platform IDs
Historical rate trends Your own stored pulls No one sells hotel rate history for arbitrary properties

The last row surprises people.
Price history exists only where someone stored it, so a live catalog that logs each pull becomes the historical database a year later.

Getting Started

  1. Decide which of the four meanings you need. For directories and static datasets, the sources above are the answer and you can stop here.
  2. For a live catalog, sign up at stayapi.com. Free tier, no credit card.
  3. Run the destination lookup and search for one market, then the details call above for a handful of IDs, and design your table around the fields that come back (including a column per platform ID).
  4. Pull the OpenStreetMap hotel layer for the same market and join it on coordinates to see the coverage gap between "has a public rate" and "exists on a map."
  5. Schedule the refreshes and pipe the JSON into your database, Google Sheets or Excel, Power BI, or no-code platforms like N8N and Make.com. For multi-market catalogs with cross-platform matching, book a demo call.

FAQ

Is there a free hotel database download?

Yes, in two forms: public datasets (the Kaggle, GitHub, and university sets above) and the OpenStreetMap hotel layer.
Both are free and both are snapshots; for live prices and ratings, the free tiers of hotel data APIs are the closest thing to a free current database.

Where can I get a hotel reviews dataset?

The largest public ones are the HotelRec corpus (50 million TripAdvisor reviews), the CMU TripAdvisor set (878,561 reviews), and the 515K European reviews set on Kaggle.
For reviews from this month rather than a past year, the reviews endpoints of a hotel data API return them per property.

How many hotels are in the world?

Counts depend on the definition, so cite the source with the number.
OpenStreetMap holds 453,219 objects tagged as hotels, and Booking.com reports more than 28 million listings once homes and apartments are included.

Can I buy a hotel database?

Directories with contacts and affiliations are sold by editorial publishers and construction-data companies, on subscription.
No one sells a current database of prices and ratings for every hotel, because it would be stale before delivery; that data is assembled from an API and refreshed on request.

How often does a hotel database need refreshing?

Prices change daily and should be pulled at query time; ratings and review counts move weekly; the property list itself changes monthly as hotels open and close.
A catalog that reruns its search pass weekly and its details pass on demand stays usable without re-pulling everything.

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.