Développeurs
API publique et gratuite, sans authentification. Renvoie du JSON avec des en-têtes Cache-Control. Adaptée aux projets personnels, à la recherche et à la création de contenu.
Récupérez l’état actuel du score de liquidité, avec le score composite, le momentum, la confiance et les moteurs clés.
curl https://dollarliquidity.com/api/regime{
"status": "neutral",
"momentum": "stable",
"confidence": "high",
"compositeScore": 0.29,
"previousScore": 0.29,
"percentile5y": 42,
"coverage": { "groups": 4, "totalGroups": 4, "indicators": 9, "totalIndicators": 10 },
"dataAsOf": "2026-05-20",
"drivers": [
{
"indicatorId": "tga",
"weight": 0.325,
"zScore": 1.1,
"contribution": 0.239,
"direction": "tightening"
}
],
"updatedAt": "2026-05-22T15:33:33.647Z"
}percentile5y est la lecture principale de 0 à 100 (≥80 tendue, ≤20 abondante) ; compositeScore est la forme historique dans [-1,+1]. coverage indique combien de groupes et d’indicateurs ont réellement alimenté le score. dataAsOf est la date de la donnée la plus récente que reflète le score — updatedAt n’est que l’horodatage du recalcul, pas un signal de fraîcheur des données.
Cache-Control: public, s-maxage=3600, stale-while-revalidate=21600
Récupérez l’instantané actuel de Liquidity Lens : trois axes indépendants (Quantité, Prix, Structure), chacun avec son propre état et ses lectures secondaires, plus une cellule de matrice posture structurelle × impulsion tactique. Un produit distinct de /api/regime — jamais replié en un seul score.
curl "https://dollarliquidity.com/api/lens?lang=en"{
"quantity": {
"stance": "contracting",
"flow": -0.18,
"dial": 41,
"bufferPct": 11.2,
"bufferState": "thin",
"srfNonZeroShare90d": 0.03,
"realized": false,
"dataAsOf": "2026-08-26"
},
"price": {
"pathSpreadBps": 24,
"pathPricing": "neutral",
"realYieldPct": 1.92,
"realYieldTrendPp": 0.14,
"realYieldTrend": "rising",
"termPremiumPct": 0.34,
"termPremiumLevel": "normal",
"termPremiumTrendPp": -0.02,
"termPremiumTrend": "flat",
"curveContextBps": 48,
"dataAsOf": "2026-08-26"
},
"structure": {
"tgaFlow": 0.09,
"fiscalPulse": "draining",
"rrpBalanceB": 142.0,
"rrpBufferState": "depleted",
"billsShareContext": { "levelPct": 21.4, "direction6m": "rising" },
"fundingOverride": 0.12,
"dominantFundingLeg": null,
"cpTbillTiering": { "spreadBps": 14, "state": "normal", "trendBps": 2, "direction": "flat" },
"hyIgTiering": { "spreadBps": 118, "state": "normal", "trendBps": -3, "direction": "narrowing" },
"bankCashTiering": { "gapPp": 1.7, "state": "compressed", "trendPp": -0.5, "direction": "narrowing" },
"dataAsOf": "2026-08-26"
},
"synthesis": {
"cell": { "posture": "tightening", "pulse": "draining" },
"narrative": "…",
"dataAsOf": "2026-08-26"
},
"dataAsOf": "2026-08-26",
"updatedAt": "2026-08-27T06:00:11.203Z"
}Le paramètre optionnel ?lang= (en/zh/zh-Hant/ja/ko/es/fr/de, par défaut en) ne choisit que la langue de synthesis.narrative — tous les autres champs sont indépendants de la langue. Chaque champ est honnêtement null quand la série sous-jacente n’a pas encore chauffé, jamais une valeur neutre fabriquée.
Cache-Control: public, s-maxage=21600, stale-while-revalidate=86400
Récupérez la série temporelle d’un indicateur donné, avec les scores z, les centiles et les métadonnées.
tga, fed-balance-sheet, onrrp, vix, hy-spread, real-yield-10y, dollar-index, sofr-iorb, srf, bank-cash-buffer, net-liquidity, m2
| Paramètre | Type | Description |
|---|---|---|
days | number | Nombre de jours (par défaut : 365, maximum : 4000) |
curl "https://dollarliquidity.com/api/series/tga?days=90"{
"data": [
{ "date": "2026-04-20", "value": 1038.0, "zScore": 1.71 },
{ "date": "2026-05-20", "value": 782.0, "zScore": 0.98 }
],
"meta": {
"lastAvailableDate": "2026-05-20",
"zScoreMean": 441.14,
"zScoreStd": 349.53,
"percentile": 73,
"source": "fresh"
}
}data est trié par date croissante : data[0] est le point le plus ancien et la valeur la plus récente est data[data.length − 1].
Récupérez les corrélations glissantes, l’analyse avance-retard et les données de backtest entre le score de liquidité et les actifs risqués (BTC, SPX, QQQ, GOLD).
curl https://dollarliquidity.com/api/correlationCache-Control: public, s-maxage=900, stale-while-revalidate=1800
import requests
regime = requests.get("https://dollarliquidity.com/api/regime").json()
print(f"Status: {regime['status']}, Score: P{regime['percentile5y']}/100")
tga = requests.get("https://dollarliquidity.com/api/series/tga?days=30").json()
latest = tga["data"][-1] # data is ascending — the last element is newest
print(f"TGA: {latest['value']}B (z-score: {latest['zScore']})")const regime = await fetch("https://dollarliquidity.com/api/regime")
.then(r => r.json());
console.log(`Status: ${regime.status}, Score: P${regime.percentile5y}/100`);
const tga = await fetch("https://dollarliquidity.com/api/series/tga?days=30")
.then(r => r.json());
const latest = tga.data[tga.data.length - 1]; // ascending — last is newest
console.log(`TGA: ${latest.value}B`);Chaque erreur est un JSON de même structure : `{ "error": { "code", "message", "hint", "docs" }, "status" }`. `code` est stable et lisible par machine (par exemple `unknown_series`, `endpoint_not_found`) ; `hint` indique la marche à suivre. Les chemins `/api/*` inconnus renvoient un 404 de cette forme, jamais une page HTML.
{
"error": {
"code": "unknown_series",
"message": "Unknown series id "foo".",
"hint": "Valid ids: tga, fed-balance-sheet, … GET https://dollarliquidity.com/api lists every endpoint.",
"docs": "https://dollarliquidity.com/en/api-docs"
},
"status": 404
}Annuaire des points d’accès sur `/api`. OpenAPI 3.1 sur `/openapi.json` (alias `/.well-known/openapi.json`), un catalogue d’API RFC 9727 sur `/.well-known/api-catalog` et `/llms.txt` comme index du site. Chaque page est aussi servie en Markdown : envoyez `Accept: text/markdown` ou ajoutez `.md` au chemin.