Providing you have suitable access control permissions, you can explicitly request any number of properties and/or derived properties when you retrieve entities of a particular type from LUSID.
Note: By default, LUSID does not retrieve properties; you must explicitly request them for most entities. Note it may be more intuitive to retrieve time-variant properties as a time-series.
For example, you could request that LUSID 'decorate' the Instrument/BBG/AnalystRating
property onto instruments retrieved from the LUSID instrument master:
Note the following:
- LUSID may automatically decorate relevant system properties onto some API responses. These are properties in the protected
default
andsystem
scopes, for exampleHolding/default/SourcePortfolioId
. - For some entities such as transactions and holdings, you can additionally retrieve properties for other entities such as instruments and portfolios. Find out more about this.
There are several ways to retrieve properties for entities:
- Using the LUSID REST API
- Using the LUSID web app
- If you have a Luminesce license, by writing a SQL query.
Using the LUSID REST API
Most entity types have multiple APIs for retrieving entities of that type. For example, to retrieve instruments from the instrument master you can call:
- The ListInstruments API to retrieve all instruments.
- The GetInstruments API to retrieve all instruments with one or more identifier types, for example FIGI and/or ISIN.
- The GetInstrument API to retrieve a single instrument with a particular identifier value, for example FIGI
BBG000BDLT47
.
Most API endpoints have a query parameter you can use to decorate properties onto entities, for example instrumentPropertyKeys
for the ListInstruments
API:
This parameter name might differ between endpoints; for example, it is propertyKeys
for the GetInstruments
API.
For example, to retrieve the Instrument/BBG/AnalystRating
and Instrument/BBG/Country
properties for a set of instruments:
- Obtain an API access token.
- Call the
ListInstruments
API for your LUSID domain, passing in your API access token and specifying the 3-stage key of each property as an argument to separate instances of theinstrumentPropertyKeys
query parameter, for example:curl -X POST "https://<your-domain>.lusid.com/api/api/instruments?instrumentPropertyKeys=Instrument%2FBBG%2FAnalystRating&instrumentPropertyKeys=Instrument%2FBBG%2FCountry" -H "Authorization: Bearer <your-API-access-token>"
It might be easier to understand using the equivalent method in the Python SDK. Here, 3-stage property keys are specified as comma-separated string values in a list passed to the
instrument_property_keys
parameter:response = instruments_api.list_instruments( instrument_property_keys = ["Instrument/BBG/AnalystRating", "Instrument/BBG/Country"] )
Using the LUSID web app
Coming soon.