Hotels & Lodging Scraper – OpenStreetMap Hotel Data
Pricing
from $3.00 / 1,000 results
Hotels & Lodging Scraper – OpenStreetMap Hotel Data
Extract hotels, hostels, guest houses, motels & apartments from OpenStreetMap by area, radius, or name. Get stars, room count, brand, operator, contact and address. No API key; open (ODbL) data.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Daniel Brenner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract hotels, hostels, guest houses, motels and apartments from OpenStreetMap by area, radius, or name — no API key, no booking-site scraping, no anti-bot battles. Open, legal (ODbL) data you can redistribute.
Give it an area like "Edinburgh, United Kingdom" and get back tidy rows for every place to stay: name, lodging type, star rating, room count, brand, operator, internet access, full address, coordinates, contact, and the raw OpenStreetMap tags. You can also search around a point (every hotel within X km of a landmark) or filter by name (e.g. every "Premier Inn" or "Hilton").
Why use this scraper?
- Lodging-specific fields. Not just a generic POI dump —
stars,rooms,lodging_type, brand, operator and internet access are parsed out of the OpenStreetMap tags for you. - Legal & open. OpenStreetMap data is ODbL-licensed — redistributable with attribution. No booking-site Terms-of-Service issues, no login.
- No API key. No hotel/OTA developer account, no per-call quota.
- Search by area, radius, or name. A whole city/region, everything within X metres of a point, or every property of one brand.
- Filter by type. Hotels only, or hostels + guest houses, etc.
- No duplicates. When OpenStreetMap maps one property twice (a node and a building outline), you get a single, richer row.
- Honest data. Every value comes straight from OpenStreetMap; anything not mapped is left empty (
null) — never guessed.stars/roomsare read only from explicit tags. - Global coverage & reliable. Anywhere OSM has data; retries across multiple Overpass mirrors.
Great for
- Travel & hospitality datasets, hotel-finder apps, trip planners
- Hotel market research, brand/coverage analysis, competitive mapping
- Site selection and real-estate/hospitality analysis
- Travel AI/RAG pipelines and dashboards
Input
| Field | Type | Description |
|---|---|---|
area | string | Place to search within, e.g. "Paris, France". Geocoded to a bounding box. |
aroundLocation | string | (optional) Address/place to search around within a radius. Pair with radiusMeters. |
radiusMeters | integer | (optional) Radius in metres for around-a-location search (default 3000). |
centerPoint | object | (advanced) Explicit center { "lat":.., "lon":.. } to search around. |
boundingBox | object | (advanced) Explicit { "south":.., "west":.., "north":.., "east":.. }. Overrides area. |
lodgingTypes | array | (optional) Which types to include: hotel, guest_house, hostel, motel, apartment, chalet. Default: all. |
searchTerm | string | (optional) Only return places whose name contains this text (case-insensitive), e.g. "Hilton". |
maxResults | integer | Maximum number of places to return (default 1000). |
Example input
{"area": "Edinburgh, United Kingdom","lodgingTypes": ["hotel", "guest_house", "hostel"],"maxResults": 500}
Every Premier Inn within 20 km of a point:
{"aroundLocation": "Manchester Piccadilly","radiusMeters": 20000,"lodgingTypes": ["hotel"],"searchTerm": "Premier Inn"}
Output
One row per lodging place:
| Field | Description |
|---|---|
name | Property name |
lodging_type | hotel / guest_house / hostel / motel / apartment / chalet |
stars | Star rating (from OSM stars) |
rooms | Number of rooms (from OSM rooms) |
brand, operator | Brand / chain and operator |
branch | Branch / location name of a chain outlet (OSM branch), e.g. Times Square — disambiguates outlets of the same chain; null when not a tagged branch |
brand_wikidata | Wikidata id of the brand/chain (e.g. Q598884) — stable entity id for chain analysis, when tagged |
brand_logo | Official brand logo image URL from the brand's Wikidata entity (P154), when it has one; null otherwise — optional enrichment, never guessed |
internet_access | wlan / yes / no / … |
wheelchair | Accessibility |
latitude, longitude | Coordinates |
street, housenumber, city, postcode, country | Address |
state | State / province (OSM addr:state / addr:province) — common in US/CA/AU, null where not tagged |
phone, email, website | Contact |
osm_id, osm_type, all_tags, source_url | OpenStreetMap identifiers, raw tags, and link |
full_address | All present address parts in one string (e.g. Main St 1, 10115 Berlin) |
map_url | Google Maps link to the coordinates |
Example output
{"name": "The Balmoral Hotel","lodging_type": "hotel","stars": 5,"rooms": 188,"brand": "Rocco Forte Hotels","operator": "Rocco Forte Hotels","internet_access": "wlan","city": "Edinburgh","postcode": "EH2 2EQ","country": "GB","website": "https://example.test","latitude": 55.9521,"longitude": -3.1897,"osm_type": "way","source_url": "https://www.openstreetmap.org/way/..."}
Any field is null when the property hasn't tagged it in OpenStreetMap — values are never guessed.
FAQ
Do I need an API key or account? No — give it an area (plus optional radius/name filters) and run. No data-provider key, no quota, no setup.
Is the data legal to use and redistribute? Yes. It comes from OpenStreetMap under the Open Database License (ODbL): public data you can redistribute with attribution (© OpenStreetMap contributors). No logins, no Terms-of-Service violations.
How is this different from a Booking.com or Expedia scraper?
It uses open OpenStreetMap data instead of scraping a site behind anti-bot defenses and Terms of Service — so it's legal, needs no API key, and returns an honest null for anything OSM hasn't mapped instead of guessing. You get each property's own details (stars, rooms, brand, contact) rather than OTA listings or reviews.
How much does it cost? Pay-per-result: $3 per 1,000 results — you only pay for the rows you actually get.
Which countries does it cover? Worldwide — anywhere OpenStreetMap has data.
How fresh is the data? It's pulled live from OpenStreetMap at run time, so it reflects the current map.
Data source & license
Data comes from OpenStreetMap via the public Nominatim (geocoding) and Overpass (querying) APIs. OpenStreetMap data is © OpenStreetMap contributors, licensed under the Open Database License (ODbL). If you publish or redistribute results, attribute "© OpenStreetMap contributors".
Notes
- Coverage and tag richness vary by region — OSM is community-mapped, so cities are richer than rural areas.
starsreflects what is tagged in OSM, which may differ from official/marketing ratings.
More OpenStreetMap data actors
Part of dataquarry's family of clean, ODbL OpenStreetMap extractors — same flexible area / radius / bounding-box / name search, same honest-null data (a field that isn't mapped is left empty, never guessed):
- OpenStreetMap Places Scraper — POI & local business, 115+ categories
- EV Charging Stations Scraper — socket types, power (kW), networks
- Hotels & Lodging Scraper — stars, rooms, brands
- Healthcare Facilities Scraper — pharmacies, doctors, dentists, clinics
- Tourist Attractions & Museums Scraper — Wikidata & Wikipedia links
- Fuel Station Scraper — fuel types, brands, payment methods
- Supermarket & Grocery Scraper — brands, organic, payment methods