PII detection, validation, masking, and fake-replacement. Detect personal information across Korean, Chinese, Japanese, and English text.
POST to /api/auth/issue with your admin token and a system name identifying your service.
The response contains a signed API key (dd_...). Store it securely — it cannot be retrieved again.
Pass the key in every request: Authorization: Bearer dd_...
{
"token": "your-admin-token",
"system": "billing-service"
}
{
"api_key": "dd_c2eca8ea...",
"system": "billing-service",
"message": "Store this key securely."
}
{
"text": "Email me at test@example.com",
"namespaces": ["comm", "us"] // optional
}
{
"pii_found": true,
"match_count": 1,
"matches": [
{ "ns_id": "comm/email_01", "category": "email",
"start": 12, "end": 28, "severity": "medium" }
]
}
{
"text": "010-1234-5678",
"ns_id": "kr/mobile_01"
}
{
"ok": true,
"ns_id": "kr/mobile_01"
}
{
"text": "Call 010-1234-5678 or test@example.com"
}
{
"original": "Call 010-1234-5678 or test@example.com",
"masked": "Call **-****-**** or ***@***.***",
"change_count": 2,
"changes": [ ... detail per match ]
}
{
"text": "SSN: 123-45-6789",
"namespaces": ["us"]
}
{
"original": "SSN: 123-45-6789",
"replaced": "SSN: 018-15-8567",
"change_count": 1,
"changes": [ ... detail per match ]
}
system=billing-service // filter by system
event=api_call // token_issued | api_call
limit=50 // max entries (default 100)
{
"logs": [
{ "event": "api_call", "system": "billing-service",
"endpoint": "/api/mask",
"detail": { "change_count": 3 },
"timestamp": "2026-02-21T05:47:04Z" }
],
"total": 1
}
Response will appear here...