Risk Intelligence
Individual Risk Score
POST
/v1/risk/individual$1.50 per entityAI-powered composite risk score (0–1000) for a natural person. Checks sanctions, regulatory actions, court records, professional history, and social media signals across 35+ factors. Entity disambiguation scores each match for confidence and suppresses likely false positives.
Send an Idempotency-Key header to retry safely.
Request body
| Field | Type | Description |
|---|---|---|
| firstNamerequired | string | First name (required) max length 200 |
| lastNamerequired | string | Last name (required) max length 200 |
| middleNameoptional | string | Middle name — helps disambiguate common names max length 200 |
| dateOfBirthoptional | string | Date of birth in YYYY-MM-DD format. Key identifier for disambiguation. |
| countryoptional | string | ISO-2 country code. Recommended for accurate entity resolution. max length 3 |
| ssn_last4optional | string | Last 4 digits of SSN. Strongest individual identifier. NOT stored — used only for match scoring. min length 4 · max length 4 |
| npioptional | string | National Provider Identifier — for healthcare professionals. Enables OIG LEIE cross-reference. max length 20 |
| employeroptional | string | Current employer name. max length 500 |
| titleoptional | string | Professional title (e.g. CFO, Medical Director). max length 200 |
| industryoptional | string | Industry context. Activates industry-specific weight profiles. max length 100 |
| aiModeoptional | string | Send "off" to forbid all LLM processing for this request. An account-level setting can also turn AI off; a request can never turn it back on. one of "on", "off" · default "on" |
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | |
| data | object | |
| data.id | string | |
| data.entityType | string | |
| data.entityName | string | |
| data.score | integer | |
| data.band | string | |
| data.factors | array of object | |
| data.factors[].factorCode | string | Unique factor identifier (e.g. BIZ_SAM_DEBARMENT) |
| data.factors[].factorName | string | |
| data.factors[].category | string | |
| data.factors[].points | integer | Points contributed to score (after confidence adjustment) |
| data.factors[].maxPoints | integer | |
| data.factors[].severity | string | |
| data.factors[].description | string | |
| data.factors[].source | string | |
| data.factors[].sourceUrl | string | |
| data.factors[].accusationOnly | boolean | True if this is an allegation, not a confirmed finding |
| data.factors[].matchConfidence | string | Entity disambiguation confidence for this match |
| data.factors[].confidenceScore | integer | Numeric confidence score (0–100) |
| data.factors[].confidenceReasons | array of string | Reasons for the confidence level |
| data.summary | object | |
| data.summary.executiveSummary | string | |
| data.summary.keyFindings | array of string | |
| data.summary.riskNarrative | string | |
| data.summary.mitigatingFactors | array of string | |
| data.summary.recommendedActions | array of string | |
| data.summary.confidence | number | |
| data.summary.model | string | |
| data.entityResolution | object | Entity disambiguation metadata showing how confidently the API resolved the input to real-world entities. |
| data.entityResolution.confidence | string | Overall entity resolution confidence based on identifiers provided |
| data.entityResolution.identifierCount | integer | Number of identifying fields provided |
| data.entityResolution.identifiersProvided | array of string | Which identifiers were supplied (e.g. country, ein, dateOfBirth) |
| data.entityResolution.identifiersMissing | array of string | Which recommended identifiers were not supplied |
| data.entityResolution.warnings | array of string | Warnings when input is too thin for reliable resolution |
| data.meta | object | |
| data.meta.dataSourcesUsed | array of string | |
| data.meta.processingTimeMs | integer | |
| data.meta.scoredAt | string | |
| data.meta.disclaimer | string |
Errors
- 400 invalid request
- 401 missing or bad key
- 403 not in your plan
- 429 rate limited, see Retry-After
- 402 payment required
- 5xx retry with backoff
Error bodies and codes are described in Error codes and troubleshooting.