On-demand metrics
Pull exchange metrics or Polymarket diagnostics only when you need them.
DripMetrics provides on-demand crypto market microstructure metrics and
prediction-market diagnostics for agentic or algorithmic workflows. Query
exchange markets under /metrics/*, portfolio risk under
/metrics/portfolio/var, Hyperliquid candle
metrics under /hyperliquid/*, Polymarket markets under
/polymarket/*, or on-chain metrics under
/metrics/onchain/*. Pay per request using x402 instead of buying a
full data platform subscription.
What You Get
Pull exchange metrics or Polymarket diagnostics only when you need them.
Responses are structured for agents, dashboards, and automation.
Pay for the exact metric calls you use instead of a platform seat.
Use public Polymarket trades and price history without standing up a stream.
Use public Hyperliquid candle snapshots for venue-specific volatility, momentum, and drawdown metrics.
Use public DefiLlama data for stablecoin flow, TVL, fee yield, and DEX efficiency signals.
Submit weighted or quantity-based crypto portfolios and receive VaR, expected shortfall, and component risk.
Support
Contact drip@dripmetrics.ai for support, questions, or product feedback.
If you paid for a metric that failed, email us and we will review it for a refund, including cases where the request targeted a nonexistent market or bad identifier.
Send ideas for new metrics, new venues, workflow improvements, and general API feedback.
Metrics
Volume-synchronized probability of informed trading.
Price impact per unit of signed order flow.
Asset beta versus the exchange benchmark BTC pair.
Concentration of signed order flow across short intervals.
Annualized realized volatility from log returns.
Cumulative signed trade volume.
Net buy versus sell volume as a normalized imbalance.
Net signed notional traded over the window.
Trade arrival rate over the observed window.
Mean trade size over the observed window.
Share of activity attributable to the largest trades in the window.
Non-annualized realized volatility from intrawindow returns.
Price move per unit of traded dollar volume.
Volume-weighted average price.
Distance between the latest trade price and VWAP.
Window return from first observed price to last observed price.
Signed opposite of the window return.
Maximum peak-to-trough loss observed within the window.
Volatility computed from only negative intrawindow returns.
Correlation of returns versus the exchange benchmark BTC pair.
Variability of short rolling volatility within the window.
Absolute Roll spread proxy inferred from lagged price-change covariance.
Hyperliquid
Annualized realized volatility from 1-minute Hyperliquid candle closes.
Non-annualized realized volatility from 1-minute Hyperliquid candle closes.
Window return from first candle open to last candle close.
Maximum peak-to-trough close loss within the candle path.
Signed opposite of Hyperliquid momentum.
Downside-only volatility from negative 1-minute candle returns.
Variability of short rolling realized volatility within the candle window.
Return sensitivity versus a benchmark market, defaulting to xyz:SP500.
Hyperliquid phase 1 uses public 1m candle snapshots and now
checks that a finite candle-derived metric can be served before x402 payment.
Invalid markets or empty candle responses return before payment. Use
pair as the preferred query parameter; coin is accepted
as a compatibility alias. HIP-3 or dex-prefixed markets can require identifiers
such as xyz:SPCX. beta compares the target against
a benchmark such as xyz:SP500 using overlapping 1-minute candles.
Trade-flow metrics such as cvd,
vwap, vpin, and kyle-lambda are not
currently exposed for Hyperliquid on this branch.
On-chain
Chain-level stablecoin supply growth or contraction.
Chain or protocol TVL growth momentum, with native-token-adjusted fields for chain requests.
Annualized protocol fees relative to average protocol TVL.
Annualized DEX volume turnover relative to average TVL.
On-chain endpoints use DefiLlama as the only v1 source. DripMetrics validates
query parameters and checks that a finite metric can be computed before x402
payment is requested. Invalid requests return 400; insufficient
DefiLlama history returns 422 metric_not_computable.
Portfolio Risk
Portfolio VaR is a POST /metrics/portfolio/var endpoint with a
JSON body. DripMetrics validates the portfolio, fetches and aligns daily
price history, checks data sufficiency, and computes the full response before
requesting x402 payment. Invalid inputs, unsupported assets, price-fetch
failures, or insufficient history return before payment.
Prediction Markets
VPIN-style flow toxicity using equal-notional buckets of inferred YES/NO pressure.
Kyle's Lambda-style price impact per unit of signed notional flow for a selected YES or NO outcome.
Normalized YES-versus-NO trade pressure over the requested window.
How balanced YES-versus-NO trading is over the requested window.
How concentrated recent Polymarket volume is across wallets.
Share of recent flow from wallets not seen in earlier API-visible trades for the same market.
Recent probability move scaled by recent realized volatility.
Information leakage / pre-news movement around an explicit or inferred event anchor.
Polymarket endpoints pull public trades and price history per request. They
check that a numeric diagnostic can be served before x402 payment is requested.
Trade-based endpoints accept slug or conditionId.
Price-based endpoints accept tokenId/assetId or
slug + outcome. Event slugs are supported; if an event contains
multiple markets, add conditionId to disambiguate. In practice,
many Polymarket requests work best when you supply both
slug and conditionId.
Coverage
/hyperliquid/*/polymarket/* using public trades and price history/metrics/onchain/*/metrics/portfolio/varEndpoints
GET /GET /healthGET /catalogGET /metrics/:metricNameGET /metrics/onchain/:metricNamePOST /metrics/portfolio/varGET /hyperliquid/:metricNameGET /polymarket/:metricNameExamples
curl "https://api.dripmetrics.ai/catalog"
curl "https://api.dripmetrics.ai/metrics/kyle-lambda?pair=SOL-USD"
curl "https://api.dripmetrics.ai/metrics/roll-spread?exchange=coinbase&pair=ETH-USD"
curl "https://api.dripmetrics.ai/metrics/vpin?pair=BTCUSDT&window=2h"
curl "https://api.dripmetrics.ai/hyperliquid/historical-volatility?pair=BTC&window=30m"
curl "https://api.dripmetrics.ai/hyperliquid/momentum?coin=ETH&window=1h"
curl "https://api.dripmetrics.ai/hyperliquid/realized-vol?pair=HYPE&window=30m"
curl "https://api.dripmetrics.ai/hyperliquid/reversal?pair=SOL&window=30m"
curl "https://api.dripmetrics.ai/hyperliquid/drawdown?pair=BTC&window=1h"
curl "https://api.dripmetrics.ai/hyperliquid/downside-semivolatility?pair=ETH&window=1h"
curl "https://api.dripmetrics.ai/hyperliquid/vol-of-vol?pair=HYPE&window=30m"
curl "https://api.dripmetrics.ai/hyperliquid/momentum?coin=xyz:SPCX&window=1h"
curl "https://api.dripmetrics.ai/hyperliquid/beta?coin=xyz:SPCX&benchmark=xyz:SP500&window=1h"
curl "https://api.dripmetrics.ai/metrics/onchain/stablecoin-flow?chain=base&window=7d"
curl "https://api.dripmetrics.ai/metrics/onchain/tvl-momentum?chain=base&window=30d"
curl "https://api.dripmetrics.ai/metrics/onchain/protocol-fee-yield?protocol=uniswap&window=30d"
curl "https://api.dripmetrics.ai/metrics/onchain/dex-efficiency?protocol=uniswap&window=30d"
curl -X POST "https://api.dripmetrics.ai/metrics/portfolio/var" \
-H "Content-Type: application/json" \
-d '{
"assets": ["BTC", "ETH", "SOL"],
"weights": [0.5, 0.3, 0.2],
"portfolioValueUsd": 100000,
"window": "180d",
"confidence": 0.95,
"horizon": "1d",
"methods": "both"
}'
curl -X POST "https://api.dripmetrics.ai/metrics/portfolio/var" \
-H "Content-Type: application/json" \
-d '{
"assets": ["BTC", "ETH"],
"quantities": [0.75, 8],
"window": "180d",
"confidence": 0.99,
"horizon": "1d",
"methods": "both"
}'
curl -X POST "https://api.dripmetrics.ai/metrics/portfolio/var" \
-H "Content-Type: application/json" \
-d '{
"assets": ["BTC", "ETH", "SOL"],
"weights": [0.5, 0.3, 0.2],
"portfolioValueUsd": 100000,
"window": "180d",
"confidence": 0.95,
"horizon": "7d",
"methods": "both"
}'
curl "https://api.dripmetrics.ai/polymarket/vpin?slug=fed-decision-in-october&windowMinutes=60&limit=500"
curl "https://api.dripmetrics.ai/polymarket/kyle-lambda?slug=fed-decision-in-october&outcome=YES&windowMinutes=60&limit=500"
curl "https://api.dripmetrics.ai/polymarket/flow-imbalance?slug=fed-decision-in-october&windowMinutes=60&limit=500"
curl "https://api.dripmetrics.ai/polymarket/probability-shock?slug=fed-decision-in-october&outcome=YES&windowMinutes=60&lookbackMinutes=1440"
curl "https://api.dripmetrics.ai/polymarket/leakage-score?slug=fed-decision-in-october&outcome=YES&windowMinutes=60&limit=1000"
Paid endpoints are intended for an x402-aware client that can
satisfy payment requirements and retry with the required payment headers.
Hyperliquid examples expect Hyperliquid coin naming such as BTC
for perps and xyz:SPCX-style names for some HIP-3 or dex-prefixed
markets. Use pair as the preferred argument name; coin
is accepted as an alias. Hyperliquid examples are candle-based only on this branch.
On-chain examples use DefiLlama identifiers such as base and
uniswap; unsupported or sparse DefiLlama history returns before
payment is requested.
Portfolio VaR examples use POST with JSON bodies. Use either
decimal weights plus portfolioValueUsd, or token
quantities. The API validates and computes the VaR response before
requesting payment.
Polymarket example markets may stop trading, resolve, or move over time, so
some sample URLs can go stale and require updated slugs, condition IDs, or
token IDs.
Response Format
Endpoints under /metrics/* share the same top-level JSON
shape. The only metric-specific part of the payload is
components. DripMetrics checks that a finite metric can be
served before requesting x402 payment.
metricMetric name requested, such as vpin or vwap.
pairTrading pair used in the query, such as BTC-USD.
exchangeExchange source for the trades used to compute the metric.
windowAggregation window used for the calculation. Exchange metrics support 30m and 1h; BTC cache-backed metrics also support 2h and 3h when enough live history is retained.
valueThe primary numeric output of the metric.
componentsMetric-specific breakdown fields that help explain or support value.
computedAtISO timestamp showing when the metric response was generated.
tradeCountTotal number of trades used in the computation window.
firstTradeTimeISO timestamp for the earliest trade included in the calculation.
lastTradeTimeISO timestamp for the latest trade included in the calculation.
coverageRequested versus effective trade-window coverage, including whether the exchange fetch was partial and whether the metric was served from a truncated sample.
{
"metric": "vpin",
"pair": "BTC-USD",
"exchange": "coinbase",
"window": "30m",
"value": 0.43218751,
"components": {
"exampleField": 123.45
},
"computedAt": "2026-05-08T14:30:00.000Z",
"tradeCount": 1842,
"firstTradeTime": "2026-05-08T14:00:01.000Z",
"lastTradeTime": "2026-05-08T14:29:59.000Z",
"coverage": {
"requestedWindowMinutes": 30,
"effectiveWindowMinutes": 30,
"coverageRatio": 1,
"partialData": false,
"completeFetch": true,
"errorMessage": null
}
}
This envelope applies to exchange metrics under /metrics/*. If the metric cannot be computed, no x402 payment is requested. If an exchange fetch fails after at least 50 trades have already been collected, DripMetrics serves the metric from that partial sample and reports the actual observed coverage here.
Hyperliquid and Polymarket routes use separate response structures.
Response Format
Endpoints under /hyperliquid/* return a venue-specific JSON
envelope built around the requested market, window, sample size,
upstream source, and observed candle bounds.
metricRequested Hyperliquid metric name.
pairHyperliquid market identifier, such as BTC for a perp.
benchmarkOptional benchmark market identifier returned by hyperliquid/beta.
windowRequested lookback window, currently 30m or 1h.
intervalUnderlying candle interval, currently fixed at 1m for candle-based phase 1 metrics.
valuePrimary numeric output for the selected metric.
componentsMetric-specific breakdown fields such as interval counts, returns, or rolling-window diagnostics.
sampleSizeNumber of candles used for the computation.
sourceUpstream Hyperliquid endpoint used for the response.
firstCandleTime / lastCandleTimeObserved bounds of the candle sample used for the response.
{
"metric": "momentum",
"pair": "xyz:SPCX",
"window": "30m",
"interval": "1m",
"value": 0.004183,
"components": {
"simpleReturn": 0.004192,
"firstPrice": 162.71,
"lastPrice": 163.39
},
"sampleSize": {
"candles": 30
},
"source": {
"candles": "https://api.hyperliquid.xyz/info"
},
"computedAt": "2026-06-11T00:00:00.000Z",
"firstCandleTime": "2026-06-10T23:30:00.000Z",
"lastCandleTime": "2026-06-10T23:59:59.999Z"
}
Hyperliquid metrics on this branch are computed from public candle snapshots per request with a free preflight before x402 payment. They do not use a persistent cache or a background stream.
Response Format
Endpoints under /polymarket/* return a venue-specific JSON
envelope built around market identifiers, request window metadata,
sample sizes, and upstream data sources. DripMetrics returns
422 metric_not_computable before payment when the required
public data cannot produce a numeric diagnostic.
metricPolymarket diagnostic name, such as vpin, kyle-lambda, or leakage-score.
conditionIdPolymarket condition id for the market when the request is tied to a specific market contract.
slugHuman-readable Polymarket market or event slug when the request used slug-based resolution.
tokenId / assetIdPolymarket token identifier used for price-history-based diagnostics.
outcomeSelected token side for token-aware Polymarket diagnostics, currently YES or NO.
windowRequest window metadata including windowMinutes and, when relevant, startTs, endTs, lookbackMinutes, or newsTs.
valueThe primary numeric output of the diagnostic.
componentsDiagnostic-specific breakdown fields such as YES/NO volume, wallet concentration, or pre-news movement.
sampleSizeCounts of trades, wallets, price points, and scanned trades used for the computation.
sourceUpstream Polymarket endpoints used for the response, such as public trades or price history.
computedAtISO timestamp showing when the response was generated.
{
"metric": "flow-imbalance",
"slug": "fed-decision-in-october",
"conditionId": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
"window": {
"windowMinutes": 60,
"startTs": 1700000000000,
"endTs": 1700003600000
},
"value": 0.134228,
"components": {
"imbalance": 0.134228,
"yesVolume": 84.5,
"noVolume": 64.5,
"totalVolume": 149,
"tradeCount": 4
},
"sampleSize": {
"trades": 4,
"scannedTrades": 4
},
"source": {
"market": "https://gamma-api.polymarket.com/markets/slug/fed-decision-in-october",
"trades": "https://data-api.polymarket.com/trades"
},
"computedAt": "2026-05-25T21:30:00.000Z"
}
Polymarket diagnostics are computed from public upstream data per request.
Missing price history, empty trade windows, or invalid token-side selections
return before x402 payment is requested.
If you use a slug for price-history-based endpoints, include
outcome=YES or outcome=NO.
Response Format
Endpoints under /metrics/onchain/* return a DefiLlama-derived
JSON envelope with the requested target, window, primary numeric value,
unit, and metric-specific components. Chain-level
tvl-momentum responses include native-token-adjusted TVL
fields when a native asset mapping is available. DripMetrics checks that the metric
is finite before requesting x402 payment.
metricRequested on-chain metric name, such as stablecoin-flow or dex-efficiency.
chainChain identifier for chain-level metrics, such as base.
protocolProtocol identifier for protocol-level metrics, such as uniswap.
targetType / targetUsed when a metric can be requested by either chain or protocol.
windowRequested lookback window, currently 1d, 7d, 30d, or 90d depending on the metric.
valuePrimary numeric output for the selected on-chain metric.
unitInterpretation of value, such as pct_change or annualized_turnover.
componentsMetric-specific DefiLlama-derived fields and observation counts.
{
"metric": "tvl-momentum",
"targetType": "chain",
"target": "base",
"window": "30d",
"value": 0.083,
"unit": "pct_change",
"components": {
"currentTvlUsd": 5200000000,
"startTvlUsd": 4801477378,
"netTvlChangeUsd": 398522622,
"pctChange": 0.083,
"annualizedTvlGrowthPct": 1.009833,
"momentum": "positive",
"observations": 31,
"nativeTvlAvailable": true,
"nativeCurrency": "ETH",
"currentNativePriceUsd": 3500,
"startNativePriceUsd": 3200,
"currentTvlNative": 1485714.285714,
"startTvlNative": 1500461.680625,
"nativeTvlMomentumPct": -0.009828,
"annualizedNativeTvlGrowthPct": -0.119574,
"source": "DefiLlama"
},
"computedAt": "2026-06-10T16:00:00.000Z"
}
On-chain endpoints do not use a database or background indexer in this v1 pass. They fetch public DefiLlama data per request and return before payment when the request is invalid or the available history cannot support the calculation.
Metric Components
Chain-level stablecoin supply growth or contraction from DefiLlama stablecoin supply history.
value is percentage change in stablecoin supply over the requested
window. Supported windows are 1d, 7d, 30d,
and 90d.
Chain or protocol TVL growth momentum from DefiLlama TVL history, with native-token-adjusted fields for chain requests.
Supply exactly one of chain or protocol.
value is USD-denominated percentage TVL change over the requested
window. For chain-level requests, components.nativeTvlMomentumPct
adjusts TVL by the chain native token price, which helps separate actual
liquidity growth from native-token price movement.
Annualized protocol fees relative to average protocol TVL from DefiLlama fees and TVL history.
Supply protocol. value is annualized fee yield
over a 7d, 30d, or 90d window.
Annualized DEX volume turnover relative to average TVL from DefiLlama DEX volume and TVL history.
Supply exactly one of chain or protocol.
value is annualized turnover over a 7d,
30d, or 90d window.
Portfolio Value-at-Risk from daily historical closes, with empirical VaR, normal VaR, expected shortfall, and component risk.
Submit POST /metrics/portfolio/var with JSON. Use either
weights plus portfolioValueUsd, or token
quantities. Supported windows are 90d
and 180d. Empirical VaR is only available
for a 1d horizon; multi-day requests return normal VaR using
square-root-of-time scaling.
{
"value": {
"empiricalVaRUsd": 6200,
"empiricalVaRPct": 0.062,
"normalVaRUsd": 5100,
"normalVaRPct": 0.051
},
"components": {
"observations": 364,
"meanDailyReturn": 0.0011,
"dailyVolatility": 0.041,
"empiricalExpectedShortfallUsd": 8500,
"normalZScore": -1.64485,
"returnType": "log"
}
}
valuePrimary VaR outputs in USD and percentage terms. Fields that do not apply are omitted.
componentsObservation count, aligned date range, daily mean/volatility, z-score, price sources, and expected shortfall.
componentRiskNormal covariance approximation showing each asset’s contribution to total normal VaR.
priceSourceByAssetShows the Coinbase Exchange daily-candle source used for each asset in the portfolio.
Annualized realized volatility from 1-minute Hyperliquid candle closes.
Non-annualized realized volatility from 1-minute Hyperliquid candle closes.
Window return from first candle open to last candle close.
Signed opposite of Hyperliquid momentum.
Maximum peak-to-trough close loss within the candle path.
Downside-only volatility from negative 1-minute candle returns.
Variability of short rolling realized volatility within the candle window.
Return sensitivity versus a benchmark market from overlapping 1-minute Hyperliquid candles.
Supply pair or coin for the target market. Optional
benchmark defaults to xyz:SP500. The route preflights
both candle series and returns before payment if there are not enough overlapping
returns to compute a finite beta.
Volume-synchronized probability of informed trading.
value is the VPIN score for the requested window. Higher values
indicate more imbalanced buy and sell flow across equal-volume buckets,
which can suggest more informed or one-sided trading pressure.
Reference: Easley, López de Prado, and O’Hara (2012), who extended the logic behind PIN to Volume-Synchronized PIN (VPIN).
{
"components": {
"buckets": 20,
"bucketSize": 12.34,
"meanImbalance": 1.82,
"totalVolume": 617.0
}
}
bucketsNumber of equal-volume buckets that were fully formed for the VPIN calculation.
bucketSizeTarget base-asset volume allocated to each bucket.
meanImbalanceAverage absolute difference between buy volume and sell volume across buckets.
totalVolumeTotal traded base volume used to compute the VPIN window.
Price impact per unit of signed order flow.
value is Kyle’s lambda, estimated here as the slope of the
relationship between short-interval price changes and signed order flow.
Higher absolute values indicate greater price impact per unit of net flow
and therefore thinner liquidity.
Reference: Kyle (1985), which introduced lambda as a measure of market depth and price impact in continuous auctions.
{
"components": {
"alpha": 0.000001234567,
"rSquared": 0.381204,
"intervals": 29,
"meanSignedOrderFlow": 4.287351,
"lastPrice": 64218.55,
"dollarsPer1Bp": 97580.21,
"dollarsPer1Cent": 1524.88
}
}
alphaRegression intercept for the short-interval price-change model.
rSquaredGoodness-of-fit statistic indicating how much of the short-interval price variation is explained by signed order flow.
intervalsNumber of time bins included in the regression.
meanSignedOrderFlowAverage buy volume minus sell volume across the sampled intervals.
lastPriceLast observed trade price in the requested window.
dollarsPer1BpApproximate signed notional needed to move price by one basis point based on the estimated lambda.
dollarsPer1CentApproximate signed notional needed to move price by one cent based on the estimated lambda.
Asset beta versus the exchange benchmark BTC pair.
value is the asset’s beta relative to the benchmark pair on the
same exchange, computed from aligned short-interval returns. Values above
1 indicate the asset tends to move more than the benchmark, while
values below 1 indicate lower relative sensitivity.
{
"components": {
"correlation": 0.842311,
"intervals": 29
}
}
correlationCorrelation between the asset return series and the benchmark return series over the aligned intervals.
intervalsNumber of aligned time bins used to estimate beta.
Concentration of signed order flow across short intervals.
value is the Herfindahl-Hirschman Index of absolute signed order
flow across short time buckets. Higher values mean order flow is concentrated
in fewer bursts, while lower values mean order flow is distributed more evenly
across the window.
{
"components": {
"intervals": 30,
"nonZeroIntervals": 24,
"totalAbsoluteSignedFlow": 418.273901,
"effectiveIntervals": 7.612443,
"maxShare": 0.284117
}
}
intervalsTotal number of time bins considered in the concentration calculation.
nonZeroIntervalsNumber of intervals with non-zero absolute signed order flow.
totalAbsoluteSignedFlowSum of the absolute signed order flow across all intervals.
effectiveIntervalsConcentration-adjusted number of active intervals, calculated as 1 / HHI.
maxShareLargest single-interval share of total absolute signed order flow.
Annualized realized volatility from log returns.
value is the annualized standard deviation of short-interval log returns for the requested window.
{
"components": {
"intervalVolatility": 0.00128431,
"intervals": 29,
"intervalsPerYear": 525600
}
}
intervalVolatilityStandard deviation of the unannualized interval return series.
intervalsNumber of return observations used in the estimate.
intervalsPerYearAnnualization factor implied by the interval size.
Cumulative signed trade volume.
value is net signed base volume over the window, with buys counted positively and sells negatively.
{
"components": {
"buyVolume": 412.81,
"sellVolume": 388.22,
"netDollarVolume": 1562404.55
}
}
buyVolumeTotal base volume classified as buyer-initiated.
sellVolumeTotal base volume classified as seller-initiated.
netDollarVolumeSigned notional traded over the window.
Net buy versus sell volume as a normalized imbalance.
value is normalized net flow, computed as buy volume minus sell volume divided by total volume.
{
"components": {
"buyVolume": 412.81,
"sellVolume": 388.22,
"totalVolume": 801.03
}
}
buyVolumeTotal buyer-initiated base volume.
sellVolumeTotal seller-initiated base volume.
totalVolumeTotal traded base volume used for normalization.
Net signed notional traded over the window.
value is signed dollar flow across the window, where positive values indicate buy-side notional dominance.
{
"components": {
"totalDollarVolume": 3248801.22,
"normalizedImbalance": 0.04127319
}
}
totalDollarVolumeTotal unsigned traded notional across the window.
normalizedImbalanceSigned dollar volume divided by total dollar volume.
Trade arrival rate over the observed window.
value is trades per minute based on the observed elapsed time between the first and last trade.
{
"components": {
"tradeCount": 1842,
"tradesPerSecond": 1.0214,
"windowSeconds": 1802.4,
"meanIntertradeSeconds": 0.9789
}
}
tradeCountTotal trades used in the estimate.
tradesPerSecondObserved trade arrival rate per second.
windowSecondsElapsed seconds between first and last trade.
meanIntertradeSecondsAverage gap between consecutive trades.
Mean trade size over the observed window.
value is mean base-asset size per trade across the window.
{
"components": {
"averageDollarSize": 1763.41,
"tradeCount": 1842
}
}
averageDollarSizeMean notional size per trade.
tradeCountTotal number of trades in the window.
Share of activity attributable to the largest trades in the window.
value is the share of dollar volume contributed by trades at or above the 90th percentile of trade notional.
{
"components": {
"thresholdDollarSize": 9821.44,
"largeTradeCount": 183,
"totalTradeCount": 1842,
"largeVolumeShare": 0.41421873
}
}
thresholdDollarSizeDollar-size cutoff used to define a large trade.
largeTradeCountNumber of trades at or above the threshold.
totalTradeCountTotal trades observed in the window.
largeVolumeShareShare of base volume attributable to large trades.
Non-annualized realized volatility from intrawindow returns.
value is non-annualized realized volatility, computed as the square root of summed squared interval returns.
{
"components": {
"realizedVariance": 0.0001842314,
"intervals": 29
}
}
realizedVarianceSum of squared interval log returns before taking the square root.
intervalsNumber of interval returns used in the calculation.
Price move per unit of traded dollar volume.
value is the average ratio of absolute return to dollar volume across short intervals. Higher values indicate lower liquidity.
{
"components": {
"intervals": 28
}
}
intervalsNumber of valid intervals contributing to the average illiquidity estimate.
Volume-weighted average price.
value is the volume-weighted average execution price across all trades in the window.
{
"components": {
"totalVolume": 801.03,
"totalDollarVolume": 3248801.22
}
}
totalVolumeTotal traded base volume in the window.
totalDollarVolumeTotal traded notional used to compute VWAP.
Distance between the latest trade price and VWAP.
value is the relative deviation of the last observed trade price from the window VWAP.
{
"components": {
"vwap": 64212.88,
"lastPrice": 64218.55,
"basisPoints": 0.8831
}
}
vwapWindow VWAP used as the comparison baseline.
lastPriceLatest trade price in the window.
basisPointsDeviation from VWAP expressed in basis points.
Window return from first observed price to last observed price.
value is the log return from the first price in the window to the last price.
{
"components": {
"simpleReturn": 0.01248173,
"firstPrice": 63426.44,
"lastPrice": 64218.55
}
}
simpleReturnSame move expressed as simple return instead of log return.
firstPriceFirst observed trade price in the window.
lastPriceLast observed trade price in the window.
Signed opposite of the window return.
value is the negative of window momentum, useful when a mean-reversion framing is preferred.
{
"components": {
"momentum": 0.01240445,
"simpleReversal": -0.01248173
}
}
momentumUnderlying log-return momentum before sign inversion.
simpleReversalNegative simple return over the same window.
Maximum peak-to-trough loss observed within the window.
value is the largest percentage drop from a running peak price to a subsequent trough inside the window.
{
"components": {
"peakPrice": 64502.11,
"troughPrice": 63874.92
}
}
peakPriceHighest price observed before the maximum drawdown event.
troughPriceLowest price reached during that drawdown.
Volatility computed from only negative intrawindow returns.
value is the square root of average squared negative returns only, isolating downside variation.
{
"components": {
"intervals": 29,
"downsideIntervals": 11
}
}
intervalsTotal interval returns observed in the window.
downsideIntervalsCount of intervals with negative returns.
Correlation of returns versus the exchange benchmark BTC pair.
value is correlation between the asset return series and the benchmark return series over aligned intervals.
{
"components": {
"intervals": 29
}
}
intervalsNumber of aligned return intervals used in the correlation estimate.
Variability of short rolling volatility within the window.
value measures how unstable realized volatility is across overlapping rolling subwindows.
{
"components": {
"rollingWindow": 5,
"observations": 25,
"meanRollingVol": 0.00841233
}
}
rollingWindowNumber of interval returns in each rolling volatility estimate.
observationsTotal rolling volatility observations produced.
meanRollingVolAverage of the rolling volatility estimates before dispersion is computed.
Absolute Roll spread proxy inferred from lagged price-change covariance.
value is the absolute Roll spread proxy, computed as 2 * sqrt(abs(covariance)). The response reports mode: "absolute" because positive covariance is treated as an absolute spread proxy rather than a strict Roll estimator.
{
"components": {
"covariance": 2.583251,
"absoluteCovariance": 2.583251,
"intervals": 30,
"observations": 28,
"mode": "absolute",
"strictRollDefined": false,
"interpretation": "absolute_covariance_proxy"
}
}
covarianceLagged covariance of successive interval price changes.
absoluteCovarianceAbsolute value of the lagged covariance used for the default spread proxy.
intervalsNumber of interval summaries built from the trade stream.
observationsNumber of lagged price-change pairs used in the estimate.
modeEstimator mode. The current default is absolute.
strictRollDefinedWhether the covariance was negative, which is the strict Roll-model condition.
interpretationLabels the result as an absolute covariance proxy.
VPIN-style flow toxicity using equal-notional buckets of inferred YES/NO pressure.
value measures how persistently one-sided inferred YES/NO
pressure is after the requested flow is divided into equal-notional
buckets. Higher values imply more toxic or imbalanced flow.
{
"components": {
"vpin": 0.92349,
"buckets": 10,
"configuredBuckets": 10,
"bucketSize": 14.9,
"meanImbalance": 13.76,
"totalVolume": 149
}
}
vpinVPIN-style score computed from equal-notional buckets of inferred YES/NO pressure.
bucketsNumber of complete notional buckets used in the estimate.
configuredBucketsTarget bucket count used to size each equal-notional bucket.
bucketSizeNotional allocated to each bucket.
meanImbalanceAverage absolute YES-versus-NO imbalance across the completed buckets.
totalVolumeTotal qualifying notional used to build the bucketed flow series.
Kyle's Lambda-style price impact per unit of signed notional flow for a selected YES or NO outcome.
value estimates how strongly short-horizon price changes in the
selected Polymarket token respond to signed notional flow for that same
outcome side. Larger magnitudes imply more price impact per unit of flow.
{
"components": {
"lambda": 0.00169347,
"alpha": -0.01128977,
"rSquared": 0.997935,
"intervals": 3,
"meanSignedFlow": 6.666667,
"totalAbsoluteFlow": 29,
"selectedOutcome": "YES",
"lastPrice": 0.5
}
}
lambdaEstimated price impact per unit of signed notional flow for the selected outcome.
alphaIntercept term from the interval return versus signed-flow regression.
rSquaredExplained variance of interval returns under the fitted regression.
intervalsNumber of interval observations used in the estimate.
meanSignedFlowAverage signed notional flow per interval for the selected outcome.
totalAbsoluteFlowTotal absolute signed notional across the regression intervals.
selectedOutcomeOutcome side used to interpret signed flow and choose the token price series.
lastPriceLast observed price in the selected token series.
Normalized YES-versus-NO trade pressure over the requested window.
value is normalized net trading pressure for a Polymarket market.
Positive values indicate more YES-side pressure, while negative values
indicate more NO-side pressure.
{
"components": {
"imbalance": 0.134228,
"yesVolume": 84.5,
"noVolume": 64.5,
"totalVolume": 149,
"tradeCount": 4
}
}
imbalanceNormalized net pressure, computed from YES notional minus NO notional divided by total notional.
yesVolumeTotal YES-side notional counted toward the requested window.
noVolumeTotal NO-side notional counted toward the requested window.
totalVolumeTotal notional used to normalize the imbalance.
tradeCountTrades contributing usable pressure to the calculation.
How balanced YES-versus-NO trading is over the requested window.
value is highest when YES and NO flow are balanced and falls
toward zero as one side dominates the market.
{
"components": {
"twoSidedness": 0.865772,
"yesVolume": 84.5,
"noVolume": 64.5,
"dominantOutcome": "YES"
}
}
twoSidednessBalance score derived from the absolute gap between YES and NO notional.
yesVolumeTotal YES-side notional in the window.
noVolumeTotal NO-side notional in the window.
dominantOutcomeOutcome with larger observed notional during the requested window.
How concentrated recent Polymarket volume is across wallets.
value is an HHI-style concentration score over wallet notional
shares. Higher values mean a smaller set of wallets dominates recent flow.
{
"components": {
"totalVolume": 149,
"hhi": 0.45856,
"top1Share": 0.620805,
"top5Share": 1,
"uniqueWallets": 3
}
}
totalVolumeTotal notional summed across wallets.
hhiHerfindahl-Hirschman style concentration of wallet notional shares.
top1ShareLargest single-wallet share of total notional.
top5ShareCombined share of the five largest wallets in the sample.
uniqueWalletsDistinct wallets observed in the current request window.
Share of recent flow from wallets not seen in earlier API-visible trades for the same market.
value measures how much current flow comes from wallets that do
not appear in the earlier API-visible lookback for the same market. This is
request-bounded novelty, not full lifetime novelty.
{
"components": {
"noveltyShare": 0.379195,
"novelWalletCount": 2,
"totalWalletCount": 3,
"novelVolume": 56.5,
"totalVolume": 149
}
}
noveltyShareShare of current-window notional attributable to wallets not seen in the earlier API-visible lookback.
novelWalletCountWallets present in the current window but absent from the earlier sampled history.
totalWalletCountTotal distinct wallets observed in the current window.
novelVolumeNotional attributed to newly observed wallets.
totalVolumeTotal current-window notional used to compute novelty share.
Recent probability move scaled by recent realized volatility.
value is a z-style shock score that compares the recent price
move in a selected YES or NO token against recent realized volatility in
that same token.
{
"components": {
"currentPrice": 0.65,
"priorPrice": 0.55,
"delta": 0.1,
"realizedVol": 0.043589,
"shockZ": 2.294157
}
}
currentPriceLatest observed price in the chosen token side.
priorPriceObserved price nearest the start of the requested shock window.
deltaRaw price change over the requested window.
realizedVolStandard deviation of recent price differences over the lookback window.
shockZPrice move normalized by recent realized volatility.
Information leakage / pre-news movement around an explicit or inferred event anchor.
value measures how much of the total event-window move occurred
before the effective event anchor. If newsTs is omitted, the
endpoint uses the midpoint of the effective analysis window, so a default
request scores the most recent hour. It is an information leakage /
pre-news movement score, not an accusation of insider trading.
{
"components": {
"leakageScore": 0.5,
"preMove": 0.1,
"totalMove": 0.2,
"preNewsVolumeShare": 0.384181,
"preWindowVolume": 34,
"postWindowVolume": 54.5
}
}
leakageScoreShare of the full event-window move that was already in place by the explicit or inferred event anchor.
preMovePrice move observed before the explicit or inferred event anchor.
totalMoveTotal price move across the full pre/post event window.
preNewsVolumeShareShare of combined event-window notional that traded before the explicit or inferred event anchor.
preWindowVolumeTotal notional traded in the pre-news window.
postWindowVolumeTotal notional traded in the post-news window.