Intelligent PII discovery & classification system
Discover sensitive entities in free text and structured data with confidence-scored classification
- 32
- sensitive data categories
- 84
- format variants
- 95%
- structured-data Macro F1
- 104
- languages
Precise verdicts, reliable traceability
Multi-signal cross-verification
Context signals (column names, field paths, nearby text) fuse stage by stage with a multilingual semantic analysis model; regex-and-model agreement wins over any single source.
- Multilingual semantic analysis model trained on 1M+ real samples, 104 languages
- Column names, field paths, and surrounding text all feed the decision
- Every result can show its evidence: candidates, fused scores, rejection reasons
- 26-country ID validators, 16+ country tax IDs, 6 card brands
- Mock/test-data detection keeps drills out of your statistics
- A non-sensitive pre-filter keeps obviously irrelevant content off the hot path
Deterministic checksum proof
For types with check digits, validators settle it mathematically: Luhn (payment cards), IBAN mod-97, Aadhaar Verhoeff, VIN, and IMEI.
Confidence means probability
Per-type confidence calibration makes 0.87 mean "87% likely correct". High-confidence results return directly; low-confidence or near-tied candidates are automatically flagged for review, never a guess. Every review you confirm becomes high-value training corpus — flowing back encrypted to feed retraining, so the more you review, the more precise the verdicts.
- Calibrated per language; Chinese and English never share thresholds
- Idempotent output: same input, same verdict, auditable and replayable
Continuous evolution on real traffic
Review verdicts flow back encrypted as training corpus, with regression guards. Unrecognized residue is clustered; operators confirm and promote new types at runtime, no redeploy.
- Training corpus encrypted locally, no leakage; only authorized data enters the training loop
- Per-type F1, drift, and calibration events observable in the console
- Cross-instance knowledge transfer via corpus bundles
Flexible deployment, fast integration
Containerized deployment, connect in minutes
Plug-and-play REST API
curl -X POST http://127.0.0.1:18000/v1/text/scan \
-H 'Content-Type: application/json' \
-d '{
"text": "Customer john.doe@google.com, phone +1-415-555-0142.",
"min_confidence": 0.5
}'import requests
text = "Customer john.doe@google.com, phone +1-415-555-0142."
resp = requests.post(
"http://127.0.0.1:18000/v1/text/scan",
json={"text": text, "min_confidence": 0.5},
timeout=30,
)
for m in resp.json()["results"]:
print(m["pii_type"], m["value"], m["confidence"])const resp = await fetch("http://127.0.0.1:18000/v1/text/scan", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
text: "Customer john.doe@google.com, phone +1-415-555-0142.",
min_confidence: 0.5,
}),
})
for (const m of (await resp.json()).results)
console.log(m.pii_type, m.value, m.confidence)curl -X POST http://127.0.0.1:18000/v1/values/scan \
-H 'Content-Type: application/json' \
-d '{
"values": [
{"value": "john.doe@google.com", "label_hint": "email"},
{"value": "110101199003077334", "label_hint": "id_card"}
]
}'import requests
values = [
{"value": "john.doe@google.com", "label_hint": "email"},
{"value": "110101199003077334", "label_hint": "id_card"},
]
resp = requests.post("http://127.0.0.1:18000/v1/values/scan",
json={"values": values}, timeout=30)
for r in resp.json()["results"]:
print(r["pii_type"], r["confidence"], r["role"])const values = [
{ value: "john.doe@google.com", label_hint: "email" },
{ value: "110101199003077334", label_hint: "id_card" },
]
const resp = await fetch("http://127.0.0.1:18000/v1/values/scan", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ values }),
})
for (const r of (await resp.json()).results)
console.log(r.pii_type, r.confidence, r.role)Real-time on a consumer GPU
No datacenter cluster required: a single consumer-grade GPU delivers millisecond-level detection (RTX 5070, 9ms for a typical 200-character document). CPU and GPU produce identical detection accuracy; the only difference is latency.

Data sovereignty and privacy protection
Fully offline
No telemetry, no callbacks, no external model calls; inference is entirely local and runs air-gapped.
Masked by default
Detection logs mask values by default, keeping type and confidence; scanned content is not persisted.
Signed delivery
Signed installation packages with machine-bound offline licenses, anti-rollback and revocable.
Least privilege
Non-root container; training corpus encrypted locally, no leakage; only authorized data enters the training loop.
Your global compliance map
The data foundation for compliance workflows: 32 categories and 84 format variants spanning China, the US, the EU, APAC, LatAm, and Oceania.
China
- National ID card
- License plates (GA 36-2014)
- Home Return Permit
- CSDC securities account
- Mobile (MIIT numbering)
India / APAC
- Aadhaar (Verhoeff)
- PAN
- UPI / IFSC
- Japan My Number
- Singapore / Australia IDs
Global identity
- 26-country ID validators
- 16+ country tax/VAT
- Passport / driver license
- Precise geolocation (CCPA)
- Crypto addresses / cloud keys
Finance & telecom
- Payment cards (Luhn · 6 brands)
- IBAN / SWIFT
- Card security codes
- Email / phone / IP / MAC
- IMEI / VIN