---
title: "Managing custom data model membership"
slug: "managing-membership-of-custom-data-models"
updated: 2025-12-03T09:46:24Z
published: 2025-12-03T09:46:24Z
canonical: "support.lusid.com/managing-membership-of-custom-data-models"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.lusid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing custom data model membership

When you create a CDM for a supported entity type, every entity of that type in LUSID automatically acquires a status with respect to that CDM:

| Entity status | CDM member? | Explanation |
| --- | --- | --- |
| `Valid` | ✅ | The entity meets the requirements of the CDM and has been inducted: - It meets the condition of the CDM if there is one, for example `instrumentDefinition.instrumentType eq 'Equity'`. - Only identifiers and properties specified by the CDM have been added to the entity, and values if required. |
| `Candidate` | ❌ | The entity meets the requirements but has not yet been inducted. |
| `Inadmissible` | ❌ | The entity does not meet the requirements and so cannot currently be inducted. |
| `Invalid` | ✅ | The entity used to meet the requirements but no longer does; an identifier or property may have been removed, or the entity no longer meets the condition. For example, if the CDM has a condition of `Properties[Instrument/Variables/MarketCapitalisation] gte 5000000` and the property value for a particular entity falls below this figure, then the entity is no longer valid. |
| `NotApplicable` | N/A | The entity has been deleted. |

## Discovering membership and status

LUSID web appLUSID APILuminesce

Call an API such as [GetInstrument](https://www.lusid.com/docs/api/lusid/endpoints/instruments/GetInstrument) or [ListInstruments](https://www.lusid.com/docs/api/lusid/endpoints/instruments/ListInstruments) and specify the `dataModelScope` and `dataModelCode` of a CDM in the request.

In the response, examine the `dataModelMembership` object for each entity:

- The `membership` object lists the CDM(s) of which the entity is a member.
- The `currentModel` object reveals the `status` with respect to the CDM specified in the request. For anything other than `Valid`, a list of `validationFailures` is provided:

```json
{
  "name": "Tesco",
  "identifiers": {
    "Figi": "BBG000BF46Y8",
    "LusidInstrumentId": "LUID_00003GOR",
    "ClientInternal": "Tesco"
  },
  "dataModelMembership": {
    "membership": [
      {
        "scope": "CDMInstrument",
        "code": "All",
        "displayName": "All instruments"
      },
      {
        "scope": "CDMInstrument",
        "code": "Equity",
        "displayName": "Equity instruments"
      }
    ],
    "currentModel": {
      "status": "Invalid",
      "scope": "CDMInstrument",
      "code": "Equity",
      "displayName": "Equity instruments",
      "validationFailures": [
        "Mandatory Custom Data Model Property 'Instrument/MandatoryProperties/ExchangeCode' was not provided"
      ]
    }
  },
  ...
```

Navigate to the dashboard for the entity type of interest, for example **Data Management > Instruments**, and select a CDM:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-JKIUX38I.png)

Valid and invalid members are listed on the **Data model members** tab. Open the **Candidates** tab to examine candidates:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-PLTVI1YV.png)

***Coming soon***

## Inducting candidate entities into a CDM

If you have a hierarchy of CDMs, note that inducting a candidate into a child also inducts it into the parent.

LUSID web appLUSID APILuminesce

