OFAC exposure forecast
Forecast future OFAC wallet exposure for a wallet set using stored OFAC snapshot diffs when available, listedOn backfill when honest, or an explicit caller prior. Returns current exact-match baseline, metadata-weighted per-wallet risk, model limitations, and a report-shaped payload for audit handoff.
Browser note: GET on this URL serves human-readable docs. Paid execution still requires POST with x402 settlement.
Returns the history basis, target probability, per-wallet exposure rows, sensitivity table, and model limitations for compliance triage.
Example request body
Use this payload shape for the paid POST call.
{
"addresses": [
"0x1111111111111111111111111111111111111111",
"0x2222222222222222222222222222222222222222"
],
"address_metadata": [
{
"address": "0x1111111111111111111111111111111111111111",
"exposure_usd": 250000,
"relationship_tier": "critical",
"last_activity_days": 4,
"transaction_count_30d": 22,
"policy_priority": 8
},
{
"address": "0x2222222222222222222222222222222222222222",
"exposure_usd": 1000,
"relationship_tier": "low"
}
],
"horizon_days": 90,
"iterations": 30000,
"target": {
"operator": ">=",
"k": 1
},
"priors": {
"list_add_rate_override_per_day": 0.25
}
}Request schema
The canonical body contract as exposed through discovery and OpenAPI.
{
"type": "object",
"properties": {
"addresses": {
"type": "array",
"description": "Wallet addresses to forecast for future OFAC exact-match exposure.",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 500
},
"address_metadata": {
"type": "array",
"description": "Optional per-address business metadata used to weight exposure hazard.",
"items": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Wallet address this metadata row describes."
},
"exposure_usd": {
"type": "number",
"description": "Dollar exposure associated with this wallet."
},
"relationship_tier": {
"type": "string",
"description": "Relationship risk tier for this wallet.",
"enum": [
"low",
"standard",
"high",
"critical"
]
},
"last_activity_days": {
"type": "number",
"description": "Days since the wallet was last active."
},
"transaction_count_30d": {
"type": "number",
"description": "Transaction count over the trailing 30 days."
},
"policy_priority": {
"type": "number",
"description": "Optional internal policy priority from 0 to 10."
}
},
"required": [
"address"
],
"additionalProperties": false
}
},
"asset": {
"type": "string",
"description": "Optional asset or network ticker filter, such as ETH, USDC, XBT, TRX, ARB, or BSC."
},
"horizon_days": {
"type": "integer",
"description": "Forecast horizon in days. Values are bounded to 7 through 365."
},
"iterations": {
"type": "integer",
"description": "Forecast trial count. Values are bounded to 1000 through 100000."
},
"target": {
"type": "object",
"description": "Target event for the forecast probability.",
"properties": {
"operator": {
"type": "string",
"enum": [
">=",
">",
"==",
"<=",
"<"
]
},
"k": {
"type": "integer",
"description": "Target count threshold."
}
},
"required": [
"operator",
"k"
],
"additionalProperties": false
},
"tier_weights": {
"type": "object",
"description": "Optional overrides for low, standard, high, and critical relationship tier weights.",
"additionalProperties": {
"type": "number"
}
},
"priors": {
"type": "object",
"description": "Explicit prior assumptions used only when the caller wants to override the OFAC history cadence.",
"properties": {
"list_add_rate_override_per_day": {
"type": "number",
"description": "Caller-supplied expected OFAC digital-currency address additions per day."
}
},
"additionalProperties": false
},
"title": {
"type": "string",
"description": "Optional report title."
},
"summary_focus": {
"type": "string",
"description": "Optional summary focus for the report."
}
},
"required": [
"addresses"
],
"additionalProperties": false
}Example response
A representative output payload for the route.
{
"success": true,
"data": {
"summary": {
"target_probability": 0.12,
"p50_expected_hits": 0,
"p90_expected_hits": 1,
"metadata_coverage_percent": 100
},
"forecast_model": {
"history_basis": "snapshot_diff",
"model_confidence": "standard"
}
},
"report": {
"report_meta": {
"report_type": "compliance-exposure-forecast"
},
"headline_metrics": [],
"tables": {
"per_wallet_exposure": {
"columns": [
"address",
"screening_status",
"future_hit_probability"
],
"rows": []
}
}
},
"source": "OFAC SDN Advanced XML"
}cURL
Use this as the starting point for HTTP execution after the initial 402 challenge.
curl -X POST "https://api.aurelianflo.com/api/workflows/compliance/exposure-forecast" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
# include x402 settlement headers after the initial 402 challenge \
-d '{
"addresses": [
"0x1111111111111111111111111111111111111111",
"0x2222222222222222222222222222222222222222"
],
"address_metadata": [
{
"address": "0x1111111111111111111111111111111111111111",
"exposure_usd": 250000,
"relationship_tier": "critical",
"last_activity_days": 4,
"transaction_count_30d": 22,
"policy_priority": 8
},
{
"address": "0x2222222222222222222222222222222222222222",
"exposure_usd": 1000,
"relationship_tier": "low"
}
],
"horizon_days": 90,
"iterations": 30000,
"target": {
"operator": ">=",
"k": 1
},
"priors": {
"list_add_rate_override_per_day": 0.25
}
}'Related routes
Use these when you want the lower-level primitive, the buyer-facing memo workflow, or the agent install surface around this endpoint.