OpenAML
KYC Right Source
KYC RIGHT SOURCE
Real-time Compliance API · Powered by OpenAML
Live Swagger /kycrs/docs Download PDF Full guide · printable
KYC Right Source
Toronto, Canada · Dubai, UAE
info@kycrightsource.com
Ver. 20 · 2026-06
← Back to Integration
No matching endpoints — try a different keyword.
KYC Right Source · Compliance API · Real-time Screening
FAST TRACK Quick Start — from zero to first screening hit in 5 minutes
1
Confirm the service is up
Hit GET /kycrs/healthz — look for auth_required: false. While it's false you can integrate without a key.
2
Set the X-API-Key header
Send X-API-Key: <your-key> on every call — works today (open) and the moment auth is turned on.
3
Pick a dataset bundle
Standard onboarding is ["SAN","PEP","RRE","DD"]. Add POI or INS per your jurisdiction.
4
POST one search
Send name + datasets + optional addresses[{geography}] — you get a ranked matches[] with a 0–100 score.
5
Enrich on a hit
Take resourceId from any match and GET /kycrs-profile/{type}/{resourceId} for full evidence, aliases, addresses.
Copy & run — live in your terminal right now
curl -sS -X POST https://lexamlhelpapi.amlhlep.com/kycrs/search/individuals \ -H 'Content-Type: application/json' \ -H 'X-API-Key: your-key-here' \ -d '{"name":"Vladimir Putin","datasets":["SAN","PEP"],"threshold":85}'
Expected: matchCount > 0 with score = 100, datasets ["PEP-CURRENT","SAN-CURRENT"] and currentSanBodyIds including 2 (OFAC), 8 (UN), 16 (EU), 19 (HMT), 21 (SECO).
~250 ms
p50 latency
~800 ms
p95 latency
99.5 %
Uptime target
TLS 1.3
Wire crypto
X-API-Key
Header auth
REST · JSON
Wire format
Introduction
KYC Right Source API (Ver. 20 · June 2026) is a header-authenticated RESTful JSON API that connects your core banking, KYC onboarding, payment, or case-management system to the KYC Right Source platform — delivering real-time PEP, sanctions, RRE, POI, adverse-media and due-diligence screening through a single integration layer.

The API operates as a continuous compliance gateway: every onboarding event and every transaction submitted by your core system is screened against active sanctions registers (OFAC SDN, EU CFSP, UN, HMT, SECO, MAS, DFAT and more), PEP databases, and configurable adverse-media feeds. The engine combines a dense vector index, a sparse BM25 index, and a phonetic fallback — fused with reciprocal-rank-fusion (RRF) — so a single call covers exact, fuzzy, transliterated and phonetic matches in one round-trip.

Matches are returned synchronously with a 0–100 confidence score, the source datasets, current/former sanction body IDs, country signals and (for individuals) DOB & gender — enabling your system to auto-clear, escalate, or hold the underlying action before it commits. The API is wire-compatible with the legacy KYC6 contract: existing KYC6 clients can repoint their base URL and run unchanged.

Aligned with FATF, FINTRAC / PCMLTFA, OSFI, OFAC, EU AMLD6, FinCEN, HMT and equivalent GCC frameworks — every call is logged, attributable, and audit-ready.
1Health
2Search
2Profile
6Datasets
Ver 20API
X-API-KeyHeader
RESTJSON
KYC6Compatible
Base URL — Search
https://lexamlhelpapi.amlhlep.com/kycrs/
Base URL — ProfileCheck
https://lexamlhelpapi.amlhlep.com/kycrs-profile/
Live OpenAPI / Swagger
https://lexamlhelpapi.amlhlep.com/kycrs/docs  ·  https://lexamlhelpapi.amlhlep.com/kycrs-profile/docs
Authentication
Authentication is via the X-API-Key request header on every call:

X-API-Key: <your-key-here>

