위젯 엔드포인트

이 엔드포인트들은 SilentShield 클라이언트 사이드 위젯에서 사용됩니다. 일반적으로 직접 호출할 필요가 없습니다. 위젯이 자동으로 처리합니다.

Base URL: https://api.silentshield.io

POST/api/v1/captcha/init

현재 페이지에 대한 새로운 보호 세션을 초기화합니다. 세션 ID와 구성을 반환합니다.

Auth: API 키 (X-Api-Key 헤더)

Request Body:

{"domain": "example.com", "page": "/contact"}

Response:

{"sessionId": "sess_abc123", "features": {"telemetry": true, "pow": true, "honeypot": true}, "threshold": {"suspicious": 0.6, "block": 0.3}}

이 엔드포인트는 쿼터에 포함되지 않습니다.

POST/api/v1/captcha/telemetry

행동 텔레메트리 데이터(마우스 움직임, 타이핑 패턴, 스크롤 행동)를 분석을 위해 제출합니다.

Auth: API 키 (X-Api-Key 헤더)

Request Body:

{"sessionId": "sess_abc123", "events": [{"type": "mousemove", "ts": 1234567890, "data": {...}}]}

Response:

{"received": true}

이 엔드포인트는 쿼터에 포함되지 않습니다. 데이터는 실시간으로 분석됩니다.

POST/api/v1/captcha/verdict

수집된 텔레메트리 데이터를 기반으로 현재 세션의 판정 결과를 요청합니다.

Auth: API 키 (X-Api-Key 헤더)

Request Body:

{"sessionId": "sess_abc123"}

Response:

{"verdict": "human", "score": 0.92, "nonce": "nonce_xyz789", "challengeRequired": false}

이 엔드포인트는 챌린지가 트리거된 경우 captcha_shown 이벤트로 계산됩니다.

POST/api/v1/captcha/verify-nonce

위젯에서 생성된 Nonce를 검증합니다. 폼 제출이 정당한지 확인하기 위해 서버에서 이 엔드포인트를 호출하십시오.

Auth: API 키 (X-Api-Key 헤더)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

{"valid": true, "verdict": "human", "score": 0.92, "timestamp": "2025-01-15T10:30:00Z"}

이 엔드포인트는 쿼터에 포함됩니다. Nonce는 일회용이며 5분 후에 만료됩니다.