# 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)

***


---

# 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/custom-properties.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.
