Quickstart
Get your API key, install the SDK, and screen your first address in under five minutes.
Install the SDK
Screen your first address
Check the risk score
Authentication
All API requests require a key. Production requests also require HMAC-SHA256 signing.
API Key
Include your key in the Authorization header on every request.
HMAC-SHA256 Signing
Production requests must include three additional headers for request integrity.
| Header | Description |
|---|---|
X-Request-Signature | HMAC-SHA256 of the canonical request string |
X-Timestamp | Unix epoch in seconds. 30-second tolerance window. |
X-Nonce | Unique token per request. 30-second SETNX TTL in Redis. |
Signing algorithm
METHOD + \n + PATH + \n + TIMESTAMP + \n + NONCE + \n + SHA256(BODY)X-Request-Signature headerSDKs
Official Python and TypeScript SDKs with typed models, async support, and automatic retry.
Python
TypeScript
Configuration
| Environment Variable | Default | Description |
|---|---|---|
VERIS_API_KEY | None | API key (overrides constructor param) |
VERIS_BASE_URL | https://api.useveris.finance | API base URL |
VERIS_TIMEOUT | 30 | Request timeout in seconds |
Error Handling
Sandbox
Full API access with simulated data. Same endpoints, same auth, test data only.
https://sandbox.api.useveris.financeTest Addresses
| Address | Chain | Result | Risk Score |
|---|---|---|---|
0x7Ff9...D4eA | Ethereum | OFAC Match | 0.94 |
0xd71c...0f4a | Base | Clear | 0.12 |
0x3a4b...5c6d | Polygon | Mixer Exposure | 0.78 |
TXk8...Lm3d | Tron | Clear | 0.08 |
7Kfm...x9Wd | Solana | Threat Intel | 0.67 |
Limits
Sandbox allows 1,000 API calls per day. The counter resets at 00:00 UTC. Webhook delivery is simulated but payloads are not sent to your endpoint.
Differences from Production
| Feature | Sandbox | Production |
|---|---|---|
| Sanctions data | Simulated (5 test addresses) | Live OFAC SDN + threat intel |
| Risk scores | Deterministic (same input = same output) | Live ML ensemble (15 models) |
| SAR filing | Simulated (no FinCEN transmission) | SFTP batch to FinCEN |
| Webhooks | Logged but not delivered | Delivered with 5 retry attempts |
POST /v1/screen
Screen an address against OFAC SDN, mixer registry, and threat intelligence labels.
Parameters
| Name | Type | Description |
|---|---|---|
address Required | string | Blockchain address to screen |
chain Required | string | Chain identifier (ethereum, base, polygon, arbitrum, solana, tron, avalanche, bsc, optimism, celo) |
include_risk Optional | boolean | Include risk score in response. Default: false |
Response
GET /v1/risk/{address}
Get a calibrated risk probability from the 15-model ML ensemble.
| Name | Type | Description |
|---|---|---|
chain Required | query string | Chain identifier |
Response
GET /v1/entities/{id}
Retrieve an entity cluster with linked addresses, chain coverage, and confidence scores.
GET /v1/alerts
List compliance alerts with filtering by status, risk level, and chain.
| Name | Type | Description |
|---|---|---|
status Optional | string | open, triaged, escalated, closed |
risk_level Optional | string | low, medium, high, critical |
chain Optional | string | Filter by chain |
limit Optional | integer | Max results (default 20, max 100) |
offset Optional | integer | Pagination offset |
POST /v1/alerts/{id}/triage
Trigger the AI triage agent on an alert. Returns classification within 3 seconds.
GET /v1/cases/{id}
Retrieve a compliance case with investigation results and SAR status.
POST /v1/sar/{case_id}
Generate a FinCEN Part V narrative from case evidence. The hallucination gate verifies every fact.
GET /v1/transfers
Query transfer history for an address with date range filtering.
| Name | Type | Description |
|---|---|---|
address Required | string | Blockchain address |
chain Required | string | Chain identifier |
start_date Optional | ISO 8601 | Start of date range |
end_date Optional | ISO 8601 | End of date range |
limit Optional | integer | Max results (default 50, max 500) |
POST /v1/webhooks
Create a webhook subscription. Events deliver with HMAC-SHA256 signed payloads and exponential backoff retry.
Request
Available Events
| Event | Description |
|---|---|
alert.created | New compliance alert generated |
alert.triaged | Alert classified by triage agent |
case.escalated | Alert escalated to investigation case |
sar.drafted | SAR narrative generated |
sar.filed | SAR transmitted to FinCEN |
WebSocket /v1/stream
Real-time transfer events across all 10 chains. Each event includes a pre-computed risk score.
Connection
Filter Parameters
Send a JSON filter message after connection to narrow the stream.
Error Codes
All errors return a JSON body with status code, error type, and human-readable message.
| Code | Type | Description |
|---|---|---|
400 | bad_request | Missing or invalid parameter |
401 | unauthorized | Invalid or missing API key |
403 | forbidden | HMAC signature mismatch or expired nonce |
404 | not_found | Resource does not exist |
429 | rate_limited | Too many requests. Check Retry-After header. |
500 | internal_error | Server error. Retry with exponential backoff. |
Rate Limits
Limits vary by plan. The API returns rate limit headers on every response.
| Plan | Limit | Window |
|---|---|---|
| Sandbox | 1,000 calls | Per day |
| Growth | 1,000 calls | Per minute |
| Enterprise | Custom | Custom |
Response Headers
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum calls in the current window |
X-RateLimit-Remaining | Calls remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait (only on 429 responses) |
Changelog
API version history and release notes.
- Added /v1/stream WebSocket endpoint for real-time transfer events
- Added chain filter parameter to /v1/alerts
- Risk scoring response now includes confidence intervals
- Entity resolution API returns 64-dimensional embeddings
- Added confidence scores to cluster membership
- New behavioral fingerprint method for address linking
- SAR generation endpoint includes typology codes
- Hallucination gate verification added to SAR pipeline
- Added sar.filed webhook event
- HMAC-SHA256 request signing required for production
- Nonce window set to 30 seconds
- Added rate limit response headers
- Initial API release with 16 REST endpoints
- Python and TypeScript SDKs published
- Sandbox environment launched