{
  "x402Version": 2,
  "id": 12451,
  "slug": "12451",
  "resource": "https://modell.halowerk.com/v1/drift-check",
  "description": "Compares two submitted sample sets feature by feature and returns deterministic drift metrics. Continuous features are binned on the combined value range and receive PSI, Jensen-Shannon divergence and a Kolmogorov-Smirnov statistic; categorical features receive PSI and Jensen-Shannon divergence over exact category labels. The response names every feature, its sample counts, the metric values, the threshold used, and the reason a feature was flagged.",
  "type": "http",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "3000",
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "bins": 5,
            "current_samples": {
              "risk_score": [
                0.14,
                0.19,
                0.23,
                0.32,
                0.4,
                0.44,
                0.48,
                0.52
              ],
              "segment": [
                "retail",
                "smb",
                "smb",
                "enterprise",
                "enterprise",
                "enterprise"
              ]
            },
            "feature_types": {
              "risk_score": "continuous",
              "segment": "categorical"
            },
            "reference_samples": {
              "risk_score": [
                0.12,
                0.18,
                0.2,
                0.21,
                0.25,
                0.28,
                0.31,
                0.34
              ],
              "segment": [
                "retail",
                "retail",
                "smb",
                "smb",
                "enterprise",
                "retail"
              ]
            },
            "threshold": 0.2
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "drift_detected": true,
            "features": [
              {
                "drift": true,
                "feature": "risk_score",
                "jensen_shannon": 0.189,
                "ks": 0.5,
                "psi": 0.612345,
                "type": "continuous"
              }
            ],
            "summary": {
              "features_checked": 2,
              "flagged_features": 1,
              "threshold": 0.2
            }
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "additionalProperties": false,
                "properties": {
                  "bins": {
                    "default": 10,
                    "description": "Number of equal-width bins for continuous features.",
                    "maximum": 50,
                    "minimum": 2,
                    "type": "integer"
                  },
                  "current_samples": {
                    "additionalProperties": {
                      "items": {
                        "type": [
                          "number",
                          "string",
                          "boolean"
                        ]
                      },
                      "maxItems": 10000,
                      "minItems": 2,
                      "type": "array"
                    },
                    "description": "Current samples keyed by the same feature names as reference_samples.",
                    "maxProperties": 50,
                    "minProperties": 1,
                    "type": "object"
                  },
                  "feature_types": {
                    "additionalProperties": {
                      "enum": [
                        "continuous",
                        "categorical"
                      ],
                      "type": "string"
                    },
                    "description": "Optional explicit feature types keyed by feature name.",
                    "maxProperties": 50,
                    "type": "object"
                  },
                  "reference_samples": {
                    "additionalProperties": {
                      "items": {
                        "type": [
                          "number",
                          "string",
                          "boolean"
                        ]
                      },
                      "maxItems": 10000,
                      "minItems": 2,
                      "type": "array"
                    },
                    "description": "Baseline samples keyed by feature name. Each value is an array of finite numbers for continuous features or scalar category labels for categorical features.",
                    "maxProperties": 50,
                    "minProperties": 1,
                    "type": "object"
                  },
                  "threshold": {
                    "default": 0.2,
                    "description": "Drift threshold applied to PSI for the final feature flag.",
                    "maximum": 1,
                    "minimum": 0.01,
                    "type": "number"
                  }
                },
                "required": [
                  "reference_samples",
                  "current_samples"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST",
                  "PUT",
                  "PATCH"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "bazaar"
  ],
  "sourceHost": "modell.halowerk.com",
  "lastUpdated": "2026-09-14T19:56:31.869Z",
  "quality": {
    "calls30d": 2,
    "uniquePayers30d": 2,
    "lastCalledAt": "2026-09-14T19:56:31.418Z"
  },
  "liveness": {},
  "verified": false,
  "featured": false,
  "provider": {
    "host": "modell.halowerk.com",
    "manifest_name": "modell.halowerk.com",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-09-18T22:00:31.484Z"
  }
}