api.dripmetrics.ai
DripMetricsAI (api description at https://dripmetrics.ai/) provides on-demand market microstructure and risk metrics for agents and developers. Agents can pay per request via x402 and receive structured JSON metrics without subscriptions or API keys. VPIN measures volume-synchronized order-flow imbalance (an adverse-selection proxy, not a probability); see excessVpin. Discovery examples use the latest 30m window.
Offering
- Provider
- api.dripmetrics.ai
- Method
- GET
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Financial Analysis
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://api.dripmetrics.ai/metrics/vpin- MIME type
- application/json
- First seen
- 2026-10-16T01:51:40.954Z
- Last seen
- Tags
- None supplied
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.05 USDC
Atomic price: 50000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 2
- 0.05 USDC
Atomic price: 50000 · Network: eip155:4663 · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "50000",
"payTo": "0xc9b70D8d342609437bc87Ec3C877911a306d3e6A"
},
{
"scheme": "exact",
"network": "eip155:4663",
"asset": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
"amount": "50000",
"payTo": "0xc9b70D8d342609437bc87Ec3C877911a306d3e6A"
}
]Observed health
- Status
- Healthy
- Latest latency
- 1350 ms
- Average latency
- 1799 ms
- HTTP status
- 402
- Last checked
- Reachability
- 100% over 14 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"enum": [
"GET"
]
},
"queryParams": {
"type": "object",
"properties": {
"pair": {
"type": "string",
"description": "Exchange-native trading pair symbol such as BTCUSDT, ETH-USD, BTC, or xyz:TSLA."
},
"exchange": {
"type": "string",
"enum": [
"binance",
"coinbase",
"hyperliquid"
],
"description": "Exchange adapter to source recent trades from."
},
"window": {
"type": "string",
"enum": [
"30m",
"1h",
"2h",
"3h"
],
"description": "Lookback window. Hyperliquid supports 30m and 1h; 2h and 3h are currently BTCUSDT/BTC-USD only."
}
},
"required": [
"pair",
"exchange",
"window"
],
"additionalProperties": false
}
},
"required": [
"type",
"method"
],
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"metric": {
"type": "string"
},
"pair": {
"type": "string"
},
"exchange": {
"type": "string",
"enum": [
"binance",
"coinbase",
"hyperliquid"
]
},
"window": {
"type": "string",
"enum": [
"30m",
"1h",
"2h",
"3h"
]
},
"value": {
"type": "number"
},
"components": {
"type": "object",
"properties": {
"buckets": {
"type": "integer"
},
"bucketSize": {
"type": "number"
},
"meanImbalance": {
"type": "number"
},
"totalVolume": {
"type": "number"
},
"tradeCount": {
"type": "integer"
},
"minimumTradeCount": {
"type": "integer"
},
"sourceObservationCount": {
"type": "integer"
},
"flowUnitCount": {
"type": "integer"
},
"minimumFlowUnitCount": {
"type": "integer"
},
"collapsedSourceObservationCount": {
"type": "integer"
},
"observationUnit": {
"type": "string",
"description": "Observation unit used by the finite-sample null estimator."
},
"nullMethodologyVersion": {
"type": "string"
},
"flowUnitInference": {
"type": "string"
},
"methodologyStatus": {
"type": "string"
},
"targetBuckets": {
"type": "integer"
},
"buyTrades": {
"type": "integer"
},
"sellTrades": {
"type": "integer"
},
"buyFlowUnits": {
"type": "integer"
},
"sellFlowUnits": {
"type": "integer"
},
"buyVolume": {
"type": "number"
},
"sellVolume": {
"type": "number"
},
"oneSidedBuckets": {
"type": "integer"
},
"minimumTradeContributionsPerBucket": {
"type": "integer",
"description": "Minimum source-trade observations contributing to any completed bucket."
},
"meanTradeContributionsPerBucket": {
"type": "number",
"description": "Mean source-trade observations contributing per completed bucket."
},
"minimumFlowUnitContributionsPerBucket": {
"type": "integer",
"description": "Minimum null-estimator flow units contributing to any completed bucket."
},
"meanFlowUnitContributionsPerBucket": {
"type": "number",
"description": "Mean null-estimator flow units contributing per completed bucket."
},
"estimatedNullVpin": {
"type": "number",
"description": "Approximate finite-sample VPIN baseline under independent, equally likely buy/sell signs, using the disclosed observationUnit. This is not an exact chance threshold."
},
"excessVpin": {
"type": "number",
"description": "Raw VPIN minus estimatedNullVpin; this signed value is not clamped at zero. It is sensitive to the disclosed observation unit and methodology, is not comparable across differing observationUnit or nullMethodologyVersion values, and is not evidence of informed trading by itself."
}
},
"required": [
"buckets",
"bucketSize",
"meanImbalance",
"totalVolume",
"tradeCount",
"minimumTradeCount",
"sourceObservationCount",
"flowUnitCount",
"minimumFlowUnitCount",
"collapsedSourceObservationCount",
"observationUnit",
"nullMethodologyVersion",
"flowUnitInference",
"methodologyStatus",
"targetBuckets",
"buyTrades",
"sellTrades",
"buyFlowUnits",
"sellFlowUnits",
"buyVolume",
"sellVolume",
"oneSidedBuckets",
"minimumTradeContributionsPerBucket",
"meanTradeContributionsPerBucket",
"minimumFlowUnitContributionsPerBucket",
"meanFlowUnitContributionsPerBucket",
"estimatedNullVpin",
"excessVpin"
],
"additionalProperties": false
},
"computedAt": {
"type": "string",
"format": "date-time"
},
"tradeCount": {
"type": "integer",
"minimum": 1
},
"firstTradeTime": {
"type": "string",
"format": "date-time"
},
"lastTradeTime": {
"type": "string",
"format": "date-time"
},
"coverage": {
"type": "object",
"properties": {
"requestedWindowMinutes": {
"type": "number",
"minimum": 0
},
"effectiveWindowMinutes": {
"type": "number",
"minimum": 0
},
"coverageRatio": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"partialData": {
"type": "boolean"
},
"completeFetch": {
"type": "boolean"
},
"errorMessage": {
"type": [
"string",
"null"
]
}
},
"required": [
"requestedWindowMinutes",
"effectiveWindowMinutes",
"coverageRatio",
"partialData",
"completeFetch",
"errorMessage"
],
"additionalProperties": false
},
"benchmarkCoverage": {
"type": "object",
"properties": {
"requestedWindowMinutes": {
"type": "number",
"minimum": 0
},
"effectiveWindowMinutes": {
"type": "number",
"minimum": 0
},
"coverageRatio": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"partialData": {
"type": "boolean"
},
"completeFetch": {
"type": "boolean"
},
"errorMessage": {
"type": [
"string",
"null"
]
}
},
"required": [
"requestedWindowMinutes",
"effectiveWindowMinutes",
"coverageRatio",
"partialData",
"completeFetch",
"errorMessage"
],
"additionalProperties": false
}
},
"required": [
"metric",
"pair",
"exchange",
"window",
"value",
"computedAt",
"tradeCount",
"firstTradeTime",
"lastTradeTime",
"coverage"
],
"additionalProperties": false
}
},
"required": [
"type"
]
}