API de données macro pour agents IA
Le contexte macro du marché crypto dans une seule API : taux, dollar, liquidité, indices actions, or et pétrole, en quotidien et en intraday, avec des indicateurs qui les lisent face au Bitcoin. Pas de source macro à brancher à côté de votre flux crypto : même clé, même format.
Le contexte dans lequel évolue le marché crypto : taux, dollar, liquidité, indices, or et pétrole, au jour et en intrajournalier. Toutes ces routes portent sur tout le marché.
#Données macro pour agents IA et LLM
« Le taux américain à 10 ans monte-t-il ? », « Comment la liquidité nette a-t-elle bougé face à Bitcoin ? », « Quelles séries macro bougent avec BTC en ce moment ? » : un agent IA lit le contexte macro par l’outil MCP get_macro_data, une série du catalogue à la fois ou en indicateurs dérivés.
{
"name": "get_macro_data",
"arguments": {
"series": "DGS10",
"fields": ["macro"]
}
}- Pour le LLM : une série se nomme par son identifiant de catalogue (
DGS10est le taux américain à 10 ans), jamais devinée :get_system_infoliste le catalogue. - Pour les développeurs :
/v1/macro?series=et/v1/macro/seriesdonnent à votre propre agent IA un outil et son catalogue pour le tool calling, le même couple que celui du serveur MCP. - 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.
#Séries macro quotidiennes
Les 6 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The day of the observation, at midnight UTC. |
category | Series category. | |
name | Human-readable name of the series. | |
frequency | Publication frequency of the source (`daily`, `weekly`, `monthly`). | |
units | Unit of `value` as published by the source. | |
value | see `units` | Latest value of the series, in the unit given by `units`. |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The day of the latest observation of the series, at midnight UTC. |
series | Series identifier (the value of the `series` parameter). | |
category | Series category. | |
name | Human-readable name of the series. | |
frequency | Publication frequency of the source (`daily`, `weekly`, `monthly`). | |
units | Unit of `value` as published by the source. | |
value | see `units` | Latest value of the series, in the unit given by `units`. |
Les 3 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The day of the observation, at midnight UTC. |
value | see the series `units` | Value of the series on the day of `time`. |
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. |
Une vingtaine de séries officielles américaines, plus l’or, réparties en huit catégories. /v1/macro renvoie la dernière valeur d’UNE série, désignée par ?series= (obligatoire) ; /v1/macro/series est le catalogue, avec la dernière valeur de chaque série ; /v1/macro/history l’historique d’une série, désignée par ?series=.
| Catégorie | Séries |
|---|---|
| Change | Dollar large, dollar des pays émergents, EUR/USD, USD/JPY |
| Taux | Fed funds, 2 ans, 10 ans, 30 ans, et les pentes 10 ans − 2 ans et 10 ans − 3 mois |
| Inflation | CPI, PCE, points morts d’inflation à 5 et 10 ans |
| Liquidité | M2, base monétaire, bilan de la Fed, compte général du Trésor, reverse repos au jour le jour |
| Volatilité | VIX |
| Actions | S&P 500, Nasdaq composite |
| Emploi | Taux de chômage, emplois non agricoles |
| Matières premières | Or, pétrole WTI |
# The catalogue of the series served
curl -H "X-API-KEY: $BYTNODE_API_KEY" "https://api.bytnode.com/v1/macro/series"
# The history of one series
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
"https://api.bytnode.com/v1/macro/history?series=DGS10&limit=90"| Champ | Type | Description |
|---|---|---|
series | string | L’identifiant à passer dans ?series=. |
category | string | L’une des huit catégories. |
name | string | Le libellé lisible de la série. |
units | string | L’unité de la valeur. Elle diffère d’une série à l’autre : n’additionnez jamais deux séries sans la lire. |
time | string | Le jour de l’observation, à minuit UTC. |
value | float | La valeur observée. |
#Indicateurs dérivés
Quatre lectures composites, calculées à la demande à partir des séries brutes et du prix de Bitcoin.
Les 8 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value: the last date used by the window (at the top level, the most recent of all windows; see `oldest_input_date`). |
oldest_input_date | calendar date (YYYY-MM-DD) | Date of the OLDEST input the value uses (a monthly series lags a daily one): the value cannot be fresher than this input. `time` is the most recent input; each component carries its own date. |
method | How the value is computed. | |
correlations | Pearson correlation from -1 to 1, per macro series and window, with `sample_count` = number of common days. | |
correlations.dxy | Pearson correlation of daily returns against BTC over the last dxy, from -1 to 1. | |
correlations.sp500 | Pearson correlation of daily returns against BTC over the last sp500, from -1 to 1. | |
correlations.gold | Pearson correlation of daily returns against BTC over the last gold, from -1 to 1. | |
correlations.vix | Pearson correlation of daily returns against BTC over the last vix, from -1 to 1. |
La corrélation glissante de Bitcoin avec le dollar, le S&P 500, l’or et le VIX, sur trente et quatre-vingt-dix jours, calculée sur les rendements quotidiens aux dates communes. Une corrélation reste null tant que l’historique aligné est insuffisant.
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The day the value refers to, at midnight UTC. |
net_liquidity_usd | USD | Fed balance sheet (WALCL) - Treasury General Account (TGA) - overnight reverse repo (ON RRP), in USD. |
walcl_usd | USD | Fed total assets (WALCL), as known on that day. |
tga_usd | USD | Treasury General Account (WTREGEN), as known on that day. |
rrp_usd | USD | Overnight reverse repo (RRPONTSYD) of that day. |
walcl_date | calendar date (YYYY-MM-DD) | Observation day of the WALCL value used (weekly series). |
tga_date | calendar date (YYYY-MM-DD) | Observation day of the TGA value used (weekly series). |
Les 8 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | The day the value refers to, at midnight UTC. |
net_liquidity_usd | USD | Fed balance sheet (WALCL) - Treasury General Account (TGA) - overnight reverse repo (ON RRP), in USD. |
walcl_usd | USD | Fed total assets (WALCL), as known on that day. |
tga_usd | USD | Treasury General Account (WTREGEN), as known on that day. |
rrp_usd | USD | Overnight reverse repo (RRPONTSYD) of that day. |
walcl_date | calendar date (YYYY-MM-DD) | Observation day of the WALCL value used (weekly series). |
tga_date | calendar date (YYYY-MM-DD) | Observation day of the TGA value used (weekly series). |
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. |
La liquidité nette : le bilan de la Fed, moins le compte général du Trésor, moins les reverse repos au jour le jour. La réponse porte la formule et ses composantes, et l’unité est explicite, les trois séries sources n’étant pas dans la même.
Les 9 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value: the date of the most recent input. See `oldest_input_date` for the stalest one. |
oldest_input_date | calendar date (YYYY-MM-DD) | Date of the OLDEST input the value uses (a monthly series lags a daily one): the value cannot be fresher than this input. `time` is the most recent input; each component carries its own date. |
scale | Reading scale of the score. | |
30d | Momentum score over the last 30d, from -100 to +100. | |
30d.score | score from -100 to +100 | Macro momentum for crypto: positive = macro tailwind (weaker dollar, growing liquidity). |
30d.components | The inputs of the score and their contributions. | |
90d | Momentum score over the last 90d, from -100 to +100. | |
90d.score | score from -100 to +100 | Macro momentum for crypto: positive = macro tailwind (weaker dollar, growing liquidity). |
90d.components | The inputs of the score and their contributions. |
Un score de −100 à +100, construit sur la dynamique de M2, du bilan de la Fed et du dollar, sur trente et quatre-vingt-dix jours. Une masse monétaire en hausse et un dollar en baisse tirent le score vers le haut. Chaque composante porte son taux de variation en pourcentage, change_pct.
Les 22 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value: the date of the most recent signal. See `oldest_input_date` for the stalest one. |
oldest_input_date | calendar date (YYYY-MM-DD) | Date of the OLDEST input the value uses (a monthly series lags a daily one): the value cannot be fresher than this input. `time` is the most recent input; each component carries its own date. |
score | score from 0 to 100 | Share of risk-on signals × 100. |
label | `risk_on` (score above 50), `risk_off` (below 50) or `neutral` (exactly 50). | |
risk_on_signal_count | count | Signals currently risk-on. |
available_signal_count | count | Signals that could be evaluated (data available). |
signal_count | count | Signals in the model. |
signals | Each signal: its `condition` and whether it is risk-on now (`is_risk_on`). | |
signals.vix | The `vix` signal: its reading, and whether it counts as risk-on. | |
signals.dxy | The `dxy` signal: its reading, and whether it counts as risk-on. | |
signals.yield_curve | The `yield_curve` signal: its reading, and whether it counts as risk-on. | |
signals.sp500 | The `sp500` signal: its reading, and whether it counts as risk-on. | |
signals.gold | The `gold` signal: its reading, and whether it counts as risk-on. | |
context | The raw inputs used by the signals. | |
context.vix | index points | CBOE Volatility Index. |
context.dxy | index points | US Dollar Index. |
context.dxy_7d_ago | index points | US Dollar Index seven days earlier. |
context.yield_curve_10y2y_pp | percentage points | 10-year minus 2-year US Treasury yield. |
context.sp500 | index points | S&P 500. |
context.sp500_sma_50d | index points | 50-day simple moving average of the S&P 500. |
context.gold_usd | USD per troy ounce | Gold price. |
context.gold_7d_ago_usd | USD per troy ounce | Gold price seven days earlier. |
Un score de 0 à 100 sur cinq signaux : VIX bas, dollar en repli, pente de la courbe des taux positive, S&P au-dessus de sa moyenne à cinquante jours, or en repli. Un signal sans donnée est exclu du calcul plutôt que compté comme défavorable.
#Macro intrajournalière
Les 16 champs de cette route (d’après le contrat)
series | Series identifier (the value of the `series` parameter). | |
source | Upstream source. | |
instrument_code | Code of the instrument at the source (informative; use `series` in requests). | |
category | Series category. | |
name | Human-readable name of the series. | |
units | Unit of `value` as published by the source. | |
volume_kind | What `volume` measures for this instrument (`broker` = the source's own flow, not the whole market). | |
timeframes | Timeframes natively collected for the series. | |
history_start_date | calendar date (YYYY-MM-DD) | First day of available history. |
last_candle_at | Last candle available, per timeframe. | |
last_candle_at.1m | Start of the latest 1m candle served for this series (ISO 8601 UTC). | |
last_candle_at.5m | Start of the latest 5m candle served for this series (ISO 8601 UTC). | |
last_candle_at.15m | Start of the latest 15m candle served for this series (ISO 8601 UTC). | |
last_candle_at.1h | Start of the latest 1h candle served for this series (ISO 8601 UTC). | |
last_candle_at.4h | Start of the latest 4h candle served for this series (ISO 8601 UTC). | |
last_candle_at.1d | Start of the latest 1d candle served for this series (ISO 8601 UTC). |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the bucket the row covers: a 1h bucket at 14:00 covers 14:00:00 to 14:59:59.999. |
open | series unit | Open. |
high | series unit | High. |
low | series unit | Low. |
close | series unit | Close. |
volume | see `volume_kind` | Volume reported by the source for this instrument (not the whole market). |
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. |
Cinq instruments macro en bougies OHLC, pour comparer la crypto à l’heure plutôt qu’au jour : EUR/USD, USD/JPY, pétrole WTI, l’indice dollar ICE et l’or tokenisé, chacun sur six unités de temps (1m à 1d, sans 30m). Les taux à 10 et 30 ans, le VIX, le S&P 500 et le Nasdaq sont des séries FRED quotidiennes, servies par /v1/macro.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
series | string | obligatoire | Le series renvoyé par /v1/macro/intraday/series (par ex. PAXGUSDT). La colonne instrument_code du catalogue n’est PAS acceptée. |
timeframe | string | obligatoire | 1m, 5m, 15m, 1h, 4h, 1d — obligatoire. Chaque série sert les unités de temps listées dans son entrée du catalogue ; une autre renvoie un 422 timeframe_not_served. L’unité 30m n’existe pas dans cette famille. |
limit | integer | 100 | Nombre de bougies, de 1 à 1000. |
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
"https://api.bytnode.com/v1/macro/intraday/history?series=PAXGUSDT&timeframe=1h&limit=200"Demander une unité de temps qu’une série ne sert pas renvoie 422 timeframe_not_served avec la liste de celles qu’elle sert, plutôt qu’une liste vide, qui laisserait croire à un trou dans les données. data est la liste des bougies, de la plus récente à la plus ancienne ; series et timeframe sont rappelés dans l’enveloppe.