Equity and ETF Insights
4 endpoints · WealthSync API
Combined holding-wise brokers for Equities + ETF.
This API returns a combined view of Equity and ETF holdings grouped by individual stock/ETF, showing which brokers hold each instrument. Each holding shows ISIN, name, total units, current value, and a per-broker breakdown.
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.
→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".
→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. 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
- filterZeroValueAccountsstringoptionalOptional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".nullabledefault false
- filterZeroValueHoldingsstringoptionalOptional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".nullabledefault false
Sample request body
Responses
200OK
- totalFiDatainteger (int32)optionalNo description.nullable
- totalFiDataToBeFetchedinteger (int32)optionalNo description.nullable
- totalEquityHoldingsinteger (int32)optionalNo description.nullable
- totalETFHoldingsinteger (int32)optionalNo description.nullable
- totalEquityCurrentValuenumber (double)optionalNo description.nullable
- totalETFCurrentValuenumber (double)optionalNo description.nullable
- totalCurrentValuenumber (double)optionalNo description.nullable
- dailyReturnsnumber (double)optionalNo description.nullable
- dailyReturnsPercentnumber (double)optionalNo description.nullable
- holdingsarray<object>optionalNo description.nullable
Each item: 15 fields
- issuerNamestringoptionalNo description.nullable
- schemeNamestringoptionalNo description.nullable
- isinstringoptionalNo description.nullable
- isinDescriptionstringoptionalNo description.nullable
- bseSymbolstringoptionalNo description.nullable
- nseSymbolstringoptionalNo description.nullable
- marketCapCategorystringoptionalNo description.nullable
- fiTypestringoptionalNo description.nullable
- unitsnumber (double)optionalNo description.nullable
- lastTradedPricenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- totalUnitsnumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- portfolioWeightagePercentnumber (double)optionalNo description.nullable
- brokersarray<object>optionalNo description.nullable
Each item: 8 fields
- brokerNamestringoptionalNo description.nullable
- brandNamestringoptionalNo description.nullable
- brokerIdstringoptionalNo description.nullable
- unitsnumber (double)optionalNo description.nullable
- lastTradedPricenumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo description.nullable
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- totalUnitsnumber (double)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
- totalHoldingsinteger (int32)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
Code samplescurl · Node.js · Python
Combined demat-wise holdings for Equities + ETF.
This API returns a combined view of Equity and ETF holdings grouped by demat account. Each demat account shows broker name, demat ID, total current value, and the list of stock + ETF holdings under it.
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.
→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".
→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. 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
- filterZeroValueAccountsstringoptionalOptional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".nullabledefault false
- filterZeroValueHoldingsstringoptionalOptional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".nullabledefault false
Sample request body
Responses
200OK
- totalFiDatainteger (int32)optionalNo description.nullable
- totalFiDataToBeFetchedinteger (int32)optionalNo description.nullable
- totalEquityDematAccountsinteger (int32)optionalNo description.nullable
- totalEtfDematAccountsinteger (int32)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- dematarray<object>optionalNo description.nullable
Each item: 15 fields
- dematIdinteger (int64)optionalNo description.nullable
- brokerIdinteger (int32)optionalNo description.nullable
- brokerNamestringoptionalNo description.nullable
- brandNamestringoptionalNo description.nullable
- fiDataIdstringoptionalNo description.nullable
- fipIdstringoptionalNo description.nullable
- fiTypestringoptionalNo description.nullable
- maskedAccNumberstringoptionalNo description.nullable
- accountRefNumberstringoptionalNo description.nullable
- unitsnumber (double)optionalNo description.nullable
- lastTradedPricenumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- lastFetchTimestring (date-time)optionalNo description.nullable
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- totalUnitsnumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- 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
- lastFetchTimestringoptionalNo 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
- prevDetailsobjectoptionalNo description.
6 fields
- percentageChangenumber (double)optionalNo description.nullable
- priceChangenumber (double)optionalNo description.nullable
- lastFetchTimestringoptionalNo 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
Code samplescurl · Node.js · Python
Get user linked accounts.
This API returns all linked Equity and ETF accounts for a user in a combined view. Each linked account includes demat ID, broker name, holder info, consent status, and current value.
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.
→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".
→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. 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
- filterZeroValueAccountsstringoptionalOptional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".nullabledefault false
- filterZeroValueHoldingsstringoptionalOptional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".nullabledefault false
Sample request body
Responses
200OK
- totalFiDatainteger (int32)optionalNo description.nullable
- totalFiDataToBeFetchedinteger (int32)optionalNo description.nullable
- fipDataarray<object>optionalNo description.nullable
Each item: 6 fields
- fipIdstringoptionalNo description.nullable
- fipNamestringoptionalNo description.nullable
- totalFiDatainteger (int32)optionalNo description.nullable
- totalFiDataToBeFetchedinteger (int32)optionalNo description.nullable
- linkedAccountsarray<object>optionalNo description.nullable
Each item: 27 fields
- fiDataIdstringoptionalNo description.nullable
- accountRefNumberstringoptionalNo description.nullable
- dataFetchedstringoptionalNo description.nullable
- lastFetchDateTimestring (date-time)optionalNo description.nullable
- fiRequestCountOfCurrentMonthinteger (int32)optionalNo description.nullable
- fipIdstringoptionalNo description.nullable
- fipNamestringoptionalNo description.nullable
- latestConsentPurposeTextstringoptionalNo description.nullable
- latestConsentExpiryTimestring (date-time)optionalNo description.nullable
- consentPurposeVersionstringoptionalNo description.nullable
- maskedDematIdstringoptionalNo description.nullable
- linkedAccountTypestringoptionalNo description.nullable
- holderNamestringoptionalNo description.nullable
- holderDobstring (date-time)optionalNo description.nullable
- holderMobilestringoptionalNo description.nullable
- holderNomineestringoptionalNo description.nullable
- holderDematIdinteger (int64)optionalNo description.nullable
- holderLandlinestringoptionalNo description.nullable
- holderAddressstringoptionalNo description.nullable
- holderEmailstringoptionalNo description.nullable
- holderPanstringoptionalNo description.nullable
- holderCkycCompliancestringoptionalNo description.nullable
- holdingsCountinteger (int32)optionalNo description.nullable
- accountCurrentValuenumber (double)optionalNo description.nullable
- brokerIdinteger (int32)optionalNo description.nullable
- brokerNamestringoptionalNo description.nullable
- brandNamestringoptionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- totalBrokersinteger (int32)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
Code samplescurl · Node.js · Python
Combined account statement transactions for Equities + ETF.
This API returns the combined transaction history for Equity and ETF accounts. Each transaction includes trade date, ISIN, name, units, price, type (BUY/SELL), and trade value.
Prerequisites:
→ First call POST equities-and-etfs/user-linked-accounts to get the list of linked accounts.
→ From the response, pick the fiDataId of the desired account.
→ Pass that fiDataId as the "accountId" parameter in this API.
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.
→ accountId (optional): The fiDataId of the specific account, to limit the statement to that account.
→ brokerId (optional): Filter transactions by broker ID.
→ isin (optional): Filter transactions by ISIN.
→ txnOrder (optional): Sort order — "ASC" (oldest first) or "DESC" (newest first). Default: "ASC".
→ dateRangeFrom (optional): Start date for filtering transactions. Format: yyyy-MM-dd.
→ dateRangeTo (optional): End date for filtering transactions. Format: yyyy-MM-dd.
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
- accountIdstringoptionalOptional. The fiDataId of a linked account, taken from the linked-accounts response, to limit the statement to that account.nullable
- brokerIdstringoptionalOptional. Filter transactions by broker ID.nullable
- isinstringoptionalOptional. Filter transactions by ISIN.nullable
- txnOrderstringoptionalOptional. Sort order of transactions. Allowed values: ASC (oldest first), DESC (newest first). Default: ASC.nullabledefault ASC
- dateRangeFromstringoptionalOptional. Start date to filter transactions, in yyyy-MM-dd format.nullabledefault 2024-01-01
- dateRangeTostringoptionalOptional. End date to filter transactions, in yyyy-MM-dd format.nullabledefault 2024-12-31
Sample request body
Responses
200OK
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