Loonaut open data dumps ======================= These files hold the data behind loonaut.com that comes from OpenStreetMap. They also hold the places and facts that Loonaut derives from it. The files are the share-alike offer of the Open Database License (ODbL). Credit: © OpenStreetMap contributors, https://www.openstreetmap.org/copyright Licence: Open Database License (ODbL) 1.0, https://opendatacommons.org/licenses/odbl/1-0/ More: https://loonaut.com/data-sources You may copy, share and change the data if you credit OpenStreetMap and its contributors. If you publicly use a database that you derive from these files, you must offer it under the ODbL or a compatible licence. A map or another produced work from the data needs the credit, not a share-alike offer. Read the licence text for the details. Keep this credit and this licence notice with every copy. Changes by Loonaut ------------------ osm-toilets-latest.geojsonseq.gz holds OpenStreetMap records. Loonaut did not change them. Loonaut reads their tags into fields such as access, fee and wheelchair on loonaut.com. The file holds the tags, not these fields. osm-places-latest.jsonl.gz and osm-toilet-places-latest.jsonl.gz are derived by Loonaut from OpenStreetMap boundaries, stations, airports, landmarks and toilets. community-facts-latest.jsonl.gz holds changes to the OpenStreetMap data. People on loonaut.com decided these facts by vote. On Loonaut, a decided fact replaces the OpenStreetMap value. Not in the dumps ---------------- Partner data is not part of these files. Paid partner listings live in a separate database. Toilets that people add on loonaut.com have no record in osm-toilets-latest.geojsonseq.gz. The files hold no accounts, no reports and no voter keys. Files ----- osm-toilets-latest.geojsonseq.gz: 78.6 MB, updated 2026-10-04 osm-places-latest.jsonl.gz: 45.8 MB, updated 2026-10-04 osm-toilet-places-latest.jsonl.gz: 30 MB, updated 2026-10-04 community-facts-latest.jsonl.gz: 194 B, updated 2026-10-04 Each import replaces the files. Download a file at https://loonaut.com/dumps/ Formats and fields ------------------ Each file is gzip. Unpack it with gunzip. A JSON Lines file holds one JSON object per line. Times are ISO 8601 in UTC. osm-toilets-latest.geojsonseq.gz GeoJSON text sequence (RFC 8142). Each record is one GeoJSON Feature. A record starts with the character U+001E and ends with a line feed. The file is the osmium export of the OpenStreetMap objects tagged amenity=toilets or toilets=yes. It also holds their tagged member nodes. A closed way appears twice: as a way and as an area. Loonaut uses only the records that carry the toilet tags. It skips the area of a closed way. id n123 is a node, w123 is a way, a123 is an area. An area id a is the way N/2 when N is even, and the relation (N-1)/2 when N is odd. properties The OpenStreetMap tags of the object, unchanged. geometry A GeoJSON geometry in WGS 84 (longitude, latitude). osm-places-latest.jsonl.gz JSON Lines. One place per line: a country, region, city, district, station, airport or landmark. id pl_ and the first 20 hex digits of the SHA-256 of "osm:" and the first id in osm_ids. kind country, region, city, district, station, airport or landmark. subkind square, attraction, museum or park for a landmark. Else null. path The path of the place page on loonaut.com, in English. osm_ids The OpenStreetMap ids of the place, separated by commas: n123, w123 or r123. A country that Loonaut infers from its regions has iso-XX with its ISO code. name The name in the local language. name_en, name_de The English and the German display name. label The name with its city, region and country. country The ISO 3166-1 alpha-2 code of the country, or null. country_id, region_id, city_id, district_id, subdistrict_id The ids of the places that contain this place. Null when there is none. lat, lon, geohash The position and its 9-character geohash. An area has the median position of its toilets. wikidata The Wikidata item, or null. population The population from OpenStreetMap, or null. toilet_count The number of usable toilets in the place. A toilet is usable when it is not private and not closed for good. A station, airport or landmark counts the usable toilets inside its outline or within 800 m. no_purchase_count, wheelchair_count, changing_count, open24_count How many of these toilets need no purchase, have wheelchair access, have a changing table or are open 24/7. nearest_m For a station, airport or landmark: the distance in metres to the nearest toilet. confirmed_at The latest check date of a toilet in the place (OpenStreetMap check_date or survey:date). indexable 1 when the place has enough toilets for a page that search engines may index. signature A hash of the facts that the place page shows. changed_at, updated_at The time of the import. osm-toilet-places-latest.jsonl.gz JSON Lines. One line for each usable toilet that belongs to a place. toilet_id lt_ and the first 20 hex digits of the SHA-256 of "osm:" and the id in osm-toilets-latest.geojsonseq.gz. country_id, region_id, city_id, district_id, subdistrict_id The ids of the places that contain the toilet. Null when there is none. station_id, station_m The nearest station or airport within 800 m, and the distance in metres. landmark_id, landmark_m The nearest landmark within 800 m, and the distance in metres. rank A score for sorting lists. A higher score is better. updated_at The time of the import. community-facts-latest.jsonl.gz JSON Lines. The first line is a header: dump, licence, licence_url, attribution and generated_at. Each other line is one fact that people decided. toilet_id The Loonaut toilet id. For an OpenStreetMap toilet, the id in osm-toilet-places-latest.jsonl.gz. source The source of the toilet: osm for OpenStreetMap. source_id The id in the source. For osm: the OpenStreetMap id, as in osm-toilets-latest.geojsonseq.gz. attribute access, fee, fee_amount, wheelchair, changing_table, gender, opening_hours, name, operator or existence. value The value that people decided. votes_for The votes for the value. votes_total All votes on the fact. The OpenStreetMap value counts as one vote. locked 1 when a moderator locked the value. updated_at When the votes were last counted.