from datetime import date
from finance_dev import FinanceDev, models
import os
with FinanceDev(
security=models.Security(
client_id=os.getenv("FINANCE_DEV_CLIENT_ID", ""),
client_secret=os.getenv("FINANCE_DEV_CLIENT_SECRET", ""),
),
) as fd_client:
res = fd_client.etf.get_etf_holdings(date_=date.fromisoformat("2024-12-01"))
assert res.etf_holdings_response is not None
# Handle response
print(res.etf_holdings_response)curl --request GET \
--url https://api.aries.com/v1/etf/holdings \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aries.com/v1/etf/holdings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aries.com/v1/etf/holdings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aries.com/v1/etf/holdings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aries.com/v1/etf/holdings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aries.com/v1/etf/holdings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"holdings": [
{
"assetType": "Equity",
"cusip": "037833100",
"isin": "US0378331005",
"name": "Apple Inc",
"percent": 7.171259880065918,
"share": 1210000000,
"symbol": "AAPL",
"value": 464000000000
},
{
"assetType": "Equity",
"cusip": "594918104",
"isin": "US5949181045",
"name": "Microsoft Corp",
"percent": 6.791339874267578,
"share": 790000000,
"symbol": "MSFT",
"value": 439000000000
},
{
"assetType": "Equity",
"cusip": "023135106",
"isin": "US0231351067",
"name": "Amazon.com Inc",
"percent": 3.60932993888855,
"share": 1010000000,
"symbol": "AMZN",
"value": 233000000000
}
],
"numberOfHoldings": 504,
"symbol": "SPY"
}
}ETF Holdings
Retrieve complete list of ETF constituent holdings with percentage weights and share counts. Analyze fund composition and concentration risk.
Use Case: Check top 10 holdings of QQQ ETF to understand tech sector concentration.
from datetime import date
from finance_dev import FinanceDev, models
import os
with FinanceDev(
security=models.Security(
client_id=os.getenv("FINANCE_DEV_CLIENT_ID", ""),
client_secret=os.getenv("FINANCE_DEV_CLIENT_SECRET", ""),
),
) as fd_client:
res = fd_client.etf.get_etf_holdings(date_=date.fromisoformat("2024-12-01"))
assert res.etf_holdings_response is not None
# Handle response
print(res.etf_holdings_response)curl --request GET \
--url https://api.aries.com/v1/etf/holdings \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aries.com/v1/etf/holdings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aries.com/v1/etf/holdings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aries.com/v1/etf/holdings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aries.com/v1/etf/holdings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aries.com/v1/etf/holdings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"holdings": [
{
"assetType": "Equity",
"cusip": "037833100",
"isin": "US0378331005",
"name": "Apple Inc",
"percent": 7.171259880065918,
"share": 1210000000,
"symbol": "AAPL",
"value": 464000000000
},
{
"assetType": "Equity",
"cusip": "594918104",
"isin": "US5949181045",
"name": "Microsoft Corp",
"percent": 6.791339874267578,
"share": 790000000,
"symbol": "MSFT",
"value": 439000000000
},
{
"assetType": "Equity",
"cusip": "023135106",
"isin": "US0231351067",
"name": "Amazon.com Inc",
"percent": 3.60932993888855,
"share": 1010000000,
"symbol": "AMZN",
"value": 233000000000
}
],
"numberOfHoldings": 504,
"symbol": "SPY"
}
}Authorizations
OAuth2 Bearer token: obtain an access token from the token endpoint and send it in the Authorization header.
Query Parameters
ETF ticker to filter by. Send the plain uppercase symbol (e.g. SPY). Provide either symbol or isin.
ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. US0378331005 for Apple). Provide this instead of symbol when you have an ISIN.
(Optional) Number of records to skip for pagination
(Optional) Date for historical holdings (YYYY-MM-DD)
"2024-12-01"
Response
ETF holdings.
Constituent holdings of an ETF from Finnhub.
ETF holdings payload.
Show child attributes
Show child attributes
Was this page helpful?