Holdings¶
Fetch the current holdings snapshot for a V3 mapped account, including invested value, current value, PnL, haircut, pledge-related fields, and holding-level metadata.
Method: GET
Endpoint: /sentinel/portfolio/holdings
Base URLs¶
| Environment | Base URL |
|---|---|
| PROD | https://api.nubra.io |
| UAT | https://uatapi.nubra.io |
cURL¶
curl --location 'https://api.nubra.io/sentinel/portfolio/holdings' \
--header 'Authorization: Bearer <session_token>' \
--header 'x-device-id: <device_id>'
Request Payload¶
This is a GET endpoint and does not require a request body.
Response Structure¶
{
"message": "holdings",
"portfolio": {
"clientCode": "ZRL001",
"holdingStats": {
"investedAmount": 743039,
"currentValue": 763165,
"totalPnl": 20126,
"totalPnlChg": 2.7086062,
"dayPnl": -31795,
"dayPnlChg": -3.9995723
},
"holdings": [
{
"refId": 83414,
"symbol": "TVSMOTOR",
"exchange": "NSE",
"asset": "TVSMOTOR",
"quantity": 1,
"pledgedQty": 0,
"t1Qty": 0,
"avgPrice": 245292,
"prevClose": 273790,
"lastTradedPrice": 246625,
"investedValue": 245292,
"currentValue": 246625,
"netPnl": 1333,
"netPnlChg": 0.54343396,
"dayPnl": -27165,
"haircut": 14.93,
"marginBenefit": 209803,
"availableToPledge": 1,
"isPledgeable": true
}
]
}
}
Response Attributes¶
| Field | Type | Description |
|---|---|---|
message |
string |
Response message |
portfolio.clientCode |
string |
Demat-linked client code |
portfolio.holdingStats.investedAmount |
number |
Total invested amount |
portfolio.holdingStats.currentValue |
number |
Current market value |
portfolio.holdingStats.totalPnl |
number |
Total profit or loss |
portfolio.holdingStats.totalPnlChg |
number |
Total profit or loss percentage change |
portfolio.holdingStats.dayPnl |
number |
Intraday profit or loss |
portfolio.holdingStats.dayPnlChg |
number |
Intraday profit or loss percentage change |
portfolio.holdings |
array |
Holding-level records |
Important holding-level fields include:
| Field | Description |
|---|---|
portfolio.holdings[].refId |
Instrument reference ID |
portfolio.holdings[].symbol |
Tradable symbol |
portfolio.holdings[].exchange |
Exchange such as NSE or BSE |
portfolio.holdings[].asset |
Instrument asset or underlying |
portfolio.holdings[].quantity |
Current held quantity |
portfolio.holdings[].pledgedQty |
Quantity already pledged |
portfolio.holdings[].t1Qty |
Unsettled T+1 quantity |
portfolio.holdings[].avgPrice |
Average acquisition price |
portfolio.holdings[].prevClose |
Previous close |
portfolio.holdings[].lastTradedPrice |
Latest traded price |
portfolio.holdings[].investedValue |
Invested amount for the holding |
portfolio.holdings[].currentValue |
Current marked-to-market value |
portfolio.holdings[].netPnl |
Net holding profit or loss |
portfolio.holdings[].netPnlChg |
Net holding profit or loss percentage change |
portfolio.holdings[].dayPnl |
Day holding profit or loss |
portfolio.holdings[].haircut |
Haircut used for collateral valuation |
portfolio.holdings[].marginBenefit |
Margin value available from the holding |
portfolio.holdings[].availableToPledge |
Quantity still available to pledge |
portfolio.holdings[].isPledgeable |
Whether the holding is eligible for pledge |
Important Rules¶
Important Rules
- Use this endpoint for V3 mapped accounts.
- This endpoint is a holdings snapshot. The response does not auto-update after it is returned.
- Holding price, value, and PnL fields are typically returned in exchange-native integer units such as paise for NSE instruments.
pledgedQty,availableToPledge, andisPledgeableare holding-specific operational fields and may be absent for instruments where they do not apply.- Use the environment that matches the mapped account. PROD and UAT holdings are separate.