# Location Categories

***

### While a Location can only belong to one Type, it can belong to multiple Categories — making Categories the right tool for flexible filtering and browsing in your app.

***

### Categories vs Location Types

It helps to understand how Categories and Location Types differ:

|                        | Location Types                                     | Categories                                           |
| ---------------------- | -------------------------------------------------- | ---------------------------------------------------- |
| Purpose                | Styling — controls how a Location looks on the map | Filtering — groups Locations for search and browsing |
| How many per Location  | One (required)                                     | Many (optional)                                      |
| Controls Display Rules | Yes                                                | No                                                   |
| Used for app filtering | No                                                 | Yes                                                  |

A canteen, for example, might be of the Type "Canteen" but belong to both the "Food" and "Leisure" Categories. The Type controls how it looks; the Categories control how users find it.

***

### What Categories affect

Categories influence your app in two ways:

**Search** — when a user searches for a Category name, all Locations in that Category are returned as results, even if the Location's name doesn't match the search term.

**Browsing** — Categories appear as filter options in the app's search bar, letting users browse all Locations of a particular kind without typing. The order and visibility of Categories in the app is configured in Solution Details → App Settings → App Configuration.

***

### Subcategories

Categories support one level of nesting. A subcategory sits beneath a parent Category and adds a more specific filtering layer within it.

For example, a "Restrooms" Category could have subcategories for "Accessible", "Male", and "Female" — letting users drill down to exactly what they need.

![Subcategory example](https://docs.mapsindoors.com/~gitbook/image?url=https%3A%2F%2F2554025873-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYZLXDaaclvaSK6Q7eigW%252Fuploads%252Fgit-blob-92ab0b438b2a0b3aee3cad9cf4399e8d2ac784fa%252FClipboard-20250509-060658-633.gif%3Falt%3Dmedia\&width=768\&dpr=3\&quality=100\&sign=4d018742\&sv=2)

A few rules to be aware of:

* A Category assigned as a subcategory cannot also be used as a parent Category.
* A parent Category cannot be deleted without first removing all its subcategories.
* Subcategories are supported in the Web SDK via `childKeys`. Mobile SDKs do not currently support subcategories.

***

### Managing Categories

Categories are managed in **Solution Details → Categories**. Each Category has a name (translatable) and a key — a short unique identifier used to reference the Category in code and via the Integration API.

To assign Categories to a Location, open the Location Details editor and add them in the Categories field. A Location can have any number of Categories assigned.

Categories can also be assigned in bulk — select multiple Locations in the list view and use the bulk edit option to add or update Categories across all of them at once.

***

### Related concepts

* [Location Types](/cms/core-concepts/integrations.md) — how Locations are styled on the map
* [Data Concepts](/cms/core-concepts/markdown.md) — how Locations fit into the broader data hierarchy


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mapsindoors.com/cms/core-concepts/interactive-blocks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
