> For the complete documentation index, see [llms.txt](https://docs.mapsindoors.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mapsindoors.com/cms/core-concepts/custom-properties.md).

# Custom Properties

***

## Custom Properties

Custom Properties let you attach metadata to your MapsIndoors data as key-value pairs. They are the right tool whenever you need to store information about a Location that goes beyond the built-in fields — things like booking system IDs, room capacity, sponsor levels, or any other data your app needs to work with.

Custom Properties can be added to Locations, Buildings, and Venues.

***

### Two types of Custom Properties

MapsIndoors supports two types of Custom Properties, and the distinction matters:

**Generic Custom Properties** store a single value regardless of language. They are best for data that your app uses programmatically — IDs, flags, references to external systems — where the value is never displayed directly to users in a translated form.

Examples: `bookable=true`, `calendarId=abc-123`, `capacity=12`

**Language-specific Custom Properties** store a different value per language. They are best for content that will be shown to users in their preferred language — descriptions, labels, or any human-readable text that needs translating.

Examples: `description` with an English value and a Danish value, `standDescription` translated per exhibitor language.

> If the same key exists as both a Generic and a Language-specific Custom Property, the Language-specific value takes priority.

***

### Where to add Custom Properties

Custom Properties are added in the **Custom Properties** section of the Location Details editor. Each property is defined by a key and a value. All values are stored as strings — any type conversion (e.g. parsing a boolean or number) happens in your app.

Custom Properties can also be set on **Buildings** and **Venues** via their respective edit dialogs in Solution Details.

***

### Custom Property Templates

Rather than adding the same keys manually to every Location of a given Type, you can define **Custom Property Templates** on the Type itself. Any key added as a template will appear as a pre-filled field on every Location of that Type in the CMS — making it easy to ensure consistent key naming across all Locations of the same kind.

Templates are configured by editing a Type in **Solution Details → Types → Edit Type → Custom Properties**.

***

### Using Custom Properties in your app

Custom Properties are available to the MapsIndoors SDKs at runtime — your app can read them from any Location object and use them to drive logic, display additional information, or integrate with external systems.

For implementation details, see the developer documentation:

* [Custom Properties — Web SDK](/sdks-and-frameworks/web/other-guides/custom-properties.md)
* [Custom Properties — Android SDK](/sdks-and-frameworks/android/custom-properties.md)
* [Custom Properties — iOS SDK](/sdks-and-frameworks/ios/custom-properties.md)

***
