Sanctions screening docs that read like a product, not a control panel.
Integrate sanctions, PEP, and entity-risk checks with a single API. This public reference covers the core endpoints, SDKs, matching model, and operational details buyers and engineers usually need before they trust a screening vendor.
Base URL
https://api.verifex.dev
Auth
Bearer token
Format
JSON over HTTPS
Published benchmark
122-case published benchmark: 95.5% F1, 100% recall, 91.4% precision.
Quickstart
First request in under a minute
- 1. Create a free account and generate a live test key.
- 2. Send a screening request with a name, type, and optional country or date of birth.
- 3. Read the returned confidence, risk level, source list, and request ID.
- 4. Move to batch, entity, or audit workflows once the basic call is wired in.
curl -X POST https://api.verifex.dev/v1/screen \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Vladimir Putin",
"type": "person",
"mode": "broad"
}'Quickstart
Start with one clean screening request
The public docs should answer the first commercial and technical questions quickly: how you authenticate, what you send, what comes back, and what proof you get for an analyst or auditor.
Request shape
nameRequired. Person or entity name to screen.
typeOptional. Narrow results to person or entity.
modeexact for strict matches, broad for fuzzy and phonetic matching.
country / date_of_birthOptional context fields that help reduce false positives and support adjudication.
What you get back
Confidence score and risk level for triage.
Matched source lists, aliases, and identifying fields.
Structured response IDs for downstream audit evidence.
Published benchmark context: 122-case published benchmark: 95.5% F1, 100% recall, 91.4% precision..
{
"query": { "name": "Vladimir Putin", "type": "person", "mode": "broad" },
"matches": [{
"id": "cuid_...",
"name": "PUTIN, Vladimir Vladimirovich",
"source": "OFAC",
"confidence": 100,
"risk_level": "critical",
"match_type": "EXACT",
"aliases": ["PUTIN, Vladimir"]
}],
"total_matches": 1,
"risk_level": "critical",
"screened_at": "2026-04-25T10:00:00.000Z",
"request_id": "abc123"
}Core endpoints
Document the workflows buyers actually compare
Public docs should not lead with internal dashboard utilities. They should make the screening workflows, entity model, and operational surface area legible in one scan.
/v1/screenScreen a person or entity
Single-request sanctions and PEP screening with confidence, risk level, aliases, source attribution, and request IDs.
- Use for onboarding, payouts, or manual case review
- Supports person/entity filtering, country hints, date of birth, and exact vs broad mode
- Returns normalized matches with confidence and source list metadata
/v1/screen/entityEntity + UBO screening
Corporate sanctions screening plus OFAC 50% Rule ownership-chain analysis in a single workflow.
- Traverse ownership chains up to configured depth
- Returns both name-match results and constructive ownership blocking analysis
- Useful for KYB, treasury, payments, and marketplace risk reviews
/v1/screen/batchBatch screening
Submit multiple names in one request when you need throughput without building your own job orchestration.
- Same matching options as single screening
- Plan-gated batch size limits
- Best for nightly reviews, list refreshes, and case queues
/v1/entities/searchCanonical entity search
Search the normalized entity graph for transliterations, variants, and canonical IDs before or after a screening call.
- Useful for analyst tooling and drill-down workflows
- Returns canonical IDs, sanctions status, and similarity
- Pairs with entity retrieval and audit evidence flows
SDKs
Keep the installation path obvious
The current public page buries useful SDK information inside a long internal nav. The public version should expose install commands and one minimal usage example per language.
Python
from verifex import VerifexClient
client = VerifexClient("vfx_your_api_key")
result = client.screen("Vladimir Putin", type="person")
print(result.risk_level)Node.js / TypeScript
import { Verifex } from "verifex";
const client = new Verifex("vfx_your_api_key");
const result = await client.screen({
name: "Vladimir Putin",
type: "person",
});Go
client := verifex.New("vfx_your_api_key")
result, err := client.Screen(ctx, verifex.ScreenRequest{
Name: "Vladimir Putin",
Type: "person",
})Rust
let client = Verifex::new("vfx_your_api_key");
let result = client.screen(ScreenRequest {
name: "Vladimir Putin".into(),
type_: Some("person".into()),
..Default::default()
}).await?;Coverage
Explain matching quality and source coverage in plain English
This section exists to answer the commercial trust questions behind technical integration. A good public docs page should make the matching model, transliteration handling, and evidence posture easy to verify.
Coverage
Verifex screens across sanctions and PEP sources with published source attribution and recurring sync schedules. High-value lists like OFAC, EU, UK, UN, DFAT, SECO, and BIS are part of the commercial story, not hidden implementation detail.
Matching
Broad mode includes fuzzy and phonetic matching so transliterations, alias variants, and spelling drift are still caught. Exact mode is available when a customer needs deterministic direct-name behavior for narrow review flows.
Evidence
Responses include structured IDs and match metadata, and the platform layers that into historical queries, audit evidence, and benchmark disclosure. See the published benchmark for the exact false-positive and false-negative profile.
Operations
Surface the non-marketing details teams still need
Rate limits, status checks, and error formats are part of the buying decision for API infrastructure. The public page should expose them cleanly instead of scattering them deep in a long nav.
/v1/healthPublic health endpoint for service status, connectivity, and source freshness.
curl https://api.verifex.dev/v1/healthError shape
{
"error": "Description of the error",
"code": "ERROR_CODE",
"request_id": "abc123"
}Operational notes
Authentication: Bearer token on every endpoint except health.
Rate limits: plan-specific. Usage and quota information is available after sign-in.
Bulk workflows: dashboard CSV upload and API batch endpoints both exist, but the API remains the primary product surface.
Full schema: use Swagger or the Postman collection if you need every response field and enum.
Next steps
Move buyers from docs into trust pages
The public docs page should behave like a commercial technical trust page. It needs clean exits into pricing, benchmark evidence, and signup instead of stranding users in documentation chrome.
Pricing
Understand plan limits, free usage, and which screening workflows unlock at each tier.
Published benchmark
Review the live benchmark methodology, current false-positive cluster, and disclosed metrics.
Create free account
Generate an API key, test a live request, and move into bulk or audit workflows once verified.