Retrieving properties from the domains of other types of entity

You can retrieve properties for entities of a particular type in LUSID using Get* and List* APIs specific to that entity type.

For example, you can call the GetHoldings API to generate a holdings report and specify the propertyKeys parameter to 'decorate' any number of properties from the native Holding domain onto the response. A property in the Holding domain is one whose underlying property type has a 3-stage key in the format Holding/<scope>/<code>.

Consider the following example using the equivalent get_holdings method in the Python SDK, where the syntax is easier to understand:

get_holdings_response = transaction_portfolios_api.get_holdings(
    scope = "Finbourne-Examples", 
    code = "UK-Equities",
    property_keys = ["Holding/Ibor/CurrentMarketValue"],
)

For some entity types, you can also retrieve properties from other domains. For example, for holdings you can retrieve properties from the Instrument and Portfolio domains as well as Holding. Consider the following example, in which a holdings report is enriched with the friendly names of instruments and their countries of origin, and portfolio manager names:

get_holdings_response = transaction_portfolios_api.get_holdings(
    scope = "Finbourne-Examples", 
    code = "UK-Equities",
    property_keys = ["Holding/Ibor/CurrentMarketValue", "Instrument/default/Name", "Instrument/Tax/Country", "Portfolio/Manager/Name"],
)

Note: Properties such as Instrument/default/Name that are in the protected default and system scopes are system properties. LUSID may automatically decorate relevant system properties onto Get* and List* API responses.

Entity type

Native property domain

Other retrievable property domains

Notes

Portfolios

Portfolio

Any that support relationships. More information.

Portfolio groups

PortfolioGroup

Any that support relationships.

Instruments

Instrument

Any that support relationships.

Holdings

Holding

Instrument, Portfolio, CustodianAccount

Also properties in the Transaction domain that are registered as sub-holding keys for a transaction portfolio.

Transactions

Transaction

Instrument, Portfolio, LegalEntity, CustodianAccount

Constituents

ReferenceHolding

Instrument

Journal entry lines

Instrument, Transaction, Portfolio, Account, LegalEntity, CustodianAccount

Journal entry lines do not have a property domain of their own.

Custom entities

Any that support relationships.

Custom entities do not have a property domain of their own. However, you can decorate properties from related entities onto custom entities.

Legal entities

LegalEntity

Any that support relationships.

People

Person

Any that support relationships.

To see whether a particular API supports this behavior, examine the LUSID API documentation and look for a propertyKeys or similar query parameter. The explanation should state which property domains can be retrieved, in this case the GetHoldingsWithOrders API: