How do I retrieve a property or derived property for an entity?

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 and system scopes, for example Holding/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

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:

  1. Obtain an API access token.

  2. 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 the instrumentPropertyKeys 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

Most entity types have their own dashboard in the LUSID web app. You can add the property you want retrieve as a column in your view and filter for particular values.

For example, to retrieve the Instrument/BBG/AnalystRating and Instrument/BBG/Country properties for a set of instruments:

  1. Sign in to the LUSID web app.

  2. Use the left-hand menu to navigate to Data Management > Instruments:

  3. Select the Configuration button:

  4. Select Add column:

  5. Choose the properties you want to retrieve. Then, select Submit and Save:

  6. With the properties added to your dashboard view, you can filter for the values you want. For example, you might apply a filter to retrieve instruments where a value exists for the Instrument/BBG/AnalystRating property: