GnistAI GnistAI
Log in

ETF Data

ETF and mutual fund portfolio data — top holdings, asset allocation, and country exposure from SEC N-PORT filings.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 3 tools tools 3 3 type: api wrapper type type api wrapper api wrapper lifecycle: maintained lifecycle lifecycle maintained maintained Finance

Data source: SEC EDGAR (N-PORT-P)

REST Bridge Endpoint https://context.gnist.ai/rest/etf/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (3)

get_etf_holdings

Get top portfolio holdings for an ETF or mutual fund.

Returns the largest holdings by market value from the fund's most recent
N-PORT-P filing (quarterly portfolio disclosure filed with SEC).

Each holding includes name, CUSIP, market value, percentage of NAV,
share count, asset category, and country of domicile.

Examples:
get_etf_holdings("SPY") → Top 25 holdings of SPDR S&P 500 ETF
get_etf_holdings("QQQ", limit=10) → Top 10 Invesco QQQ holdings
get_etf_holdings("VTI", limit=50) → Top 50 Vanguard Total Stock Market

Returns:
Fund name, report date, net assets, total holding count,
and a list of holdings with value, weight, and classification.

ParameterTypeRequiredDescription
ticker_or_cikstringrequiredETF or mutual fund ticker (e.g. "SPY", "QQQ", "VTI") or numeric CIK.
limitintegeroptionalMaximum holdings to return, sorted by market value (default 25). (default: 25)
Request Body
{
  "ticker_or_cik": "example"
}
get_etf_allocation

Get asset allocation breakdown for an ETF or mutual fund.

Returns portfolio composition grouped by asset category (equity, debt,
derivatives, etc.) and by country — from the most recent N-PORT-P filing.

Useful for understanding an ETF's diversification, geographic exposure,
and asset mix without reading the full holdings list.

Examples:
get_etf_allocation("SPY") → S&P 500 ETF allocation (mostly US equity)
get_etf_allocation("BND") → Vanguard Bond ETF allocation (debt categories)
get_etf_allocation("VT") → Vanguard Total World — global country breakdown

Returns:
Fund info, asset category breakdown with NAV percentages,
and country breakdown with NAV percentages.

ParameterTypeRequiredDescription
ticker_or_cikstringrequiredETF or mutual fund ticker (e.g. "SPY", "QQQ", "BND") or numeric CIK.
Request Body
{
  "ticker_or_cik": "example"
}
report_feedback

Report a bug, feature request, or general feedback for this data source.

Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.

Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
Request Body
{
  "feedback": "example"
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/rest/etf/get_etf_holdings" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"ticker_or_cik": "example"}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/rest/etf/get_etf_holdings",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={
  "ticker_or_cik": "example"
},
)
print(resp.json())

Related Toolkits (Finance)

Resources