Api Endpoint

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.

Open interactive test console

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"
  ]
}