You can induct entities of different types into different CDMs in the same call to the [BatchAmend](https://www.lusid.com/docs/api/lusid/endpoints/custom-data-models/BatchAmend/) API, providing the `entityType` of each matches the entity type of the designated CDM.

You must specify the `entityUniqueId` for each entity to induct and an `operation` of `Add`, for example:

```json
curl -X POST 'https://<your-domain>.lusid.com/api/api/datamodel/$batchamend'
  -H 'Content-Type: application/json-patch+json' 
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "ephemeral-id-1": {
    "customDataModelId": {
      "scope": "CDMs",
      "code": "Equities"
    },
    "entityType": "Instrument",
    "entityUniqueId": "a56113de-104c-43f3-8d4c-c0cc41a40c23",
    "operation": "Add"
  },
  "ephemeral-id-1": {
    "customDataModelId": {
      "scope": "CDMs",
      "code": "Bonds"
    },
    "entityType": "Instrument",
    "entityUniqueId": "35ad555a-9876-bg56-a057-145geh657hd4",
    "operation": "Add"
  }
}'
```

To retrieve the `entityUniqueId` for an entity, use an API such as [GetInstrument](https://www.lusid.com/docs/api/lusid/endpoints/instruments/GetInstrument) and examine the `version` object in the response, for example:

```json
{
  "name": "Tesco",
  "identifiers": {
    "Figi": "BBG000BF46Y8",
    "LusidInstrumentId": "LUID_00003GOR",
    "ClientInternal": "Tesco"
  },
  "version": {
    "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00",
    "asAtDate": "2025-11-28T14:32:03.6464390+00:00",
    "asAtCreated": "2025-11-28T13:39:14.4770740+00:00",
    "userIdCreated": "00u91lo2d7X42sdse2p7",
    "requestIdCreated": "2025112813-933a795a3fbd4a3eab4be54133ce8903",
    "reasonCreated": "",
    "asAtModified": "2025-11-28T14:10:57.8283660+00:00",
    "userIdModified": "00u91lo2d7X42sdse2p7",
    "requestIdModified": "2025112814-000dd6fc0cde42e990eb3b58acf8d007",
    "reasonModified": "",
    "asAtVersionNumber": 14,
    "entityUniqueId": "a56113de-104c-43f3-8d4c-c0cc41a40c23"
  },
  ...
```

Navigate to the dashboard for the entity type of interest, for example **Data Management > Instruments**, and select a CDM:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-JKIUX38I.png)

Open the **Candidates** tab and select any number of candidate entities:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-FF0KEE8I.png)

Right-click the icon (highlighted in yellow) and select **Add to model**:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-Q0H37GWN.png)

You can examine newly-added entities on the adjacent **Data model members** tab.

***Coming soon***

## Removing entities from a CDM

If you have a hierarchy of CDMs, note that removing an entity from a parent does **not** remove it from a child; you must explicitly remove it from both.

LUSID web appLUSID APILuminesce

You can remove entities of different types from different CDMs in the same call to the [BatchAmend](https://www.lusid.com/docs/api/lusid/endpoints/custom-data-models/BatchAmend/) API, providing the `entityType` of each matches the entity type of the designated CDM.

You must specify the `entityUniqueId` for each entity to remove and an `operation` of `Remove`, for example:

```json
curl -X POST 'https://<your-domain>.lusid.com/api/api/datamodel/$batchamend'
  -H 'Content-Type: application/json-patch+json' 
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "ephemeral-id-1": {
    "customDataModelId": {
      "scope": "CDMs",
      "code": "Equities"
    },
    "entityType": "Instrument",
    "entityUniqueId": "a56113de-104c-43f3-8d4c-c0cc41a40c23",
    "operation": "Remove"
  },
  "ephemeral-id-1": {
    "customDataModelId": {
      "scope": "CDMs",
      "code": "Bonds"
    },
    "entityType": "Instrument",
    "entityUniqueId": "35ad555a-9876-bg56-a057-145geh657hd4",
    "operation": "Remove"
  }
}'
```

To retrieve the `entityUniqueId` for an entity, use an API such as [GetInstrument](https://www.lusid.com/docs/api/lusid/endpoints/instruments/GetInstrument) and examine the `version` object in the response, for example:

```json
{
  "name": "Tesco",
  "identifiers": {
    "Figi": "BBG000BF46Y8",
    "LusidInstrumentId": "LUID_00003GOR",
    "ClientInternal": "Tesco"
  },
  "version": {
    "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00",
    "asAtDate": "2025-11-28T14:32:03.6464390+00:00",
    "asAtCreated": "2025-11-28T13:39:14.4770740+00:00",
    "userIdCreated": "00u91lo2d7X42sdse2p7",
    "requestIdCreated": "2025112813-933a795a3fbd4a3eab4be54133ce8903",
    "reasonCreated": "",
    "asAtModified": "2025-11-28T14:10:57.8283660+00:00",
    "userIdModified": "00u91lo2d7X42sdse2p7",
    "requestIdModified": "2025112814-000dd6fc0cde42e990eb3b58acf8d007",
    "reasonModified": "",
    "asAtVersionNumber": 14,
    "entityUniqueId": "a56113de-104c-43f3-8d4c-c0cc41a40c23"
  },
  ...
```

Navigate to the dashboard for the entity type of interest, for example **Data Management > Instruments**, and select a CDM:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-JKIUX38I.png)

Open the **Data model members** tab and select any number of entities:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-0M82QLUL.png)

Right-click the icon (highlighted in yellow) and select **Remove from model**:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-KRETA3YN.png)

***Coming soon***
