# 한국형 문서보안 필터 API 한국 사내 문서의 보안 등급과 유형을 분류하는 API. - **모델 ID**: `dlp` - **Base URL**: `https://api.corepin.ai` ## 1. 엔드포인트 | Method | Path | 인증 | 설명 | |---|---|:-:|---| | GET | `/v1/dlp/grades` | – | 6단계 등급 카탈로그 | | GET | `/v1/dlp/types` | – | 11종 유형 카탈로그 | | POST | `/v1/dlp/classify` | ✓ | 단건 등급·유형 분류 | | POST | `/v1/dlp/batch` | ✓ | 1 ~ 100 문서 일괄 분류 | | GET | `/v1/dlp/history` | ✓ | 분류 이력 (본문 미저장) | | GET | `/v1/dlp/audit` | ✓ | 감사 로그 (대시보드 설정 활성화 후 적재) | ## 2. POST `/v1/dlp/classify` **Request**: ```json { "text": "분류할 문서 텍스트 (1 ~ 32,768자)", "return_text": false, "apply_policy": false } ``` | 필드 | 타입 | 기본 | 설명 | |---|---|---|---| | `text` | string | (필수) | 1 ~ 32,768자 | | `return_text` | bool | `false` | 응답에 입력 본문 echo 여부. | | `apply_policy` | bool | `false` | 조직·앱·프로젝트의 DLP 차단 정책 적용. 응답 `meta.policy_applied`/`meta.policy_decision`에 결과. | ## 3. POST `/v1/dlp/batch` ```json { "texts": ["문서1", "문서2", "..."], "return_text": false, "apply_policy": false } ``` - 1 ~ 100 문서. - 각 항목당 호출 1건 차감. ## 4. 응답 ```json { "grade": "TRADE_SECRET", "grade_ko": "영업비밀", "types": ["M_AND_A"], "types_ko": ["인수·합병"], "meta": { "model_id": "dlp", "model_version": "dlp-2026.05", "processing_time_ms": 12.4, "request_id": "...", "quota_remaining": 99997, "policy_applied": false } } ``` | 필드 | 타입 | 설명 | |---|---|---| | `grade` | string | 6 등급 라벨 중 하나 (`PUBLIC` ~ `CLASSIFIED`). | | `grade_ko` | string | 한글 등급명. | | `types` | string[] | 검출된 유형 라벨 (0 ~ N 개). | | `types_ko` | string[] | 한글 유형명. | | `text` | string \| null | `return_text=false`면 null. | | `meta.policy_applied` | bool | 요청에 `apply_policy=true`를 보냈는지. | | `meta.policy_decision` | string \| null | `"block"` 또는 `"allow"` (`apply_policy=true`일 때만). | ## 5. 6단계 등급 | 라벨 | 한글명 | 설명 | |---|---|---| | `PUBLIC` | 공개 | 공시·뉴스·홍보. 외부 공개 가능. | | `INTERNAL` | 내부 | 사내 일반 문서. 외부 공유 부적절. | | `CONFIDENTIAL` | 기밀 | 특정 부서·직급만 접근. NDA 권장. | | `RESTRICTED` | 제한 | 임원·법무·감사 등 제한 인가자만. | | `TRADE_SECRET` | 영업비밀 | 기술·노하우·고객 리스트. | | `CLASSIFIED` | 특급 | 법령·규제 보호 대상. | `GET /v1/dlp/grades`에서 한글 설명을 받을 수 있어요. ## 6. 11종 유형 | 라벨 | 한글명 | |---|---| | `CONTRACT` | 계약·합의 | | `FINANCIAL` | 재무·실적 | | `M_AND_A` | 인수·합병 | | `HR` | 인사·평가 | | `LEGAL` | 법무·소송 | | `RND_IP` | R&D·지식재산 | | `STRATEGY` | 전략·기획 | | `CUSTOMER` | 고객 정보 | | `SECURITY` | 보안·인증 | | `PROCUREMENT` | 구매·조달 | | `PUBLIC_CLASSIFIED` | 공시 분류물 | 한 문서에 0 ~ N 개 유형이 부착될 수 있어요. ## 7. GET `/v1/dlp/history` · `/v1/dlp/audit` **`/v1/dlp/history`** — 본문 미저장 분류 이력. 등급·유형·길이만 반환. 쿼리: `from_ts` / `to_ts` · `limit` (1 ~ 500) · `offset`. **`/v1/dlp/audit`** — 본문 저장 감사 로그. 대시보드에서 DLP 감사 모드를 `metadata` 또는 `full`로 켠 이후의 요청만 적재. ## 8. 오류 응답 공통 오류 envelope·인증·rate limit 오류는 [빠른 시작 §6](/docs/quickstart) 참고. ## 9. 코드 예제 ### Python ```python import requests, os r = requests.post( "https://api.corepin.ai/v1/dlp/classify", headers={"Authorization": f"Bearer {os.environ['COREPIN_API_KEY']}"}, json={"text": "본 인수합병은 공시 전 사내 보고용 자료입니다."}, timeout=30, ) r.raise_for_status() out = r.json() print(out["grade_ko"], "/", out["types_ko"]) # 영업비밀 / ['인수·합병'] ``` ### JavaScript ```ts const r = await fetch(`${BASE}/v1/dlp/classify`, { method: "POST", headers: { "Authorization": `Bearer ${process.env.COREPIN_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ text }), }); const { grade, grade_ko, types, types_ko } = await r.json(); ```