LUSID stores version information for most types of entity. See how to audit change history.
For example, a call to the GetPortfolio API for a portfolio identified by a particular scope and code returns a version object:
{
"id": {
"scope": "Equities",
"code": "US-Growth"
},
"type": "Transaction",
"displayName": "Instructed settlement portfolio",
"created": "2025-01-01T00:00:00.0000000+00:00",
"version": {
"effectiveFrom": "2026-04-21T08:02:21.9248910+00:00",
"asAtDate": "2026-04-21T08:02:21.7861670+00:00",
"asAtCreated": "2026-04-09T10:28:32.4468080+00:00",
"userIdCreated": "00u91lo2d7X42sfse2p7",
"requestIdCreated": "2026040910-b05f687e721f476fb894455780399f12",
"reasonCreated": "",
"asAtModified": "2026-04-20T11:35:59.0394510+00:00",
"userIdModified": "00u91lo2d7X42sfse2p7",
"requestIdModified": "2026042011-d26f7daf9a24444c80e8f6c6ea189d09",
"reasonModified": "",
"asAtVersionNumber": 6,
"entityUniqueId": "668bbeef-55d8-4f0a-a3ff-803de058ab75"
},
"isDerived": false,
"baseCurrency": "GBP",
...
}
}Important: Ignore the deprecated
version.effectiveFromandversion.asAtDatefields. Instead, use:
version.asAtCreatedfor the date at which the first version of the entity begins.
version.asAtModifiedfor the date at which the current version begins.
Note the following:
The
asAtVersionNumberof a newly-created entity is1, so the example portfolio above has been modified five times. See every change to every version.You can use
requestIdCreated/requestIdModifiedto look up more information about the underlying API request from the Insights service.You can use
userIdCreated/userIdModifiedto look up more information about the responsible user from the Identity service.reasonCreated/reasonModifiedis only likely to be populated if the version is a staged modification awaiting approval.You can filter most types of entity by version fields. More information.
Quotes and transactions do not have a
versionobject; instead, information is provided by:For transactions, the
entryDateTimefield.For quotes, the
uploadedByandasAtfields.
Getting notified about changes
You can subscribe to system events to get notified when entities are created, updated or deleted. For example, the following call to the CreateSubscription API subscribes to the PortfolioUpdated system event for any portfolio in the Equities scope by any user other than one:
curl -X POST "https://<your-domain>.lusid.com/notification/api/subscriptions"
-H "Authorization: Bearer <your-API-access-token>"
-d "{
"id": {
"scope": "MySubscriptions",
"code": "PortfolioUpdates"
},
"displayName": "PortfolioUpdatesByOtherUsers",
"description": "Subscribes to all PortfolioUpdated events where the user performing the update is not me.",
"status": "Active",
"matchingPattern": {
"eventType": "PortfolioUpdated",
"filter": "Header.userId neq '00uji4twb4jDcHGjN2p8' and Body.portfolioScope eq 'Equities'"
}
}"