How do I list or find instruments mastered in LUSID?

You can search or filter the LUSID instrument master to find a particular financial asset.

Note your LUSID instrument master may be partitioned into scopes. If so, then you must specify the scope in which to search; if you do not, LUSID searches only the built-in default scope. If you have partitioned your instrument master, it is not possible to search across all scopes. Note currency instruments only exist in the default scope.

Using the LUSID REST API

To call any LUSID API, you must obtain an API access token.

Listing instruments in the built-in default scope

To list all instruments in the default scope, call the ListInstruments API for your domain, passing in your API access token. Note only 100 instruments are returned per page; to increase this to the maximum per page, specify a limit of 2000:

curl -X GET "https://<your-domain>.lusid.com/api/api/instruments?limit=2000"
  -H "Authorization: Bearer <your-API-access-token>"

To list all the instruments that are not currencies, apply a filter of identifiers['Currency'] not exists:

curl -X GET "https://<your-domain>.lusid.com/api/api/instruments?limit=2000&filter=identifiers%5B%27Currency%27%5D%20not%20exists"
  -H "Authorization: Bearer <your-API-access-token>"

To list all the instruments that are of type Bond or ComplexBond, apply a filter of instrumentDefinition.instrumentType in 'Bond', 'ComplexBond':

curl -X GET "https://<your-domain>.lusid.com/api/api/instruments?filter=instrumentDefinition.instrumentType%20in%20%27Bond%27%2C%27ComplexBond%27"
  -H "Authorization: Bearer <your-API-access-token>"

To list all the deactivated instruments, apply a filter of State eq 'Inactive':

curl -X GET "https://<your-domain>.lusid.com/api/api/instruments?filter=State%20eq%20%27Inactive%27"
  -H "Authorization: Bearer <your-API-access-token>"

Listing instruments in a custom scope

Call the ListInstruments API for your domain, passing in your API access token and the name of the scope:

curl -X GET "https://<your-domain>.lusid.com/api/api/instruments?scope=mysecretscope"
  -H "Authorization: Bearer <your-API-access-token>"

Retrieving a particular instrument

To get a particular instrument, call the GetInstrument API, passing in a unique identifier type and value, for example a FIGI or LUID:

curl -X GET "https://<your-domain>.lusid.com/api/api/instruments/Figi/BBG000C05BD1"
  -H "Authorization: Bearer <your-API-access-token>"

Searching LUSID and OpenFIGI simultaneously

You can search both the LUSID instrument master and the OpenFIGI database simultaneously. This has the advantage of enabling you to quickly populate the LUSID instrument master from OpenFIGI if a particular instrument is found in the latter but not in the former. To do this, call the SearchInstruments API, passing in a FIGI unique identifier type and value:

curl -X POST "https://<your-domain>.lusid.com/api/api/search/instruments"
  -H "Authorization: Bearer <your-API-access-token>"
  -H "Content-Type: application/json"
  -d '[ { "key": "Instrument/default/Figi", "value": "BBG000C05BD1" } ]'

In this example, the response within the externalInstruments list is ready to be upserted using the UpsertInstruments API:

[
   {
       "masteredInstruments": [],
       "externalInstruments": [
           {
               "name": "BP PLC",
               "identifiers": {
                   "Figi": {
                       "value": "BBG000C05BD1",
                       "effectiveAt": "0001-01-01T00:00:00.0000000+00:00"
                   }
               },
               "properties": [
                   {
                       "key": "Instrument/default/CompositeFigi",
                       "value": {
                           "labelValue": "BBG000C059M6"
                       },
                       "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00"
                   },
                   {
                       "key": "Instrument/default/ShareClassFigi",
                       "value": {
                           "labelValue": "BBG001S61CN0"
                       },
                       "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00"
                   },
                   {
                       "key": "Instrument/default/Ticker",
                       "value": {
                           "labelValue": "BP/"
                       },
                       "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00"
                   }
               ]
           }
       ]
   }
]

Using the LUSID web app

Sign in to the LUSID web app using the credentials of a LUSID administrator. You can enter a term in the instrument search box (top left):

Alternatively, you can select Data Management > Instruments from the left-hand menu to navigate to the Instruments dashboard, and enter a term in any column header to start filtering the instrument list.

Note that to see the dashboard as it is here, with the unique and non-unique identifiers displayed in columns, click the Configuration cog (top right) and choose to add columns consisting of all the instrument identifiers. Identifiers with a * in the column header are unique: