ETF Insights
3 endpoints · WealthSync API
Get user linked accounts for ETFs.
This API returns all linked ETF (Exchange Traded Fund) demat accounts for a user. Each linked account includes details like 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
- lastFetchDatestringoptionalNo 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
- equityHoldingsCountinteger (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
- totalBrokersnumber (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 account statement for ETFs.
This API returns the transaction history for a specific ETF account. Each transaction includes ISIN, units, type (BUY/SELL), NAV, trade value, and broker details.
Prerequisites:
→ First call POST etf/user-linked-accounts to get the list of linked ETF 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 (required): The fiDataId of the specific account.
→ 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
- accountIdstringrequiredRequired. The fiDataId of the linked ETF account, taken from the linked-accounts response.minLength 1default YOUR_FI_DATA_ID
- 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
- transactionsarray<object>optionalNo description.nullable
Each item: 13 fields
- accountIdstringoptionalNo description.nullable
- brokerIdinteger (int32)optionalNo description.nullable
- txnIdinteger (int64)optionalNo description.nullable
- isinstringoptionalNo description.nullable
- isinDescriptionstringoptionalNo description.nullable
- bseSymbolstringoptionalNo description.nullable
- nseSymbolstringoptionalNo description.nullable
- marketCapCategorystringoptionalNo description.nullable
- transactionDateTimestring (date-time)optionalNo description.nullable
- unitsnumber (double)optionalNo description.nullable
- typestringoptionalNo description.nullable
- narrationstringoptionalNo description.nullable
- navnumber (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 ETF insights.
This API returns ETF portfolio insights including current value, total holdings, returns summary (daily returns, absolute return, XIRR), and demat-wise distribution with category/AMC/sector breakdowns.
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.
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
Sample request body
Responses
200OK
- currentValuenumber (double)optionalNo description.nullable
- totalHoldingsinteger (int32)optionalNo description.nullable
- returnsSummaryobjectoptionalNo description.
5 fields
- dailyReturnsnumber (double)optionalNo description.nullable
- dailyReturnsPercentagenumber (double)optionalNo description.nullable
- absoluteReturnnumber (double)optionalNo description.nullable
- absoluteReturnPercentagenumber (double)optionalNo description.nullable
- xirrnumber (double)optionalNo description.nullable
- totalDematsinteger (int32)optionalNo description.nullable
- dematWiseDistributionarray<object>optionalNo description.nullable
Each item: 14 fields
- dematIdinteger (int64)optionalNo description.nullable
- brokerNamestringoptionalNo description.nullable
- brandNamestringoptionalNo description.nullable
- brokerCodeinteger (int32)optionalNo description.nullable
- totalHoldingsinteger (int32)optionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- dematValuePercentagenumber (double)optionalNo description.nullable
- returnsSummaryobjectoptionalNo description.
5 fields
- dailyReturnsnumber (double)optionalNo description.nullable
- dailyReturnsPercentagenumber (double)optionalNo description.nullable
- absoluteReturnnumber (double)optionalNo description.nullable
- absoluteReturnPercentagenumber (double)optionalNo description.nullable
- xirrnumber (double)optionalNo description.nullable
- holdingsInsightsarray<object>optionalNo description.nullable
Each item: 11 fields
- schemeNamestringoptionalNo description.nullable
- isinstringoptionalNo description.nullable
- currentValuenumber (double)optionalNo description.nullable
- investedValuenumber (double)optionalNo description.nullable
- totalUnitsnumber (double)optionalNo description.nullable
- currentNAVnumber (double)optionalNo description.nullable
- currentNAVDatestring (date-time)optionalNo description.nullable
- returnsSummaryobjectoptionalNo description.
5 fields
- dailyReturnsnumber (double)optionalNo description.nullable
- dailyReturnsPercentagenumber (double)optionalNo description.nullable
- absoluteReturnnumber (double)optionalNo description.nullable
- absoluteReturnPercentagenumber (double)optionalNo description.nullable
- xirrnumber (double)optionalNo description.nullable
- trailingReturnsobjectoptionalNo description.
12 fields
- asOfDatestring (date-time)optionalNo description.nullable
- oneDaynumber (double)optionalNo description.nullable
- oneMonthnumber (double)optionalNo description.nullable
- threeMonthsnumber (double)optionalNo description.nullable
- sixMonthsnumber (double)optionalNo description.nullable
- nineMonthsnumber (double)optionalNo description.nullable
- oneYearnumber (double)optionalNo description.nullable
- twoYearsnumber (double)optionalNo description.nullable
- threeYearsnumber (double)optionalNo description.nullable
- fiveYearsnumber (double)optionalNo description.nullable
- sevenYearsnumber (double)optionalNo description.nullable
- tenYearsnumber (double)optionalNo description.nullable
- benchmarkobjectoptionalNo description.
2 fields
- benchmarkNamestringoptionalNo description.nullable
- benchmarkReturnPercentagenumber (double)optionalNo description.nullable
- fundHoldingsobjectoptionalNo description.
2 fields
- totalHoldingsinteger (int32)optionalNo description.nullable
- holdingsarray<object>optionalNo description.nullable
Each item: 9 fields
- holdingNamestringoptionalNo description.nullable
- holdingTypestringoptionalNo description.nullable
- namestringoptionalNo description.nullable
- holdingIsinstringoptionalNo description.nullable
- weightingnumber (double)optionalNo description.nullable
- numberOfSharenumber (double)optionalNo description.nullable
- marketValuenumber (double)optionalNo description.nullable
- sectorstringoptionalNo description.nullable
- couponnumber (double)optionalNo description.nullable
- etfCategoryDistributionarray<object>optionalNo description.nullable
Each item: 4 fields
- categorystringoptionalNo description.nullable
- totalFundsinteger (int32)optionalNo description.nullable
- totalCurrentValuenumber (double)optionalNo description.nullable
- percentagenumber (double)optionalNo description.nullable
- etfSubCategoryDistributionarray<object>optionalNo description.nullable
Each item: 4 fields
- categorystringoptionalNo description.nullable
- totalFundsinteger (int32)optionalNo description.nullable
- totalCurrentValuenumber (double)optionalNo description.nullable
- percentagenumber (double)optionalNo description.nullable
- etfMarketCapDistributionarray<object>optionalNo description.nullable
Each item: 4 fields
- categorystringoptionalNo description.nullable
- totalFundsinteger (int32)optionalNo description.nullable
- totalCurrentValuenumber (double)optionalNo description.nullable
- percentagenumber (double)optionalNo description.nullable
- etfAmcDistributionarray<object>optionalNo description.nullable
Each item: 4 fields
- categorystringoptionalNo description.nullable
- totalFundsinteger (int32)optionalNo description.nullable
- totalCurrentValuenumber (double)optionalNo description.nullable
- percentagenumber (double)optionalNo description.nullable
- etfSectorDistributionarray<object>optionalNo description.nullable
Each item: 4 fields
- categorystringoptionalNo description.nullable
- totalFundsinteger (int32)optionalNo description.nullable
- totalCurrentValuenumber (double)optionalNo description.nullable
- percentagenumber (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