Demat Insights
1 endpoint · WealthSync API
Get demat holdings for equities and ETFs.
This API returns consolidated demat holdings across multiple FI types (Equity, ETF, REIT, INVIT, etc.). The response includes total demat accounts, current value, one-day returns, and a per-demat breakdown with broker info, individual holdings (ISIN, units, last traded price, market cap category), and portfolio weightage.
Request Body Parameters:
→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.
→ dematFiTypes (required): Array of FI type strings to include.
Allowed(e.g., "DEPOSIT", "TERM_DEPOSIT", "RECURRING_DEPOSIT", "SIP", "CP", "GOVT_SECURITIES", "EQUITIES", "BONDS", "DEBENTURES", "MUTUAL_FUNDS", "ETF", "IDR", "CIS", "AIF", "INSURANCE_POLICIES", "GENERAL_INSURANCE", "LIFE_INSURANCE", "NPS", "INVIT", "REIT", "GSTR1_3B", "OTHER").
→ filterZeroValueAccounts (optional): String value "true" to exclude demat accounts with zero value. Send it as a string ("true" or "false"), not a JSON boolean. Default: "false".
→ filterZeroValueHoldings (optional): String value "true" to exclude holdings with zero value. Send it as a string ("true" or "false"), not a JSON boolean. Default: "false".
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- uniqueIdentifierstringrequiredRequired. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.minLength 1default user-12345
- dematFiTypesarray<string>requiredRequired. List of FI types to include (upper case), for example EQUITIES, ETF, REIT. Allowed: DEPOSIT┃TERM_DEPOSIT┃RECURRING_DEPOSIT┃SIP┃CP┃GOVT_SECURITIES┃EQUITIES┃BONDS┃DEBENTURES┃MUTUAL_FUNDS┃ETF┃IDR┃CIS┃AIF┃INSURANCE_POLICIES┃GENERAL_INSURANCE┃LIFE_INSURANCE┃NPS┃INVIT┃REIT┃GSTR1_3B┃OTHERnullabledefault ["EQUITIES","ETF"]
- filterZeroValueAccountsstringoptionalOptional. Send the string "true" to exclude accounts with zero current value. Default: "false".nullable
- filterZeroValueHoldingsstringoptionalOptional. Send the string "true" to exclude holdings with zero current value. Default: "false".nullable
Sample request body
Responses
200OK
- totalFiDatainteger (int32)optionalNo description.
- totalFiDataToBeFetchedinteger (int32)optionalNo description.
- totalEquityDematAccountsinteger (int32)optionalNo description.
- totalETFDematAccountsinteger (int32)optionalNo description.
- currentValuenumber (double)optionalNo description.
- dematarray<object>optionalNo description.nullable
Each item: 14 fields
- dematIdinteger (int64)optionalNo description.nullable
- brokerIdstringoptionalNo description.nullable
- brokerNamestringoptionalNo description.nullable
- brandNamestringoptionalNo description.nullable
- fiDataIdstringoptionalNo description.nullable
- fipIdstringoptionalNo description.nullable
- maskedAccNumberstringoptionalNo description.nullable
- accountRefNumberstringoptionalNo description.nullable
- currentValuenumber (double)optionalNo description.
- holdingsarray<object>optionalNo description.nullable
Each item: 17 fields
- issuerNamestringoptionalNo description.nullable
- schemeNamestringoptionalNo description.nullable
- isinstringoptionalNo description.nullable
- isinDescriptionstringoptionalNo description.nullable
- bseSymbolstringoptionalNo description.nullable
- nseSymbolstringoptionalNo description.nullable
- marketCapCategorystringoptionalNo description.nullable
- unitsnumber (double)optionalNo description.nullable
- lastTradedPricenumber (double)optionalNo description.nullable
- lastFetchTimestring (date-time)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestring (date-time)optionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- totalUnitsnumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- portfolioWeightagePercentnumber (double)optionalNo description.nullable
- fiTypestringoptionalNo description.nullable
- fiDataIdstringoptionalNo description.nullable
- oneDayReturnsPercentnumber (double)optionalNo description.nullable
- oneDayReturnsnumber (double)optionalNo description.nullable
- oneDayReturnsPercentnumber (double)optionalNo description.
- oneDayReturnsnumber (double)optionalNo description.
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestring (date-time)optionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- totalUnitsnumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo description.nullable
- oneDayReturnsPercentnumber (double)optionalNo description.
- oneDayReturnsnumber (double)optionalNo description.
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestring (date-time)optionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- totalUnitsnumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500