{"timestamp":"2026-08-05T16:16:43.510690249","requestId":"3bd6c5a5-9fcc-48af-8806-c1850a31e2ed","status":200,"success":true,"message":"SGT Gateway API Discovery","data":{"serviceName":"SGT Gateway","version":"1.0.0","timestamp":"2026-08-05T16:16:43.510664299","endpoints":[{"path":"/api/v1/security-credentials","method":"POST","description":"보안 자격 증명 조회 (세션키, 서버 공개키, 키 ID)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"clientPublicKey\": \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...\" }","responseExample":"{ \"sessionKey\": \"AES256-SESSION-KEY\", \"serverPublicKey\": \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...\", \"keyId\": 12345 }"},{"path":"/api/v1/user-credentials","method":"POST","description":"사용자 JWT 토큰 생성","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"userId\": \"testuser\" }","responseExample":"{ \"jwt\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\" }"},{"path":"/api/v1/revoke-token","method":"POST","description":"JWT 토큰 만료 등록 (새 로그인 시 이전 토큰 무효화) — MANAGEMENT 스코프 필요 (#747)","authentication":"Required","authType":"Bearer JWT Token (MANAGEMENT scope)","requestExample":"{ \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\", \"reason\": \"NEW_LOGIN\" }","responseExample":"{ \"success\": true, \"message\": \"Token revoked successfully\" }"},{"path":"/api/v1/users/{userName}/tokens","method":"GET","description":"사용자별 토큰 사용량 조회 (Path Variable)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"GET /api/v1/users/testuser/tokens","responseExample":"{ \"monthlyLimit\": 100000, \"usedToken\": 1500 }"},{"path":"/api/v1/users/tokens","method":"GET","description":"사용자별 토큰 사용량 조회 (Query Parameter)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"GET /api/v1/users/tokens?userId=testuser","responseExample":"{ \"monthlyLimit\": 100000, \"usedToken\": 1500 }"},{"path":"/api/v1/tokens/cache-reset","method":"GET","description":"월별 토큰 사용량 캐시 초기화 및 Config 서버 동기화","authentication":"Required","authType":"Bearer JWT Token","requestExample":"GET /api/v1/tokens/cache-reset","responseExample":"(empty response)"},{"path":"/api/v1/token-window/cache-reset","method":"GET","description":"시간 윈도우 기반 토큰 제한 캐시 초기화","authentication":"Required","authType":"Bearer JWT Token","requestExample":"GET /api/v1/token-window/cache-reset","responseExample":"(empty response)"},{"path":"/api/v1/filters","method":"GET","description":"필터 체인 정보 조회 (요청/응답 필터 순서, 활성화 상태, 설정)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"GET /api/v1/filters","responseExample":"{ \"summary\": { \"totalRequestFilters\": 5, \"totalResponseFilters\": 3 }, \"requestFilters\": [...], \"responseFilters\": [...] }"},{"path":"/api/v1/detect/pii","method":"POST","description":"개인정보 검출 및 마스킹 (이름, 전화번호, 이메일, 주민번호 등)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"message\": \"안녕하세요, 제 이름은 홍길동이고 전화번호는 010-1234-5678입니다.\" }","responseExample":"{ \"originalText\": \"안녕하세요, 제 이름은 홍길동이고...\", \"maskedText\": \"안녕하세요, 제 이름은 [이름]이고...\", \"detectedPii\": [{\"type\": \"PERSON\", \"value\": \"홍길동\", \"start\": 12, \"end\": 15}] }"},{"path":"/api/v1/detect/toxic","method":"POST","description":"유해 콘텐츠 검출 (욕설, 혐오, 성적, 범죄, 비판, 차별)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"message\": \"검사할 메시지 내용\" }","responseExample":"{ \"predictions\": [{\"label\": \"profanity\", \"score\": 0.02}, ...], \"isSafe\": true }"},{"path":"/api/v1/detect/jailbreak","method":"POST","description":"AI 탈옥 시도 검출 (프롬프트 인젝션 방지)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"message\": \"검사할 프롬프트 내용\" }","responseExample":"{ \"isSafe\": true, \"confidence\": 0.95, \"detectedPatterns\": [] }"},{"path":"/api/v1/detect/banword","method":"POST","description":"금지어 검출 (사전 정의된 금지 키워드 탐지)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"message\": \"검사할 메시지 내용\" }","responseExample":"{ \"isSafe\": true, \"detectedBanwords\": [] }"},{"path":"/api/v1/detect/batch","method":"POST","description":"통합 콘텐츠 보안 검사 (PII·Toxic·Jailbreak·Banword 병렬 탐지)","authentication":"Required","authType":"Bearer JWT Token","requestExample":"{ \"message\": \"검사할 메시지 내용\", \"checks\": [\"pii\", \"toxic\", \"jailbreak\", \"banword\"] }","responseExample":"{ \"pii\": { ... }, \"toxic\": { ... }, \"jailbreak\": { ... }, \"banword\": { ... }, \"summary\": { \"isSafe\": true, \"violations\": [] } }"}],"resources":[{"path":"/resources/client.sdk.min.js","type":"JavaScript SDK","contentType":"application/javascript","description":"SGT 클라이언트 SDK 라이브러리 - 암호화 통신 및 API 호출 지원","authentication":"None","usage":"<script src=\"/resources/client.sdk.min.js\"></script>"}],"notes":{"rateLimit":"사용자 티어(BASIC/PREMIUM/ENTERPRISE)에 따라 요청 및 토큰 제한이 적용됩니다","filters":"개인정보보호, 유해콘텐츠 검열, 파일 스캔 등의 필터가 자동 적용됩니다","security":"모든 데이터는 암호화되어 전송되며 다중 보안 필터를 통과합니다","protectedPaths":"/api/v1/ 로 시작하는 모든 경로는 JWT 인증이 필요합니다","authentication":"JWT 토큰은 Authorization 헤더에 'Bearer {token}' 형식으로 전송해야 합니다","publicPaths":"/, /resources/** 경로는 인증 없이 접근 가능합니다"}}}