API de données ETF spot pour agents IA
Les données des ETF spot Bitcoin et Ethereum dans une seule API : les fondamentaux officiels des 19 ETF spot américains, émetteur par émetteur : parts en circulation, NAV, cryptos détenues et actif net. Plus de dépôts réglementaires à collecter et à décortiquer fonds par fonds : une clé, un format, tous les fonds.
Les fondamentaux officiels des 19 ETF spot américains, 10 sur Bitcoin et 9 sur Ethereum, émetteur par émetteur. Tout le marché : ces routes ne prennent pas de symbole.
#Données des ETF spot pour agents IA et LLM
« Combien de bitcoins détiennent les ETF spot américains ? », « Quel émetteur a le plus gros ETF Ethereum ? », « Comment a évolué l’actif net d’IBIT ? » : un agent IA répond avec les fondamentaux officiels des 19 fonds par l’outil MCP get_options_data, qui sert les familles par actif.
{
"name": "get_options_data",
"arguments": {
"asset": "BTC",
"fields": ["etf_fundamentals"]
}
}- Pour le LLM : ces chiffres sont trimestriels, issus des déclarations réglementaires ; il n’y a pas de flux net quotidien ici, et une réponse doit dire de quel trimestre elle parle.
- Pour les développeurs :
/v1/etf/fundamentalstient en un appel par actif, un outil simple pour votre propre agent IA (tool calling) ; sa route d’historique sert les trimestres passés. - Où ça tourne : Claude, ChatGPT, Cursor et tout client MCP, y compris les frameworks d’agents qui parlent MCP, comme LangChain ou n8n.
Branchez votre agent IA avec le guide du serveur MCP, ou apprenez-lui BytNode avec les Agent Skills open source.
#Fondamentaux des ETF
Les 11 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The balance-sheet date of the filing — the day the holdings, NAV and net assets are measured (end of the quarter for a 10-Q), at midnight UTC. `filed_date` says when the filing reached the SEC. |
ticker | ETF ticker. | |
issuer | ETF issuer. | |
shares_outstanding | shares | ETF shares outstanding. |
nav_per_share_usd | USD | Net asset value per share. |
net_assets_usd | USD | Net assets (AUM). |
form | SEC form type of the filing (`10-Q`, `10-K`...). | |
filed_date | calendar date (YYYY-MM-DD) | Filing date at the SEC. |
filing_url | Link to the filing on SEC EDGAR. | |
holdings | units of the asset (BTC for asset=BTC, ETH for asset=ETH) | Crypto held by the fund, in units of the asset. |
is_holdings_estimated | `true` if the holdings are derived from net assets / price rather than read in the filing. |
Les 12 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The balance-sheet date of the filing — the day the holdings, NAV and net assets are measured (end of the quarter for a 10-Q), at midnight UTC. `filed_date` says when the filing reached the SEC. |
ticker | ETF ticker. | |
issuer | ETF issuer. | |
shares_outstanding | shares | ETF shares outstanding. |
nav_per_share_usd | USD | Net asset value per share. |
net_assets_usd | USD | Net assets (AUM). |
form | SEC form type of the filing (`10-Q`, `10-K`...). | |
filed_date | calendar date (YYYY-MM-DD) | Filing date at the SEC. |
filing_url | Link to the filing on SEC EDGAR. | |
holdings | units of the asset (BTC for asset=BTC, ETH for asset=ETH) | Crypto held by the fund, in units of the asset. |
is_holdings_estimated | `true` if the holdings are derived from net assets / price rather than read in the filing. | |
is_closed | `true` = the row is final; `false` = provisional: the latest bucket while it still settles (a few seconds after its end, e.g. a candle whose volumes are not final yet), or the period in progress with `?live=1` on the routes that take it. Exception, rare: when a venue delivers trades LATE (seconds to minutes, e.g. during a burst), a closed row built from trades (trade candles, candle volumes, CVD, buy/sell ratio, trades per second) is corrected afterwards to include them, usually within minutes and at most one hour later; the correction only adds the late trades. |
L’ancrage officiel déposé par les émetteurs : nombre de parts, valeur liquidative, crypto détenue et actif net, par émetteur. Dix émetteurs Bitcoin et neuf émetteurs Ethereum sont suivis.
La famille a deux parties, choisies par ?asset=, obligatoire : BTC sert les dix ETF Bitcoin ; ETH sert les neuf ETF Ethereum. Les avoirs sont dans holdings sur les deux, en unités de l’actif de la partie.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
asset | string | requis | BTC ou ETH. Obligatoire : sans lui, ou avec toute autre valeur, 422 avec les valeurs acceptées. |
ticker | string | — | Sur l’historique : un seul émetteur, par son ticker (IBIT, par exemple). |
since_ms / until_ms | integer | — | Sur l’historique : bornes sur la date de bilan (time), en millisecondes. |
limit | integer | 100 | Sur l’historique, de 1 à 1000. |
# The nine Ethereum ETFs (?asset= is required: BTC or ETH)
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
"https://api.bytnode.com/v1/etf/fundamentals?asset=ETH"
# The filing history of a single issuer
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
"https://api.bytnode.com/v1/etf/fundamentals/history?asset=BTC&ticker=IBIT&limit=8"| Champ | Type | Description |
|---|---|---|
ticker | string | Le ticker de l’ETF. |
issuer | string | L’émetteur. |
time | string | La date d’arrêté du bilan du dépôt (celle à laquelle les avoirs sont donnés), à minuit UTC — la fin de la période couverte quand le dépôt n’en donne pas. Bornes, pages et tri utilisent tous cet instant. |
shares_outstanding | float | Nombre de parts en circulation. |
nav_per_share_usd | float | Valeur liquidative par part, en dollars. |
net_assets_usd | float | Actif net, en dollars. |
holdings | float | null | Quantité de l’actif détenue, en BTC sur la partie Bitcoin, en ETH sur la partie Ethereum. |
is_holdings_estimated | boolean | true quand les avoirs sont une estimation plutôt que le chiffre déposé. |
form, filed_date, filing_url | string | Le formulaire déposé, sa date de dépôt et le lien vers le document original. |