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: