Datadory notebook
Openstreetmap Hotel Poi Extract Data: Dataset Structure and Field Coverage
Datadory delivers openstreetmap hotel poi extract data covering comprehensive field definitions, entity mappings, and historical time series — structured for direct analytics and delivered on demand.
1,744 datasets. Pick your catch.
What does an OpenStreetMap hotel POI extract contain?
Every row is one mapped property: a point node, or a building footprint stored as a way or relation, carrying whatever accommodation attributes contributors recorded - name, stars, rooms, beds, address, phone and website among them.
The scale is now genuinely useful for analysis. Taginfo counted [452,341 objects tagged tourism=hotel]() as of 2026-08-21 - 255,658 nodes, 190,479 ways and 6,204 relations - alongside 329 tourism=resort objects and hundreds of thousands of hostel, guest_house and apartment entries. That makes the OpenStreetMap Hotels via Overpass Turbo route the largest free geocoded hotel inventory in existence, at a quality score of 8 in Datadory's catalog.
What the table does not carry matters too: no room rates, no occupancy, no brand affiliation codes. It answers where supply sits, and leaves demand and pricing to the statistical sources covered further down.
How do you run the extract, step by step?
The whole workflow runs in a browser tab against the free Overpass API - no account, no key, no quota beyond fair-use etiquette.
- Open Overpass Turbo at - the interactive query IDE that Datadory lists as this dataset's access route.
- Scope the geography. Zoom to your study area and use the
{{bbox}}shortcut for a city or region, or anareafilter for a whole country. - Filter the accommodation tags. For a hotel-only census, match
tourism=hotelon nodes, ways and relations; broaden the regex tohotel|resort|hostel|guest_house|apartmentwhen the competitive set includes non-hotel stays. The headline figure of 452,341 objects refers strictly to thetourism=hotelvalue. - Collapse footprints to points with
out center, so every property - including building-outline ways - lands as one latitude/longitude row. - Run and eyeball the result on the map pane before exporting; obvious mis-tags surface immediately.
- Export in the format your stack wants: GeoJSON for GIS, CSV for spreadsheets and BI loads, or the raw JSON and XML responses for pipelines - all four are supported outputs.
- Respect the shared servers. Public Overpass instances ask light users to stay under roughly 10,000 queries and 1 GB downloaded per day; a national hotel extract fits comfortably, a continental one does not.
A minimal hotel-only query looks like this:
[out:json][timeout:60];
(
node["tourism"="hotel"]({{bbox}});
way["tourism"="hotel"]({{bbox}});
relation["tourism"="hotel"]({{bbox}});
);
out center;Which tags separate hotels from resorts and hostels?
tourism=hotel dominates the accommodation namespace with 452,341 objects, while tourism=resort appears on only 329. Resort tagging is simply rare in practice, so treat it as a supplement for flagging large leisure complexes rather than a substitute for the hotel value. Hostel, guest_house and apartment values add hundreds of thousands of further properties when your market definition includes budget and short-stay supply.
The OSM value hierarchy maps onto the official classification used by Eurostat - Capacity of Tourist Accommodation (tour_cap_nat), which splits European supply into three NACE classes. Aligning your Overpass regex with those classes is what makes an OSM extract comparable to official supply statistics:
| OSM tag | Official counterpart (Eurostat tour_cap_nat) | Mapped objects |
|---|---|---|
tourism=hotel | NACE I551 hotels | 452,341 |
tourism=resort | usually tagged within I551 or I552 properties | 329 |
tourism=hostel, guest_house, apartment | largely NACE I552 holiday and short-stay | hundreds of thousands |
tourism=camp_site, caravan_site | NACE I553 camping grounds and RV parks | not counted in the 452,341 total |
Note what the headline number excludes: campsites, motels and aparthotels sit outside tourism=hotel, so a total-market study needs the wider regex rather than the single tag.
Can you validate an OSM hotel extract against official statistics?
You should, because the official benchmarks are free and sit one join away.
Outside Europe, the pattern repeats with different sources. The US NTTO I-94 program publishes free monthly arrival workbooks built from ADIS records covering over 355 million travelers, and the World Bank's ST.INT.ARVL series covers roughly 265 economies of inbound arrivals - context layers for weighting any site-selection score.
What can you legally do with an extracted hotel POI table?
In practice most teams publish derived products instead of the raw table: density maps, per-region supply counts, distance-to-competitor features inside a model. Aggregated statistics and visualisations are the conventional safe harbour; legal review belongs in the process whenever the extract itself would ship to clients.
Where to go next
To put the supply picture into motion, pair your extract with the Eurostat demand tables: tour_cap_nat fixes each country's bed-place denominator, and tour_occ_arn2 supplies the regional nights and arrivals trend that turns a static POI map into a market indicator.
Pick up where this leaves off
Every one of these ships with sample rows before you commit to anything.
OpenStreetMap Hotels via Overpass Turbo
Eurostat - Capacity of Tourist Accommodation (tour_cap_nat)
Eurostat – Nights Spent at Tourist Accommodation (tour_occ_arn2)
Want rows instead of a pitch? Name the datasets.
API, files, or your warehouse. Daily, weekly, or hourly.
Get a sampleQuestions worth asking
Do you need an integration key to extract hotel POIs from OpenStreetMap?
No. The Overpass API is keyless: you post an Overpass QL query and matched hotels return as JSON, XML, GeoJSON or CSV under commercial delivery terms 1.0. Public servers ask light users to stay below roughly 10,000 queries and 1 GB downloaded per day, which comfortably covers city-scale and national-scale hotel extracts.
How many hotels are mapped in OpenStreetMap?
Taginfo counted 452,341 objects tagged tourism=hotel as of 2026-08-21 - 255,658 nodes, 190,479 ways and 6,204 relations - alongside 329 tourism=resort entries and hundreds of thousands of hostel, guest_house and apartment objects. Coverage is strongest in Europe and North America and thinner elsewhere.
Is OpenStreetMap hotel data really free for commercial projects?
Yes, under commercial delivery terms 1.0: copying, distributing and adapting the data is free with attribution to © OpenStreetMap contributors. Share-alike applies to derivative databases, so teams typically ship aggregated maps and statistics rather than the raw extract when the product is proprietary.
How do you sanity-check an OSM hotel count for a country?
Compare it with Eurostat tour_cap_nat, which counts establishments, bedrooms and bed-places annually for EU, EFTA and candidate countries from 1990 onward - 24,765 observations under DOI 10.2908/TOUR_CAP_NAT, downloadable free with no key. Large divergence between mapped points and official bed-place totals flags either mapping gaps or informal supply.