To prevent conflicts in new namespaces added by extensions, please list your extension's custom namespaces here on the list of extension default namespaces. If you define a constant for a custom namespace, list it here too.
Note that these are only default namespaces. All extensions defining new namespaces should provide the installer with a method of configuring the extension to use a different range of namespaces for its custom namespaces.
In general, numbers for new namespaces should be reserved in blocks of 10, where no known namespaces are already added by MediaWiki core or any known extensions (see discussion). Namespace numbers between 3000 and 4999 should not be used; these numbers are reserved for wikis to define their own custom namespaces. Furthermore, care should be taken when selecting numbers under 1000, since this range has historically been quite heavily used by extensions and sites alike (numbers under 200 should probably be avoided altogether).
Naturally some namespaces listed on this page will overlap, and violate the recommendations listed here. The recommendations are good practices new extensions should try to adhere to to avoid conflicts; for legacy reasons, old extensions that have already created conflicts and bad practice can't simply be changed but are listed here to help avoid even more conflicts.
In a nutshell:
MediaWiki core uses namespace numbers under 100. These must never be used by extensions or sites.
Avoid namespace numbers 100–199. These were historically used by both extensions and sites.
Custom namespaces on sites should use namespace numbers 3000–4999. These should not be used by extensions.
Extensions should use namespace numbers between 200 and 2999, or between 5000–9999.
Avoid namespace numbers above 10,000. These are reserved for future use.
2 namespaces have negative indexes and have special purposes. You cannot create or delete pages in these namespaces, and there are no corresponding discussion namespaces.
The namespaces in 100–199 are reserved for site-specific namespaces, and should not be used by extensions. Many extensions are already using this range, though, so be careful. If you're writing a new extension you should never hardcode any namespaces inside the 100–199 range.
Many Wikimedia Foundation wikis have site-specific namespaces in this range. Including the Portal namespace (100) on most Wikipedia projects, Creator namespace (100) on Wikimedia Commons, the Extension namespace (102) on mediawiki.org, the Subject namespace (112) on English Wikibooks, and many others.
JSON schemas describing data models Note: Namespace name also used by LinkedWiki and (formerly) EntitySchema Note: Constant name also used by LinkedWiki
JSON configuration (outdated) describing Zero site behavior for this carrier These namespaces are also defined in a test file for Extension:JsonConfig.
Additional JSON data. As of 2015 you can store arbitrary valid JSON in the subnamespace Data:Json, e.g. Data:Json:MyDataset. This is a developing convention on Wikimedia projects that use JsonConfig and Graph. Note: Namespace and constant name also used by LinkedWiki
This extension is archived, though some older wikis may continue to use it.
HiddenPages requires custom namespaces to be added manually. Thus, a specific sequence cannot be registered. Nonetheless, the extension recommends using namespace numbers 1000 and up.
Translate extension uses these namespaces by default, but they can be overridden. FYI translatewiki.net uses namespaces from 1200 onward to hold product translations.
The BlueSpiceExtensions bundle contains only two extensions with a namespace at the moment. This may change in the near future. Therefore the Hallo Welt! team would appreciate it if the range of 1500–1599 could be reserved for this package.
The range of 3000–4999 is reserved for sites to define their own custom namespaces without fear of conflict. No known extensions define namespaces in this range, and new extensions should avoid it as well.
In accordance with this, the BlueSpice Namespace Manager uses the range above 3000 to create custom namespaces.