Desarrolladores
API pública y gratuita, sin autenticación. Devuelve JSON con cabeceras Cache-Control. Adecuada para proyectos personales, investigación y creación de contenido.
Obtén el estado actual de la puntuación de liquidez, incluidos la puntuación compuesta, el momento, la confianza y los motores principales.
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 es la lectura principal de 0 a 100 (≥80 tensa, ≤20 holgada); compositeScore es la forma heredada en [-1,+1]. coverage indica cuántos grupos e indicadores alimentaron realmente la puntuación. dataAsOf es la fecha del dato más reciente que refleja la puntuación: updatedAt es solo la marca de tiempo del recálculo, no una señal de frescura de los datos.
Cache-Control: public, s-maxage=3600, stale-while-revalidate=21600
Obtén la instantánea actual de Liquidity Lens: tres ejes independientes (Cantidad, Precio, Estructura), cada uno con su propio estado y lecturas secundarias, más una celda de matriz postura estructural × pulso táctico. Un producto separado de /api/regime — nunca se pliega en una sola puntuación.
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"
}El parámetro opcional ?lang= (en/zh/zh-Hant/ja/ko/es/fr/de, por defecto en) solo elige el idioma de synthesis.narrative — el resto de campos son independientes del idioma. Cualquier campo es null, honestamente, cuando la serie subyacente aún no se ha calentado, nunca un valor neutro fabricado.
Cache-Control: public, s-maxage=21600, stale-while-revalidate=86400
Obtén la serie temporal de un indicador concreto, incluidos puntuaciones z, percentiles y metadatos.
tga, fed-balance-sheet, onrrp, vix, hy-spread, real-yield-10y, dollar-index, sofr-iorb, srf, bank-cash-buffer, net-liquidity, m2
| Parámetro | Tipo | Descripción |
|---|---|---|
days | number | Número de días (por defecto: 365, máximo: 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á ordenado por fecha de forma ascendente: data[0] es el punto más antiguo y el valor más reciente es data[data.length − 1].
Obtén correlaciones móviles, análisis de adelanto-retardo y datos de backtest de la puntuación frente a activos de riesgo (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`);Todos los errores son JSON con la misma estructura: `{ "error": { "code", "message", "hint", "docs" }, "status" }`. `code` es estable y legible por máquina (por ejemplo `unknown_series`, `endpoint_not_found`); `hint` indica qué hacer a continuación. Las rutas `/api/*` desconocidas devuelven 404 con esta forma, nunca una página 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
}Directorio de endpoints en `/api`. OpenAPI 3.1 en `/openapi.json` (alias `/.well-known/openapi.json`), un catálogo de API RFC 9727 en `/.well-known/api-catalog` y `/llms.txt` como índice del sitio. Cada página también se sirve en Markdown: envíe `Accept: text/markdown` o añada `.md` a su ruta.