---
title: "Entity Properties"
canonical_url: "https://docs.getdx.com/webapi/types/properties/"
md_url: "https://docs.getdx.com/webapi/types/properties.md"
last_updated: "2026-05-19"
---

# Entity Properties
Entity Properties are key-value pairs where the key is the identifier of the property, and the value is a dynamic type based on the configured catalog [Property](https://docs.getdx.com/webapi/types/property/) object. The contents of the value is specific to the entity.

Property identifiers can easily be found in the catalog admin section under each entity type, next to the property name.

## Example

Example where `language` is the property identifier for a multi-select property:

```json
{
  "language": ["Ruby", "HTML", "Shell"]
}
```

## Types of Properties

See the [Property](https://docs.getdx.com/webapi/types/property/) object type for more information about supported types and how to configure them.

### Single field

#### URL

A string which is a URL.

`type`: `url`

```json
{ "slack-team": "https://company.slack.com/archive/2394kfl3" }
```

#### Text

Simple open-ended text value.

`type`: `text`

```json
{ "note": "Do not deploy" }
```

#### Boolean

Simple true/false value.

`type`: `boolean`

```json
{ "approved": true }
```

#### Number

Simple integer value.

`type`: `number`

```json
{ "q3-incidents": 12 }
```

#### Date

A string which is a date.

`type`: `date`

```json
{ "reviewed_on": "2025-01-12" }
```

### Multiple fields

#### Single-select

Has a distinct set of possible values. One value allowed.

`type`: `select`

```json
{ "service-tier": "Tier-1" }
```

#### Multi-select

Has a distinct set of possible values. Multiple values allowed.

`type`: `multi_select`

```json
{ "languages": ["Ruby", "Javascript"] }
```

#### List

An ordered list of free-form string values.

`type`: `list`

```json
{ "frameworks": ["React", "Rails", "GraphQL"] }
```

#### JSON

A nested JSON object.

`type`: `json`

```json
{ "json_config": { "key1": "value1", "array": [0, 1, 2] } }
```

### Communication

#### User

A user identified by their email address.

`type`: `user`

```json
{ "on-call-owner": "jane@example.com" }
```

#### Email

An email address used as a notification destination for entity-level alerts.

`type`: `email`

```json
{ "alert-email": "team@example.com" }
```

> **Note:** This property type is only available if your account has email notifications configured.

#### Slack Channel

A Slack channel used as a notification destination for entity-level alerts.

`type`: `slack_channel`

```json
{
  "alert-channel": {
    "channel_id": "C012AB3CD",
    "channel_name": "platform-alerts"
  }
}
```

> **Note:** This property type is only available if your account has a Slack integration configured.

#### Microsoft Teams Channel

A Microsoft Teams channel used as a notification destination for entity-level alerts.

`type`: `msteams_channel`

```json
{
  "alert-channel": {
    "channel_id": "19:abc123@thread.tacv2",
    "channel_name": "platform-alerts"
  }
}
```

> **Note:** This property type is only available if your account has a Microsoft Teams integration configured.

#### OpenAPI Spec

A JSON object containing an OpenAPI or Swagger spec.

`type`: `openapi`

```json
{
  "api-docs": {
    "openapi": "3.0.0",
    "info": {
      "title": "My API",
      "version": "1.0.0"
    },
    "paths": {}
  }
}
```

### System

#### Computed

Has a SQL query to compute the value.

`type`: `computed`

```json
{ "open-prs": 2 }
```

#### File matching rule

Pattern matches from repository file contents.

`type`: `file_matching_rule`

Example value:

```json
{
  "console-log-statements": {
    "status": "FOUND_MATCHES",
    "match_count": 2,
    "matches": [
      {
        "file_path": "src/main.js",
        "line": 5,
        "output": "console.log(\"Hello world\")",
        "reference_url": "https://example.com/path/to/src/main.js#line-5"
      }
      {
        "file_path": "src/main.js",
        "line": 10,
        "output": "console.log(\"Other log statement\")",
        "reference_url": "https://example.com/path/to/src/main.js#line-10"
      }
    ]
  }
}
```

The `status` field can be one of these values:

| Value            | Description                                    |
| ---------------- | ---------------------------------------------- |
| `FOUND_MATCHES`  | One or more matches were found in the file     |
| `NO_MATCHES`     | The file was found but no matches were present |
| `FILE_NOT_FOUND` | The file path did not exist in the repository  |

If an entity does not have a repo alias covered by a repository integration, the entity property will not be present.

## Fields

Entity Properties are stored as key-value pairs where:

| Key                     | Type   | Description                                                                                                                      |
| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `<property_identifier>` | varies | The value of the entity property. The type depends on the property configuration (boolean, string, number, array, object, etc.). |

## Removing Entity Properties

To remove an entity property, simply update or upsert a catalog entity with the desired property to remove and set `null` as the value. Omitted properties will not be affected.

Example:

```json
{
  "language": null
}
```
---

## Sitemap

[Overview of all docs pages](/llms.txt)
