개인정보 마스킹
보안/안전 서비스 중텍스트 내 주민번호, 전화번호, 이름, 주소, 계좌번호 등 개인식별정보를 AI가 탐지해 마스킹합니다.
API 키 필수
HTTPS
POST
/api/v1/text/mask
API 설명
개인정보 마스킹 API는 전송된 텍스트에서 주민등록번호, 전화번호, 이름, 주소, 계좌번호, 이메일, 카드번호 등 개인식별정보(PII)를 AI가 탐지하여 지정한 마스킹명으로 치환한 텍스트를 반환합니다.
- 정규식과 AI 탐지를 결합하여 정형/비정형 개인정보를 모두 탐지
- 마스킹명 옵션 지원 (미지정 시 "[보안]"으로 마스킹)
- 탐지된 개인정보 유형 및 목록 함께 제공
사용 가이드
## 사용 방법
### 요청
```http
POST /api/v1/text/mask
Content-Type: application/json
X-API-Key: YOUR_API_KEY
```
### 요청 파라미터
| 필드명 | 타입 | 필수 | 설명 |
| :--- | :---: | :---: | :--- |
| text | String | Y | 개인정보를 마스킹할 원문 텍스트 (최대 5,000자) |
| mask | String | N | 치환에 사용할 마스킹명 (최대 20자, 기본값: [보안]) |
### 응답 파라미터
| 필드명 | 타입 | 설명 |
| :--- | :---: | :--- |
| success | Boolean | API 호출 성공 여부 |
| masked_text | String | 개인정보가 마스킹 처리된 텍스트 |
| mask | String | 적용된 마스킹명 |
| detected_count | Integer | 탐지된 개인정보 항목 수 |
| entities | Array | 탐지된 개인정보 목록 (type: 유형, value: 원문, count: 등장 횟수) |
| remaining | Integer | 잔여 호출 횟수 |
### 탐지 대상
주민등록번호(rrn), 전화번호(phone), 이름(name), 주소(address), 계좌번호(account), 이메일(email), 카드번호(card) 등 개인식별정보
### 오류 코드
| 코드 | 메시지 | 설명 |
| :--- | :--- | :--- |
| 400 | Bad Request | 텍스트 누락, 5,000자 초과 또는 마스킹명 20자 초과 |
| 401 | Unauthorized | API 키가 누락되었거나 유효하지 않음 |
| 403 | Forbidden | 해당 API를 신청하지 않았음 |
| 429 | Too Many Requests | 월간 API 호출 한도를 소진함 |
### 응답 예시
```json
{
"success": true,
"masked_text": "[보안]([보안])의 연락처는 [보안]이며 [보안]에 거주합니다.",
"mask": "[보안]",
"detected_count": 4,
"entities": [
{ "type": "rrn", "value": "900101-1234567", "count": 1 },
{ "type": "phone", "value": "010-1234-5678", "count": 1 },
{ "type": "name", "value": "홍길동", "count": 1 },
{ "type": "address", "value": "서울시 강남구 테헤란로 123", "count": 1 }
],
"api": "pii-masking",
"remaining": 99
}
```
공통 인증 헤더
X-API-Key: YOUR_API_KEY
Content-Type: application/json
cURL 예제
curl -X POST https://engines.ai.kr/api/v1/text/mask \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"홍길동(900101-1234567)의 연락처는 010-1234-5678입니다.","mask":"[보안]"}'