LUSID has a set of built-in system data types that can be used to describe and constrain data loaded into LUSID. Create your own custom data type.

For example, LUSID has a Rating system data type that only allows users to enter values such as A or BB into properties of this data type (see the definition of Rating below). In this way, LUSID guarantees that all data of the same type is consistent and valid at the point it is inserted or updated. 

To list all the system data types, obtain an API access token and call the LUSID ListDataTypes API for your domain as follows:

curl -X GET "https://<your-domain>"
  -H "Authorization: Bearer <your-API-access-token>"

For example, the Rating system data type has the following definition:

  "values": [
      "href": "https://<your-domain>",
      "typeValueRange": "Closed",
      "id": {
        "scope": "system",
        "code": "rating"
      "displayName": "Rating",
      "description": "Example rating data",
      "valueType": "String",
      "acceptableValues": [
      "unitSchema": "NoUnits",
      "acceptableUnits": [],
      "referenceData": {
        "fieldDefinitions": [],
        "values": []

Note that because typeValueRange is Closed, users can only enter or load property values from the list of acceptableValues.

A note on value types

A data type itself has a primitive valueType such as String, Int, Boolean and so on. To see the full list of value types, call the ListDataTypes API as follows:

curl -X GET "https://<your-domain>"
  -H "Authorization: Bearer <your-API-access-token>"

A note on units

A data type has a unitSchema that identifies the unit of measurement of values (either Basic, Iso4217Currency or NoUnits).

In all cases units are text values.