Skip to content
Canonical common brand names for OpenStreetMap
Branch: master
Clone or download
Latest commit 9a3d32d May 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
brands Tiffany’s May 24, 2019
config drop nonbrand, fixes #2659 May 24, 2019
dist drop nonbrand, fixes #2659 May 24, 2019
docs npm run wikidata / npm run docs May 22, 2019
lib pacify eslint May 16, 2019
schema Deprecate and remove all remaining `match` properties May 14, 2019
.editorconfig Add .editorconfig file Mar 9, 2019
.eslintrc Add eslint and `npm run lint` command, fix warnings May 14, 2019
.gitignore Add fetch_logos.js and fetch all the logos! Mar 11, 2019
.travis.yml Add .travis.yml Oct 17, 2018 Add Code of Conduct Jul 5, 2016 Let users know that warnings are ok. May 14, 2019 Modernize Sep 7, 2018 Drop osmium from optionalDependencies and suggest a global install in… May 8, 2019 Update guides, add brand website links to doc pages Mar 18, 2019
build_all_names.js Refactor several scripts, update docs, rebuild dist Mar 21, 2019
build_brands.js Attempt to improve warning text May 16, 2019
build_dist.js Add eslint and `npm run lint` command, fix warnings May 14, 2019
build_docs.js Style timestamps May 15, 2019
build_wikidata.js Ignore historical logos in Wikidata May 15, 2019
check_wikiTags.js Add eslint and `npm run lint` command, fix warnings May 14, 2019
index.mjs Use a default export for matcher, export project code May 14, 2019
match_wikiTags.js Add eslint and `npm run lint` command, fix warnings May 14, 2019
package.json v3.0.1 May 21, 2019
rollup.config.js Use a default export for matcher, export project code May 14, 2019
validate.js Add eslint and `npm run lint` command, fix warnings May 14, 2019

Build Status npm version


Canonical common brand names for OpenStreetMap

What is it?

The goal of this project is to maintain a canonical list of commonly used names for suggesting consistent spelling and tagging of features in OpenStreetMap.

How it's used

When mappers create features in OpenStreetMap, they are not always consistent about how they name and tag things. For example, we may prefer McDonald's tagged as amenity=fast_food but we see many examples of other spellings (Mc Donald's, McDonalds, McDonald’s) and taggings (amenity=restaurant).

Building a canonical name index allows two very useful things:

  • We can suggest the most "correct" way to tag things as users create them while editing.
  • We can scan the OSM data for "incorrect" features and produce lists for review and cleanup.

Name Suggestion Index in use in iD

The name-suggestion-index is in use in iD when adding a new item

Currently used in:

  • iD (see above)
  • Vespucci
  • JOSM presets available

Browse the index

You can browse the index at to see which brands are missing Wikidata links, or have incomplete Wikipedia pages.


We're always looking for help! If you have any questions or want to reach out to a maintainer, ping bhousel on:


  • Node.js version 6 or newer
  • git for your platform


  • Clone this project, for example: git clone
  • cd into the project folder,
  • Run npm install to install libraries

About the index

Generated files (do not edit):

Preset files (used by OSM editors):

  • dist/name-suggestions.json - Name suggestion presets
  • dist/name-suggestions.min.json - Name suggestion presets, minified
  • dist/name-suggestions.presets.xml - Name suggestion presets, as JOSM-style preset XML

Name lists:

  • dist/names_all.json - all the frequent names and tags collected from OpenStreetMap
  • dist/names_discard.json - subset of names_all we are discarding
  • dist/names_keep.json - subset of names_all we are keeping
  • dist/wikidata.json - cached brand data retrieved from Wikidata

Configuration files (edit these):

  • config/*
    • config/filters.json- Regular expressions used to filter names_all into names_keep / discardNames
  • brands/* - Config files for each kind of branded business, organized by OpenStreetMap tag
    • brands/amenity/*.json
    • brands/leisure/*.json
    • brands/shop/*.json
    • brands/tourism/*.json

👉 See for info about how to contribute to this index.

Building the index

  • npm run build
    • Regenerates dist/names_keep.json and dist/names_discard.json
    • Any new entries from names_keep not already present in the index will be added to it
    • Outputs many warnings to suggest updates to brands/**/*.json

Other commands

  • npm run wikidata - Fetch useful data from Wikidata - labels, descriptions, logos, etc.
  • npm run docs - Updates the index summary pages
  • npm run - Lists other available tools

Updating dist/names_all.json from planet

This takes a long time and a lot of disk space. It can be done occasionally by project maintainers. You do not need to do these steps in order to contribute to the index.

  • Install osmium commandline tool and node package globally (may only work on some environments)
    • apt-get install osmium-tool or brew install osmium-tool or similar
    • npm install -g osmium
  • Download the planet
    • curl -o planet-latest.osm.pbf
  • Prefilter the planet file to only include named items with keys we are looking for:
    • osmium tags-filter planet-latest.osm.pbf -R name -o named.osm.pbf
    • osmium tags-filter named.osm.pbf -R amenity,shop,leisure,tourism -o wanted.osm.pbf
  • Run node build_all_names wanted.osm.pbf
    • results will go in dist/names_all.json
    • git add dist/names_all.json && git commit -m 'Updated dist/names_all.json'


name-suggestion-index is available under the 3-Clause BSD License. See the file for more details.

You can’t perform that action at this time.