Portfolio
This API lets you retrieve holdings and positions in your portfolio.
| GET | /holdings | Retrieve list of holdings in demat account |
| GET | /positions | Retrieve open positions |
| POST | /positions/convert | Convert intraday position to delivery or delivery to intraday |
| get_holdings | Retrieve list of holdings in demat account |
| get_positions | Retrieve open positions |
Holdings
Users can retrieve all holdings bought/sold in previous trading sessions. All T1 and delivered quantities can be fetched.
curl --request GET \
--url https://api.dhan.co/holdings \
--header 'Content-Type: application/json' \
--header 'access-token: JWT'
dhan.get_holdings()
Request Structure
No Body
Response Structure
[
{
"exchange": "ALL",
"tradingSymbol": "HDFC",
"securityId": "1330",
"isin": "INE001A01036",
"totalQty": 1000,
"dpQty": 1000,
"t1Qty": 0,
"availableQty": 1000,
"collateralQty": 0,
"avgCostPrice": 2655.0
}
]
Parameters
| Field | Type | Description |
| exchange | enum string | Exchange |
| tradingSymbol | string | Refer Trading Symbol at Page No |
| securityId | string | Exchange standard id for each scrip. Refer here |
| isin | string | Universal standard id for each scrip |
| totalQty | int | Total quantities |
| dpQty | int | Quantities in delivered in demat account |
| t1Qty | int | Quantities not delivered in demat account |
| availableQty | int | Quantities available for transactions |
| collateralQty | int | Quantities placed as collateral with broker |
| avgCostPrice | float | Average Buy Price of total quantities |
Positions
Users can retrieve a list of all open positions for the day. This includes all F&O carryforward positions as well.
curl --request GET \
--url https://api.dhan.co/positions \
--header 'Content-Type: application/json' \
--header 'access-token: JWT'
dhan.get_positions()
Request Structure
No Body
Response Structure
[
{
"dhanClientId": "1000000009",
"tradingSymbol": "TCS",
"securityId": "11536",
"positionType": "LONG",
"exchangeSegment": "NSE_EQ",
"productType": "CNC",
"buyAvg": 3345.8,
"buyQty": 40,
"costPrice": 3215.0,
"sellAvg": 0.0,
"sellQty": 0,
"netQty": 40,
"realizedProfit": 0.0,
"unrealizedProfit": 6122.0,
"rbiReferenceRate": 1.0,
"multiplier": 1,
"carryForwardBuyQty": 0,
"carryForwardSellQty": 0,
"carryForwardBuyValue": 0.0,
"carryForwardSellValue": 0.0,
"dayBuyQty": 40,
"daySellQty": 0,
"dayBuyValue": 133832.0,
"daySellValue": 0.0,
"drvExpiryDate": "0001-01-01",
"drvOptionType": null,
"drvStrikePrice": 0.0.
"crossCurrency": false
}
]
Parameters
| Field | Type | Description |
| dhanClientId | string | User specific identification generated by Dhan |
| tradingSymbol | string | Refer Trading Symbol in Tables |
| securityId | string | Exchange standard id for each scrip. Refer here |
| positionType | enum string | Position Type LONG
SHORT
CLOSED |
| exchangeSegment | enum string | Exchange & SegmentNSE_EQ NSE_FNO NSE_CURRENCY BSE_EQ BSE_FNO BSE_CURRENCY MCX_COMM |
| productType | enum string | Product typeCNC INTRADAY MARGIN MTF CO BO |
| buyAvg | float | Average buy price mark to market |
| buyQty | int | Total quantity bought |
| costPrice | int | Actual Cost Price |
| sellAvg | float | Average sell price mark to market |
| sellQty | int | Total quantities sold |
| netQty | int | buyQty - sellQty = netQty |
| realizedProfit | float | Profit or loss booked. This needs to be computed at user end using LTP of the instrument |
| unrealizedProfit | float | Profit or loss standing for open position. This needs to be computed at user end using LTP of the instrument |
| rbiReferenceRate | float | RBI mandated reference rate for forex |
| multiplier | int | Multiplying factor for currency F&O |
| carryForwardBuyQty | int | Carry forward F&O long quantities |
| carryForwardSellQty | int | Carry forward F&O short quantities |
| carryForwardBuyValue | float | Carry forward F&O long value |
| carryForwardSellValue | float | Carry forward F&O short value |
| dayBuyQty | int | Quantities bought today |
| daySellQty | int | Quantities sold today |
| dayBuyValue | float | Value of quantities bought today |
| daySellValue | float | Value of quantities sold today |
| drvExpiryDate | int | For F&O, expiry date of contract |
| drvOptionType | enum string | Type of OptionCALL
PUT |
| drvStrikePrice | float | For Options, Strike Price |
| crossCurrency | boolean | Check for non INR currency pair |
Convert Position
Users can convert their open position from intraday to delivery or delivery to intraday.
curl --request POST \
--url https://api.dhan.co/positions/convert \
--header 'Content-Type: application/json' \
--header 'access-token: JWT' \
--data '{}'
Request Structure
{
"dhanClientId": "1000000009",
"fromProductType":"INTRADAY",
"exchangeSegment":"NSE_EQ",
"positionType":"LONG",
"securityId":"11536",
"tradingSymbol":"",
"convertQty":"40",
"toProductType":"CNC"
}
Parameters
| Field | Type | Description |
| dhanClientId | string | User specific identification generated by Dhan |
| fromProductType | enum string | Refer Trading Symbol in TablesCNC
INTRADAY
MARGIN
CO
BO |
| exchangeSegment | enum string | Exchange standard id for each scripNSE_EQ NSE_FNO NSE_CURRENCY BSE_EQ BSE_FNO BSE_CURRENCY MCX_COMM |
| positionType | enum string | Position TypeLONG
SHORT
CLOSED |
| securityId | string | Exchange standard id for each scrip. Refer here |
| tradingSymbol | string | Refer Trading Symbol in Tables |
| convertQty | int | No of shares modification is desired |
| toProductType | enum string | Desired product typeCNC INTRADAY MARGIN CO BO |
Response Structure
202 Accepted
Note: For description of enum values, refer Annexure