All endpoints use the base URL https://api.useveris.finance. Authenticate every request with an Authorization: Bearer vrs_sk_... header. All responses return JSON.
Sanctions screening, risk scoring, entity resolution, alerts, cases, SAR generation, transfers, webhooks, and a WebSocket stream.
All endpoints use the base URL https://api.useveris.finance. Authenticate every request with an Authorization: Bearer vrs_sk_... header. All responses return JSON.
Screen an address against sanctions lists. Returns match status, list name, confidence score, and block decision. When include_risk is true, the response includes the composite risk score.
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Blockchain address to screen |
| chain | string | Yes | Chain identifier (ethereum, polygon, base, arbitrum) |
| include_risk | boolean | No | Include composite risk score in the response. Default: false |
Response
{"status": "match", "list": "OFAC SDN", "confidence": 0.998, "blocked": true, "risk_score": 0.94}
Get the composite risk score for an address. Returns calibrated probability from the 15-model ensemble, per-detector breakdown, and SHAP feature attribution values.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Chain identifier |
Response
{"score": 0.82, "confidence_interval": [0.78, 0.86], "detectors": [{"name": "statistical", "score": 0.79}, {"name": "isolation_forest", "score": 0.85}, {"name": "temporal", "score": 0.71}, {"name": "velocity", "score": 0.88}, {"name": "graph", "score": 0.91}, {"name": "dormant", "score": 0.44}, {"name": "new_velocity", "score": 0.76}], "shap_values": {"tx_count_7d": 0.12, "unique_counterparties": 0.09, "mixer_exposure": 0.21, "volume_24h": 0.07}}
Get a resolved entity cluster. Returns the entity type, aggregated risk level, all linked addresses, active chains, total volume, and clustering confidence score.
Response
{"id": "ent_8f3a2b1c", "entity_type": "exchange_deposit", "risk_level": "high", "addresses": ["0x7Ff9...D4eA", "0x3aB1...92fC", "0xd4E7...1a8B"], "chains": ["ethereum", "polygon"], "volume": 4280000.50, "confidence": 0.93}
List alerts with pagination and filtering. Returns open, triaged, and escalated alerts sorted by creation time descending.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | No | Filter by status (open, triaged, escalated, closed) |
| risk_level | string | No | Filter by risk level (low, medium, high, critical) |
| chain | string | No | Filter by chain identifier |
| limit | integer | No | Number of results per page. Default: 50. Max: 200 |
| offset | integer | No | Pagination offset. Default: 0 |
Response
{"alerts": [{"id": "alt_29f8c1a3", "status": "open", "risk_level": "high", "chain": "ethereum", "address": "0x7Ff9...D4eA", "created_at": "2026-03-21T14:22:08Z"}], "total": 142, "has_more": true}
Trigger AI triage on an alert. The triage agent classifies the alert and returns a structured decision with confidence and reasoning. Typical latency is 2 to 3 seconds.
Response
{"classification": "needs_investigation", "confidence": 0.91, "reasoning": "Address received $420K from a mixer within 48 hours. Transaction pattern matches layering typology T-003. Volume exceeds 90th percentile for this entity cluster."}
Get full case detail including linked alerts, investigation results, and SAR filing status. Cases are created when alerts are escalated.
Response
{"id": "case_5e91b2c4", "status": "investigating", "alert_ids": ["alt_29f8c1a3", "alt_7d4e0f12"], "investigation": {"summary": "Entity cluster linked to mixer activity...", "evidence": ["3 mixer hops identified", "volume spike 12x baseline"], "recommendation": "file_sar"}, "sar_status": "pending"}
Generate a SAR narrative for a case. Produces a FinCEN Part V narrative with typology codes. The hallucination gate verifies every fact against source data before output.
Response
{"sar_id": "sar_a3f21c08", "status": "generated", "narrative_preview": "On 2026-03-18, the subject address 0x7Ff9...D4eA received approximately $420,000 in USDC from a known mixing service...", "typology_codes": ["T-003", "T-011"]}
List stablecoin transfers with filtering by address, chain, and date range. Returns indexed transfer events from all monitored chains.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | No | Filter by sender or receiver address |
| chain | string | No | Filter by chain identifier |
| start_date | string | No | ISO 8601 start date (inclusive) |
| end_date | string | No | ISO 8601 end date (exclusive) |
| limit | integer | No | Number of results per page. Default: 100. Max: 1000 |
Response
{"transfers": [{"tx_hash": "0xabc1...f9e2", "chain": "ethereum", "from": "0x7Ff9...D4eA", "to": "0x3aB1...92fC", "amount": 125000.00, "token": "USDC", "timestamp": "2026-03-21T14:18:32Z"}], "total": 847}
Create a webhook subscription. Veris sends POST requests to your URL when subscribed events occur. Every payload carries an HMAC-SHA256 signature for verification. Failed deliveries retry with exponential backoff.
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | HTTPS endpoint to receive webhook payloads |
| events | string[] | Yes | Event types to subscribe (alert.created, alert.triaged, case.updated, sar.filed) |
| secret | string | Yes | Shared secret for HMAC-SHA256 payload signature |
Response
{"id": "wh_e4b1c209", "url": "https://your-app.com/webhooks/veris", "events": ["alert.created", "sar.filed"], "status": "active"}
Open a WebSocket connection for real-time transfer events. Filter by chain and minimum amount. The server sends JSON messages as transfers are indexed.
Connection parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chains | string[] | No | Filter by chain identifiers. Default: all chains |
| min_amount | number | No | Minimum transfer amount in USD. Default: 0 |
Event message
{"type": "transfer", "transfer": {"tx_hash": "0xdef4...a7c1", "chain": "polygon", "from": "0x9c2E...4bF1", "to": "0x1dA3...82eC", "amount": 50000.00, "token": "USDT"}, "risk_score": 0.34, "timestamp": "2026-03-21T14:22:09.412Z"}
Pair the API reference with the Python or TypeScript SDK for the fastest path to production.