Compares two submitted sample sets feature by feature and returns deterministic drift metr
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.
3000 (raw units)
price
2
calls / 30d
2
unique payers
2026-09-14
updated
Provider
modell.halowerk.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "3000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"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"
}
}
}Use it
curl
curl "https://modell.halowerk.com/v1/drift-check" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://modell.halowerk.com/v1/drift-check");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://modell.halowerk.com/v1/drift-check")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/12451.json, and this resource appears in /discovery/resources and /discovery/search.