> 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

Attach structured metadata to Locations, Buildings, and Venues using key-value pairs.

***

## 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mapsindoors.com/cms/core-concepts/custom-properties.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
