Documentation Index

Fetch the complete documentation index at: https://support.lusid.com/llms.txt

Use this file to discover all available pages before exploring further.

How do I generate a holdings report?

Prev Next

You can generate a holdings report for a transaction portfolio at any time.

Call the GetHoldings API. Note the following:

  • It’s almost always useful to specify the propertyKeys parameter with the Instrument/default/Name system property to identify individual results. You can retrieve any other Instrument or Holding property in the same way.

  • The request is effective today unless you specify a historical or future date using the effectiveAt parameter.

curl -X GET "https://<your-domain>.lusid.com/api/api/transactionportfolios/Finbourne-Examples/UK-Equities/holdings?propertyKeys=Instrument%2Fdefault%2FName"
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'

Providing the request is successful, the response contains one value per holding, for example:

"values": [
    {
      "instrumentScope": "default",
      "instrumentUid": "LUID_WPFIPFGD",
      "subHoldingKeys": {},
      "properties": {
        "Instrument/default/Name": {
          "key": "Instrument/default/Name",
          "value": {
            "labelValue": "LEGAL&GEN."
          },
          "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00"
        }
      },
      "holdingType": "P",
      "units": 82867.64705882352,
      "settledUnits": 82867.64705882352,
      "cost": {
        "amount": 238244.49,
        "currency": "GBP"
      },
      "costPortfolioCcy": {
        "amount": 238244.49,
        "currency": "GBP"
      },
      "currency": "GBP"
    },
    ...
]
  1. Navigate to the Portfolio Management > Holdings dashboard.

  2. Choose a portfolio or portfolio group and optionally an effective date (defaults to today):

Write a Luminesce SQL query using the Lusid.Portfolio.Holding provider and execute it using a tool such as the LUSID web app:

Retaining holdings reduced to zero units

By default, a holding that is set, adjusted or traded down to zero units drops out of holdings reports.

To retain it, add the Holding/default/RetainZeroHolding system property and set the value to True. For example, the following call to the BatchAdjustHoldings API targets a particular Bond instrument holding and adds the system property effective before its maturity date:

curl -X POST 'https://<your-domain>.lusid.com/api/api/transactionportfolios/Growth/FI/holdings/$batchAdjust?successMode=Partial'
 -H 'Authorization: Bearer <your-API-access-token>'
 -H 'Content-Type: application/json-patch+json'
 -d '{
  "AdjustHoldingRequest1": {
    "effectiveAt": "2027-03-01T00:00:00.0000000+00:00",
    "instrumentIdentifiers": {"Instrument/default/LusidInstrumentId": "LUID_00003H5N"},
    "properties": {
      "Holding/default/RetainZeroHolding": {
        "key": "Holding/default/RetainZeroHolding",
        "value": {
          "labelValue": "True"
        }
      }
    },
    "taxLots": [
      {
        "units": 2000,
      }
    ],
    "currency": "GBP"

  }
}'

Now, LUSID retains the zero-unit holding in the report post-maturity:

To remove it, set the system property back to False.