The endpoint is currently open (auth not enforced) so you can integrate end-to-end without waiting for a key. Your client code should still send the header — it works seamlessly the moment auth is turned on. Check the live state any time with:

curl -sS https://lexamlhelpapi.amlhlep.com/kycrs/healthzauth_required: false
Compliance Standards
FATF 40 Recommendations · FINTRAC / PCMLTFA (Canada) · OSFI · OFAC SDN · EU AMLD6 · FinCEN · HMT (UK) · SECO (CH) · DFAT (AU) · MAS (SG) · GCC-region equivalents.
Data residency: pin to CA · US · UK · EU · UAE · SG · AU (and 23 more) — see the deployment page for the full list.
Implementation Support
A dedicated team works alongside your engineers to integrate the KYC Right Source API into your core system — pair-coding, payload validation, and edge-case handling until production-ready.
Dedicated Implementation Window
10-Day · Hands-On
A dedicated integration team is allocated to your organisation for a focused 10 business-day window to ensure a smooth, hands-on integration of the KYC Right Source API with your core system. Pair-coding, payload validation, sanctions-list mapping, and edge-case handling — until production-ready.
Day 1 – 2
Discovery & Sandbox
Kick-off call, mapping of your KYC entities to KYCRS DTOs, X-API-Key issuance, sandbox base-URL provisioning, and Postman / Swagger collection walkthrough.
Day 3 – 4
Health Probe & Client Scaffolding
Guided implementation of GET /kycrs/healthz + X-API-Key header, secure key storage, and the recommended client architecture (services, retry, error handling, RRF result merging).
Day 5 – 7
Screening Pipeline
Hand-in-hand build of the screen / hits / profile flow — including configurable list selection, threshold tuning, and SNAP·AI confidence parsing.
Day 8 – 9
Case Manager & Webhooks
Wiring case decisions, escalation, audit trail and webhook callbacks. Review of monitoring toggles and ongoing-watch behaviour.
Day 10
UAT & Go-Live
Joint UAT of edge cases (PEP-L1, transliterated names, false-positive thresholds). Production cut-over + 30-day priority support channel.
Deliverables included: reference client SDK skeleton (.NET / Java / Python / Node), Postman collection, sequence diagrams, sanctions-list mapping spreadsheet, and a written code-review report with structural recommendations.
Health & Authentication
Authentication is via the X-API-Key header. The endpoint is currently open (no key required) but your client should send the header anyway, so it continues to work the moment auth is enforced. Use GET /healthz to confirm the live state at any time.
GET /kycrs/healthz Health check & auth-required probe
Purpose
Returns a JSON object with the API version, search-engine readiness, and the current auth_required flag. Useful as a deployment liveness probe and to detect when X-API-Key enforcement is turned on.
Required headers
X-API-Key string · optional today, required when auth is enabled
cURL
curl -sS https://lexamlhelpapi.amlhlep.com/kycrs/healthz \ -H 'X-API-Key: your-key-here'
PowerShell
Invoke-RestMethod 'https://lexamlhelpapi.amlhlep.com/kycrs/healthz' ` -Headers @{ 'X-API-Key' = $env:KYCRS_API_KEY }
Response — 200 OK
{ "status": "ok", "version": "20.0.0", "auth_required": false, "search_ready": true }
Common statuses
CodeMeaning
200Service alive. Inspect auth_required and search_ready.
401X-API-Key missing or wrong — only emitted when auth is enabled.
503Search engine still warming (BM25 state not loaded). Retry after a few seconds.
Search
Submit an entity for real-time screening against PEP, SAN, POI, RRE, DD and INS datasets. Two endpoints — one for natural persons, one for legal entities — both backed by a dense + sparse + RRF-fusion pipeline with phonetic and transliterated matching.
POST /kycrs/search/individuals Screen an individual
Purpose
Searches the configured datasets for a natural person. Returns every candidate match above the score threshold along with source datasets, sanction-body IDs, country signal, recorded DOBs, gender, and a stable resourceId for /kycrs-profile/individuals/{resourceId} follow-up.
Required fields
FieldTypeDescription
namestringFull name. Accepts "First Middle Last" or "Last, First Middle".
datasetsarray<string>Lists to search. See Dataset Codes. At least one required.
Optional fields
FieldTypeDefaultDescription
thresholdint 75–10085Minimum match score (%) to return.
addressesarray<{geography, city?}>ISO-2 / ISO-3 country + optional city. Country narrows the candidate set server-side.
countriesarray<string>Extra ISO country codes; merged with addresses[].geography.
dobstring (YYYY-MM-DD)Date of birth filter.
dobMatching"exact" / "sameYear"sameYearexact enforces full date; sameYear allows any DOB in the same year.
gender"Male" / "Female"Optional gender filter.
dobRequiredbooleanfalseDrop candidates without a DOB.
countryRequiredbooleanfalseDrop candidates without country data.
matching"fuzzy" / "strict"fuzzystrict requires every token of the query to appear.
pepTiersarray<string>e.g. ["TIER1","TIER2"] when filtering PEPs by tier.
sanBodyIdsIncludearray<int>Restrict sanctions hits to these sanction bodies.
sanBodyIdsExcludearray<int>Exclude these sanction bodies from hits.
transliterateNamebooleantrueAllow cross-script transliteration in the match.
Minimal cURL
curl -sS -X POST https://lexamlhelpapi.amlhlep.com/kycrs/search/individuals \ -H 'Content-Type: application/json' \ -H 'X-API-Key: your-key-here' \ -d '{"name":"Vladimir Putin","datasets":["SAN","PEP"],"threshold":85}'
Full cURL — with country, DOB, gender
curl -sS -X POST https://lexamlhelpapi.amlhlep.com/kycrs/search/individuals \ -H 'Content-Type: application/json' \ -H 'X-API-Key: your-key-here' \ -d '{ "name": "Vladimir Putin", "datasets": ["SAN", "PEP"], "threshold": 85, "addresses": [{ "geography": "RU", "city": "Moscow" }], "dob": "1952-10-07", "dobMatching": "sameYear", "gender": "Male", "matching": "fuzzy", "transliterateName": true }'
PowerShell — Invoke-RestMethod
$body = @{ name = 'Vladimir Putin' datasets = @('SAN','PEP') threshold = 85 addresses = @( @{ geography = 'RU'; city = 'Moscow' } ) dob = '1952-10-07' dobMatching = 'sameYear' gender = 'Male' } | ConvertTo-Json -Depth 5 Invoke-RestMethod -Method Post ` -Uri 'https://lexamlhelpapi.amlhlep.com/kycrs/search/individuals' ` -ContentType 'application/json' ` -Headers @{ 'X-API-Key' = $env:KYCRS_API_KEY } ` -Body $body | Select-Object -ExpandProperty results
Response — 200 OK
{ "results": { "matchCount": 1, "matches": [ { "qrCode": "116301", "resourceId": "bdaeabc844deab67d9c782d2d0a12c79bbd72b466d54296fd009b60b5f5b424c", "score": 100, "match": "Putin", "name": "Vladimir Vladimirovich Putin", "countries": ["RU"], "addresses": [ { "geography": "RU", "city": "Saint Petersburg" }, { "geography": "RU", "city": "Moscow" } ], "datasets": ["PEP-CURRENT", "SAN-CURRENT"], "currentSanBodyIds": [2, 8, 16, 19, 21], "formerSanBodyIds": [], "version": 1775228229505, "resourceUri": "/individuals/bdaeabc844deab67d9c782d2d0a12c79bbd72b466d54296fd009b60b5f5b424c", "datesOfBirth": ["1952-10-07"], "gender": "Male", "profileImage": "https://…/profile.png" } ] } }
POST /kycrs/search/businesses Screen a business
Purpose
Searches the configured datasets for a legal entity (corporation, trust, foundation, NGO). Same hybrid pipeline as /search/individuals; the request shape is a subset — gender, dob, dobMatching, dobRequired and pepTiers are silently ignored if sent. Response shape is identical to individuals; datesOfBirth is always [] and gender is omitted.
Required fields
FieldTypeDescription
namestringBusiness name (legal or trading).
datasetsarray<string>Same codes as individuals (PEP, SAN, POI, RRE, DD, INS).
Optional fields
FieldTypeDefaultDescription
thresholdint 75–10085Minimum match score (%).
addressesarray<{geography, city?}>Country filter applied post-fetch against the business's addresses[].countryIsoCode.
countriesarray<string>Merged with addresses[].geography.
countryRequiredbooleanfalseDrop candidates with no address-country data.
matching"fuzzy" / "strict"fuzzystrict floors threshold to 90.
sanBodyIdsInclude / sanBodyIdsExcludearray<int>Jurisdictional sanction filtering.
transliterateNamebooleantrueCross-script transliteration.
cURL
curl -sS -X POST https://lexamlhelpapi.amlhlep.com/kycrs/search/businesses \ -H 'Content-Type: application/json' \ -H 'X-API-Key: your-key-here' \ -d '{ "name": "Zurich Insurance Company Ltd", "datasets": ["SAN", "PEP", "RRE"], "threshold": 85, "addresses": [{ "geography": "CH" }] }'
PowerShell — Invoke-RestMethod
$body = @{ name = 'Zurich Insurance Company Ltd' datasets = @('SAN','PEP','RRE') threshold = 85 addresses = @( @{ geography = 'CH' } ) } | ConvertTo-Json -Depth 5 Invoke-RestMethod -Method Post ` -Uri 'https://lexamlhelpapi.amlhlep.com/kycrs/search/businesses' ` -ContentType 'application/json' ` -Headers @{ 'X-API-Key' = $env:KYCRS_API_KEY } ` -Body $body
Response — 200 OK
{ "results": { "matchCount": 11, "matches": [ { "qrCode": "…", "resourceId": "…", "score": 100, "match": "Zurich Insurance Company Ltd", "name": "Zurich Insurance Company Ltd", "countries": ["DE"], "addresses": [{ "geography": "DE", "city": "Frankfurt" }], "datasets": ["PEP-LINKED"], "currentSanBodyIds": [], "formerSanBodyIds": [], "version": 1775228229505, "resourceUri": "/businesses/…", "datesOfBirth": [] } ] } }
ProfileCheck
Use the resourceId returned by a search to pull the complete enriched profile — every alias, address, identifier, sanction entry, PEP designation, related party and source evidence — in a single round-trip. Individuals and businesses live on separate paths.
GET /kycrs-profile/individuals/{resourceId} Full individual profile
Purpose
Returns the complete Individual Profile for the given resourceId — the long hex identifier returned by /kycrs/search/individuals. Intentionally verbose: every supporting evidence object that backs each sanction / PEP / adverse-media entry is included so your case manager can render the audit trail without a second round-trip.
Path parameters
resourceId string · required · hex from search response
cURL
RID=f91bc10dca7b20c842b18e43badf42423d83759f291fd7aa97e8b85a3bd51f25 curl -sS "https://lexamlhelpapi.amlhlep.com/kycrs-profile/individuals/$RID" \ -H 'X-API-Key: your-key-here'
PowerShell
$rid = 'f91bc10dca7b20c842b18e43badf42423d83759f291fd7aa97e8b85a3bd51f25' $profile = Invoke-RestMethod -Method Get ` -Uri "https://lexamlhelpapi.amlhlep.com/kycrs-profile/individuals/$rid" ` -Headers @{ 'X-API-Key' = $env:KYCRS_API_KEY } "name : $($profile.firstName) $($profile.middleName) $($profile.lastName)" "qrCode : $($profile.qrCode)" "version : $($profile.version)" "datasets : $($profile.datasets -join ', ')" "aliases : $($profile.aliases.Count)" "addresses : $($profile.addresses.Count)"
Response — abbreviated
{ "qrCode": "116301", "version": 1775228229505, "resourceUri": "/individuals/bdaeabc8...", "resourceId": "bdaeabc844deab67d9c782d2d0a12c79bbd72b466d54296fd009b60b5f5b424c", "firstName": "Vladimir", "middleName": "Vladimirovich", "lastName": "Putin", "gender": "Male", "isDeceased": false, "datesOfBirthIso": ["1952-10-07"], "datesOfDeathIso": [], "nationalitiesIsoCodes": ["RU"], "datasets": ["PEP-CURRENT", "SAN-CURRENT"], "aliases": [ { "aliass": "В. В. Путин", "type": "AKA", "firstName": "В.", "lastName": "Путин" } ], "addresses": [ { "addressType": "WORK", "city": "Moscow", "countryIsoCode": "RU" } ], "identifiers": [ /* national IDs, passport numbers */ ], "evidences": [ /* source citations */ ], "sanEntries": { /* SAN list designations */ }, "pepEntries": { /* PEP designations + offices held */ }, "pepByAssociationEntries": [], "relEntries": [], "rreEntries": [], "poiEntries": [], "insEntries": [], "ddEntries": [], "griEntries": [], "individualLinks": [], "businessLinks": [], "soeEntry": null, "profileImages": [] }
GET /kycrs-profile/businesses/{resourceId} Full business profile
Purpose
Same as the individual ProfileCheck but for a legal entity. Use the resourceId returned by /kycrs/search/businesses.
cURL
RID=<business-resource-id> curl -sS "https://lexamlhelpapi.amlhlep.com/kycrs-profile/businesses/$RID" \ -H 'X-API-Key: your-key-here'
End-to-end flow — search → profile (PowerShell)
# 1. Screen the name $req = @{ name='National Bank'; datasets=@('SAN','PEP','RRE'); threshold=85 } | ConvertTo-Json -Depth 5 $hits = (Invoke-RestMethod -Method Post ` -Uri 'https://lexamlhelpapi.amlhlep.com/kycrs/search/businesses' ` -ContentType 'application/json' ` -Headers @{ 'X-API-Key' = $env:KYCRS_API_KEY } ` -Body $req).results.matches # 2. Pull the full profile for the top hit if ($hits.Count -gt 0) { $top = $hits[0] " matched: score=$($top.score) $($top.name)" $profile = Invoke-RestMethod ` -Uri "https://lexamlhelpapi.amlhlep.com/kycrs-profile/businesses/$($top.resourceId)" ` -Headers @{ 'X-API-Key' = $env:KYCRS_API_KEY } " aliases: $($profile.aliases.Count) addresses: $($profile.addresses.Count)" }
Dataset Codes
Pass either the broad family code or any specific variant in the datasets array. Broad codes auto-expand server-side. Mix and match freely — e.g. ["PEP","SAN-CURRENT","POI"].
FamilyExpands toMeaning
PEPPEP-CURRENT, PEP-FORMERPolitically Exposed Persons — current office and former designations.
SANSAN-CURRENT, SAN-FORMERSanction list entries — currently designated and historically delisted.
POIPOIPersons / entities of interest from law-enforcement, regulatory and intelligence sources.
RRERRERegulator-Reportable Entries — disciplinary, debarment and enforcement findings.
DDDDDue-Diligence intelligence: bankruptcy, insolvency, civil litigation, corporate filings.
INSINSInsolvency and disqualified directors registers.
Best practice
For an end-to-end onboarding check, pass ["SAN","PEP","RRE","DD"] — that's the standard CFT bundle. Add POI if your jurisdiction requires it, and INS when screening directors.
Sanction Body IDs
Use these integer IDs in sanBodyIdsInclude / sanBodyIdsExclude to filter sanctions hits by jurisdiction. A full list (200+ bodies) is available via the OpenAPI doc.
BodyIDJurisdiction
OFAC (US Treasury)2United States
UN Security Council8Global
EU Consolidated List16European Union
UK HM Treasury (OFSI)19United Kingdom
Switzerland SECO21Switzerland
Australia DFAT25Australia
Canada — SEMA / Freezing Assets36, 44Canada
Japan METI49Japan
Singapore MAS59Singapore
Hong Kong67Hong Kong
New Zealand80New Zealand
Example — UAE bank, restrict to UAE-relevant jurisdictions
{ "name": "Vladimir Putin", "datasets": ["SAN"], "threshold": 85, "sanBodyIdsInclude": [2, 8, 16, 19, 25, 59] }
HTTP Status Codes
All endpoints use standard HTTP status codes. Error responses carry a detail field with a human-readable explanation.
CodeMeaningRecommended client action
200Success — see results.matches[]. matchCount may be 0.Process the response. No matches is a valid clear.
400Invalid request — see the detail field. Validation errors include the JSON path of the bad field.Fix the payload. Do not retry as-is.
401Missing or wrong X-API-Key — only when auth is enabled.Refresh / re-issue your API key.
429Rate-limited (concurrency burst).Back off; the limiter is per-key.
503Search engine warming up (BM25 state not yet loaded).Retry after a few seconds with light back-off.
5xxTransient upstream error.Retry with exponential back-off (3 attempts is usually enough).
Error body shape
{ "detail": "human-readable explanation" }
Best practices
Cache results in your client when repeatedly screening the same (name, datasets, threshold, country) tuple.
Tune threshold before going live: 90 = very strict, 75 = aggressive recall, 85 = balanced default.
Send addresses[].geography whenever you have country context — narrows the candidate set server-side.
Log resourceId of every accepted match for your audit trail; the upstream resourceUri lets you fetch the canonical profile later.
Retry on 503 with short back-off (warm-up). On 5xx / transient errors, 3 retries with exponential back-off is sufficient.
Schema Reference
Field-level reference for every DTO exchanged by the API. Names mirror the live OpenAPI spec at /kycrs/docs.
FieldTypeRequiredDescription
SearchIndividualsRequest — Body for POST /kycrs/search/individuals
namestringYesFull name to screen. Accepts "First Middle Last" or "Last, First Middle".
datasetsarray<string>YesDataset codes (see Dataset Codes section). At least one required.
thresholdint (75–100)Optional · default 85Minimum match score (%) to return.
addressesarray<Address>OptionalCountry (ISO-2/3) + optional city per row. Narrows candidate set server-side.
countriesarray<string>OptionalExtra ISO country codes; merged with addresses[].geography.
dobstring (YYYY-MM-DD)OptionalDate of birth filter.
dobMatching"exact" / "sameYear"Optional · default sameYearexact = full date; sameYear = any DOB same year.
gender"Male" / "Female"OptionalGender filter.
dobRequiredbooleanOptional · default falseDrop candidates without a DOB.
countryRequiredbooleanOptional · default falseDrop candidates without country data.
matching"fuzzy" / "strict"Optional · default fuzzystrict requires every query token to appear.
pepTiersarray<string>Optionale.g. ["TIER1","TIER2"].
sanBodyIdsIncludearray<int>OptionalRestrict sanctions hits to these sanction bodies.
sanBodyIdsExcludearray<int>OptionalExclude these sanction bodies.
transliterateNamebooleanOptional · default trueAllow cross-script transliteration in the match.
SearchBusinessesRequest — Body for POST /kycrs/search/businesses
namestringYesBusiness name (legal or trading).
datasetsarray<string>YesDataset codes.
thresholdint (75–100)Optional · default 85Minimum match score (%). strict matching floors threshold to 90.
addressesarray<Address>OptionalCountry filter applied post-fetch.
countries / countryRequired / matching / sanBodyIdsInclude / sanBodyIdsExclude / transliterateNameSame semantics as the individuals request.
Note: gender, dob, dobMatching, dobRequired, pepTiers are silently ignored for businesses.
Address — Request & response shape
geographystringYesISO-2 or ISO-3 country code.
citystringOptionalCity name (used in request to narrow; included in response when known).
SearchResponse — Both /search/individuals and /search/businesses
results.matchCountintYesNumber of returned matches.
results.matchesarray<Match>YesList of candidate matches above threshold.
Match — A single candidate inside results.matches[]
qrCodestringYesShort numeric profile code (stable across calls).
resourceIdstringYesLong hex resource identifier (stable). Pass to /kycrs-profile/{type}/{resourceId}.
scoreint (0–100)YesMatch confidence percentage.
matchstringYesThe query token(s) that matched.
namestringYesFull canonical name on file.
countriesarray<string>YesISO country codes for the profile.
addressesarray<Address>YesCountry + optional city.
datasetsarray<string>YesLists this profile appears on.
currentSanBodyIdsarray<int>YesCurrent sanction-body IDs (e.g. OFAC=2, UN=8, EU=16).
formerSanBodyIdsarray<int>YesHistoric sanction-body IDs.
versionlong (epoch-ms)YesProfile version. Increases when the profile is updated.
resourceUristringYesCanonical resource URI on the upstream platform.
datesOfBirtharray<string>YesISO dates of birth. Always [] for businesses.
gender"Male" / "Female" / nullIndividuals onlyOmitted on business matches.
profileImagestring · nullOptionalURL to an upstream profile image, where available.
Profile — Full enriched object from GET /kycrs-profile/{type}/{resourceId}
qrCode / version / resourceUri / resourceIdstring / stringNullableProfile identity headers.
name / descriptionstringNullablePrimary name & description.
isDeleted / deletionReasonstring / objectNullableSoft-delete flag and reason payload.
firstName / middleName / lastNamestringNullableParsed name parts.
gender / isDeceasedstringNullableDemographics.
datesOfBirthIso / datesOfDeathIsoarray<string>NullableISO-8601 dates.
nationalitiesIsoCodesarray<string>NullableISO-3166 country codes.
aliasesarray<Alias>NullableAKA / alternate names.
addressesarray<Address>NullableKnown addresses.
profileImagesarray<string>NullableImage URIs.
notes / contactEntriesarray<Note / ContactEntry>NullableNotes & contact details.
businessTypes / activitiesarray<string>NullableIndustry tags & activities.
identifiersarray<Identifier>NullableNational IDs, passport numbers, etc.
evidencesarray<Evidence>NullableSource citations supporting each entry.
datasetsarray<string>NullableDatasets that contain this profile.
sanEntriesobject (SanEntries)NullableSanctions list entries.
pepEntriesobject (PepEntries)NullablePEP designations.
pepByAssociationEntriesarray<PepByAssociationEntry>NullableIndirect-PEP associations (RCAs).
relEntries / rreEntries / poiEntries / insEntries / griEntriesarray<…>NullableRelated parties, regulator-reportable entries, persons-of-interest, insolvency, GRI entries.
individualLinks / businessLinksarray<…Link>NullableCross-references to other profiles.
ddEntriesarray<DdEntry>NullableDue-diligence entries.
soeEntryobject (SoeEntry)NullableState-Owned-Enterprise designation, where applicable.
Address
addressTypestringNullableAddress category (e.g. HOME, BUSINESS).
line1 / line2stringNullableStreet lines.
postcode / citystringNullablePostal code & city.
county / countyAbbrevstringNullableCounty / state.
countryIsoCodestringNullableISO-3166 country code.
Alias
aliassstringNullableFull alias name as it appears in source.
typestringNullableAlias type (AKA, FKA, transliteration, etc.).
firstName / middleName / lastNamestringNullableParsed alias name parts.