> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/kr/api-4.md).

# API 문서: 사용자 이름

## **소개**

GGWP는 사용자명 데이터를 처리하고 애플리케이션 워크플로에 동작을 통합하는 데 사용할 수 있는 API를 제공합니다. 이 제품은 생성 시점뿐 아니라 사용자가 변경을 하거나 새로운 소셜 트렌드가 무엇이 유해한지에 대한 인식을 바꾸는 시간이 지나면서도, 사용자명과 관련된 다양한 유형의 유해 콘텐츠를 식별하도록 설계되었습니다. 팀명과 길드명 같은 유사한 사용 사례도 포함됩니다.

## 온보딩 가이드

API를 사용하기 전에, 이 제품이 어떻게 작동하는지 이해해야 그 잠재력을 최대한 활용할 수 있습니다.

### **GGWP의 사용자명 모더레이션 솔루션 이해하기**

이 제품의 주요 사용 사례는 다른 커뮤니티 구성원에게 불쾌감을 줄 수 있는 유해한 사용자명과 팀명의 생성을 방지하는 것입니다. 또한 이 도구는 시간이 지나면서 유해해질 수 있는 기존 사용자명을 표면화하고, 다른 사용자의 사용자명에 대해 플래그를 지정한 사용자들의 신고를 검증하고 분류하는 데에도 사용할 수 있습니다.

각 개별 사용자명마다 1회의 API 호출을 하며, 송신자를 추적할 수 있도록 고유 식별자를 포함해야 합니다(자세한 내용은 아래의 “사용자명 API” 섹션 참조). GGWP가 이 정보를 처리하고 해당 사용자명 및 그 뒤에 있는 사용자와 관련된 관련 인사이트를 제공합니다.

응답이 반환되면, 플랫폼의 사용자 경험을 개선하기 위해 다양한 동작을 통합하는 것을 권장합니다. 예를 들어 새 사용자에게 다른 사용자명을 선택하도록 안내하거나, 기존 사용자에게 프로필 이름을 변경해야 한다고 알릴 수 있습니다.

### **구성 가능한 설정**

플랫폼 전반에서 사용자명에 대해 차단하려는 콘텐츠 유형을 선택하기 위해 사용자 지정 설정을 정의할 수 있습니다. 이는 2가지 방법으로 할 수 있습니다:

* 온보딩 시점에 - 필요한 구성을 계정 매니저와 공유하면 GGWP가 이를 고객의 특정 API 설정에 반영합니다.
* 각 API 호출 중에 - 헤더를 사용하여 API를 호출할 때마다 일부 사용자 지정 설정을 입력할 수도 있습니다(자세한 내용은 “사용자명 API” 섹션 참조). 모든 사용자 지정 요소를 제공할 수 있는 것은 아니므로 제한이 있고, 오류가 발생할 가능성도 더 높습니다.

구성할 수 있는 항목 목록은 다음과 같습니다:

* **주제**: 사용 가능한 주제에는 폭력, 성적 콘텐츠, 언어적 학대, 정체성 혐오, 비속어, 링크 공유, 약물, 자해가 포함됩니다.
* **필터 강도**: 사용자명 API의 필터 강도 구성은 안전성이라는 상위 렌즈를 기반으로 합니다. 일반적으로 각 주제마다 선택할 수 있는 4가지 값이 있으며 몇 가지 예외가 있습니다. 이 4가지 값은 다음과 같습니다:
  * 필터 강도 = “Off” - 필터가 활성화되지 않으므로 모든 형태의 유해성이 허용됩니다. 제한을 두고 싶지 않은 성인 환경에 적합합니다.
  * 필터 강도 = “Low” - 매우 심한 유해 콘텐츠만 필터링하고, 중간 및 낮은 수준의 유해성은 통과시킵니다. 성인 전용 환경에 적합합니다.
  * 필터 강도 = “Medium” - 극단적이고 중간 수준의 유해성을 필터링하고, 경미한 유해성만 통과시킵니다. 일부 무해한 수준의 유해성이 허용될 수 있는 청소년 환경에 적합합니다.
  * 필터 강도 = “High” - 모든 형태의 유해성을 필터링합니다. 아동이 있는 환경에 적합합니다.
* **사용자 지정 콘텐츠:** 다르게 처리하고 싶은 용어로 구성된 사용자 지정 허용 목록 또는 차단 목록이 있다면, 이를 특정 API 설정에도 반영할 수 있습니다. 예를 들어, 예약해 두고 싶어서 사람들이 프로필에서 사용하지 못하게 하려는 특정 캐릭터 이름이 있는 경우 유용할 수 있습니다.

### **처리 모드**

다양한 성능 요구사항을 지원하기 위해 사용자명 API는 두 가지 처리 모드를 제공합니다. 둘 다 동일한 카테고리와 구성 가능한 설정을 사용하지만, 지연 시간과 분석 깊이가 다릅니다.

**품질 모드(기본값)**

GGWP의 전체 모델을 실행하여 최대 탐지 정확도와 더 넓은 언어 일반화를 제공합니다.

* **지연 시간:** 중앙값 약 500\~700ms.
* **언어 범위:** 훨씬 더 많은 언어를 지원합니다.
* **권장 대상:** 더 엄격한 안전 정책을 가진 커뮤니티 또는 더 어린 사용자층처럼 유해한 사용자명이 모더레이션을 통과할 위험을 최소화하는 것이 중요한 경우에 적합합니다. 지연 시간이 덜 중요한 오프라인 검사, 예를 들어 신고 검증이나 기존 사용자명의 정기 감사에도 유용합니다.

**성능 모드**

저지연에 최적화된 간소화된 모델을 사용하면서도 사용자명 API가 지원하는 핵심 언어는 계속 커버합니다.

* **지연 시간:** 중앙값 약 100\~150ms
* **언어 범위:** 언어 지원 섹션에 설명된 표준 언어 집합을 지원합니다.
* **권장 대상:** 실시간 사용자명 검증과 빠른 응답 시간이 필요한 대량 워크플로.

### **언어 지원**

GGWP 사용자명 API는 현재 다음 언어를 지원합니다:&#x20;

아랍어, 중국어, 영어, 프랑스어, 독일어, 인도네시아어, 이탈리아어, 일본어, 한국어, 폴란드어, 포르투갈어, 러시아어, 스페인어 및 터키어.

추가로:

* **품질 모드** 언어 범위를 **100개 이상의 언어로**확장합니다. 더 다양한 기반 학습 데이터셋 덕분입니다.
* **성능 모드** 위에 나열된 표준 언어 집합에 최적화되어 있습니다.

추가 언어 지원이 필요하시면 계정 매니저에게 연락하여 사용 가능 여부나 예정된 로드맵 항목을 확인해 주세요.

## 인증

GGWP는 API 키를 사용하여 인증된 사용자에게 아래에 나열된 모든 API 엔드포인트에 대한 안전한 접근을 허용합니다. 모든 요청은 발급된 API 키와 함께 다음 HTTP 헤더를 제공해야 합니다:

`x-api-key: <API_KEY>`

각 API 키는:

* 플랫폼/게임을 고유하게 식별합니다
* 이 문서에 나열된 모든 API에 접근할 수 있게 합니다
* 초당 요청 수에 대한 특정 속도 제한과, 월 단위로 만들 수 있는 요청 수의 할당량이 있을 수 있습니다
* 비밀로 유지해야 하며, 권한이 없는 게임/사용자와 공유해서는 안 됩니다
* 한 번 분실되면 새 키를 다시 생성해야 합니다

API 키 발급과 게임에 필요한 올바른 속도 제한 설정을 위해 GGWP 계정 매니저에게 문의해 주세요.

## API 키 사용 방법

다음은 유효한 API 키를 사용하여 프로덕션 API 엔드포인트를 호출하는 예시입니다(이 예시에서는 키를 가렸습니다):

```bash
curl --request POST 'https://api.ggwp.com/username/v1/validate' \
--header 'x-api-key: api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
	"username": "fuckyou123",
	"user_id": "user001",
	"timestamp": "2022-01-25 09:44:12"
}'
```

잘못된 API 키를 사용하면 `403` 반환 코드가 반환됩니다. 아래는 잘못된 API 키를 사용한 응답 예시입니다:

```bash
< HTTP/2 403
< date: Thu, 18 Nov 2021 21:28:27 GMT
< content-type: application/json
< content-length: 23
< x-amzn-requestid: f4361ec6-71bc-478f-98cd-da0fe9df829b
< x-amzn-errortype: ForbiddenException
< x-amz-apigw-id: JBPLRHGjPHcFdbg=
<
* Connection #0 to host api.ggwp.com left intact
{"message":"Forbidden"}* Closing connection 0
```

## 사용자명 API

\[ 기본 URL: `api.ggwp.com`]

`POST` /username/v1/validate

### **설명**

이 API 엔드포인트는 입력된 사용자명과 사용자 ID를 유해성 필터링 강도에 대한 구성 가능한 옵션 목록과 함께 처리하고, 2가지 수준의 정보를 반환합니다:

* 사용자명 상세 정보 - 제출된 사용자명에서 유해 콘텐츠의 존재 여부와 심각도를 나타내는 지표와, 유해성이 발견된 경우 그 지표의 신뢰도.
* 사용자 상세 정보 - 최근 차단 시도를 포함하여 사용자명 API 호출 기록을 기반으로 해당 사용자와 관련된 맥락 정보. 이를 통해 반복 위반자에게 대해 서로 다른 동작을 트리거할 수 있습니다.

### **헤더**

구성 설정은 GGWP 계정 설정을 통해서(권장) 또는 HTTP 헤더를 사용하여 각 요청마다 동적으로 제공할 수 있습니다.

<table><thead><tr><th width="219.04296875">헤더</th><th width="116.37890625">필수 여부</th><th>설명</th></tr></thead><tbody><tr><td><strong>x-api-key</strong></td><td>예</td><td>인증에 사용되는 GGWP API 키입니다.</td></tr><tr><td><strong>Content-Type</strong></td><td>예</td><td>다음으로 설정해야 합니다: <code>application/json</code>.</td></tr><tr><td><strong>x-api-config</strong></td><td>선택 사항</td><td>요청별 구성 재정의를 담은 Base64 인코딩 JSON 객체(주제, 필터 강도). 자세한 내용은 아래를 참조하세요. 제공되지 않으면 기본값 또는 온보딩 시점 설정이 적용됩니다.</td></tr><tr><td><strong>x-api-processing-mode</strong></td><td>선택 사항</td><td>요청의 처리 모드를 선택합니다. 허용되는 값: <code>quality</code> (기본값) 또는 <code>performance</code>.</td></tr></tbody></table>

**구성 가능한 주제(을 통해 `x-api-config`)**

아래는 구성 가능한 주제와 그에 대해 지원되는 필터 강도 값입니다. 이 값들은 를 통해 전달되는 JSON 내부에 제공됩니다 `x-api-config`:

* **violence**: 개인이나 집단에 대해 신체적 위해나 파괴를 조장, 미화 또는 위협하는 언어에 플래그를 지정합니다. 위협, 죽음에 대한 소망, 폭력 행위에 대한 언급이 포함됩니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * low: 극단적이고 노골적인 폭력 언급만 플래그를 지정합니다&#x20;
    * 예: "getcancer", "hopeyoudie", "rapist"
  * medium: 위에서 포착한 사례 외에도, 청소년이나 아동 대상에는 적합하지 않은 다른 폭력 행위 언급도 플래그를 지정합니다
    * 예: "genocide", "lynch", "slaughter", "torture", "kidnapper"
  * high: 위에서 포착한 사례 외에도, 경미한 폭력 언급도 플래그를 지정합니다
    * 예: "kill", "death", "shooter", "sniper", "blood", "murder"
* **sexual\_content**: 노골적인 성적 발언, 은유, 또는 부적절하거나 불쾌감을 줄 수 있는 언급이 포함된 언어에 플래그를 지정합니다. 나체 묘사, 성행위 언급, 또는 성적으로 암시적인 언어가 포함됩니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * low: 극단적인 성폭력 언급만 플래그를 지정합니다&#x20;
    * 예: "childmolester", "daterape", "gatorbait", "sexoffender"
  * medium: 위에서 포착한 사례 외에도, 다른 성행위 언급과 다소 노골적인 성적 언어도 플래그를 지정합니다
    * 예: "suckmydick", "penisfucker",  "pussy", "blowjob", "gangbang"
  * high: 위에서 포착한 사례 외에도, 아동에게 부적절하다고 간주되는 경미한 성적 언급도 플래그를 지정합니다
    * 예:  "boobs", "cock", "porn", "sexy", "butt"&#x20;
* **verbal\_abuse**: 욕설, 개인 공격, 경멸적 발언 또는 기타 표적형 공격적 언어가 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * low: 매우 공격적이고 모욕적인 용어만 플래그를 지정합니다&#x20;
    * 예: "fuktard", "schizo", "mong", "assmonkey"
  * medium: 위에서 포착한 사례 외에도, 다른 형태의 학대적 언어 또는 직접적인 모욕도 플래그를 지정합니다&#x20;
    * 예: "bastard", "douche", "asshole", "shitfucker", "bitch"
  * high: 위에서 포착한 사례 외에도, 경미한 공격적 용어도 플래그를 지정하며, 어린 사용자층에 가장 적합합니다&#x20;
    * 예: "dummy", "idiot", "incel", "braindead", "smartass"
* **identity\_hate**: 종교, 민족, 국적, 인종, 성별, 성적 지향 또는 기타 정체성 요인을 근거로 특정 개인이나 집단을 차별하는 언어가 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * medium: 극단적인 증오성 비방어만 필터링합니다&#x20;
    * 예: "nigger", "faggot", "cunt", "retard", "chink", "tranny", "slut"
  * high: 위에서 포착한 사례 외에도, 특정 정체성 집단에 대한 보다 미묘한 편견과 자주 연관되는 정체성 용어도 플래그를 지정합니다&#x20;
    * 예: "gay", "homo", "queer", "nazi", "lesbian"
* **profanity**: 외설적이거나 저속한 언어, 또는 욕설이 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * medium: 더 외설적인 형태의 비속어와 공격적인 욕설을 플래그를 지정합니다&#x20;
    * 예: "fuck", "stfu", "motherfucking", "scumbag"
  * high: 위에서 포착한 사례 외에도, 경미한 비속어도 플래그를 지정합니다
    * 예: "shit", "dammit", "ugly", "stupid", "noob", "wtf", "piss"
* **link\_sharing**: 외부 링크가 포함된 사용자명에 플래그를 지정하여 사용자가 부적절한 웹사이트, 광고, 사기 또는 기타 잠재적으로 유해한 콘텐츠를 공유하지 못하도록 합니다. 지원되는 필터 강도 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * medium: 일반적인 부적절하거나 성인용 콘텐츠(예: 성적 콘텐츠, 도박 및 기타 불법 활동, 피싱 공격 가능성)와 연관된 것으로 알려진 URL에 플래그를 지정합니다
  * high: 모든 URL에 플래그를 지정합니다
* **drugs**: 게임 환경에 부적절한 불법 물질, 약물 사용, 또는 약물 문화에 대한 언급이 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * on: 이 필터는 켜져 있으며 모든 약물 언급에 플래그를 지정합니다
    * 예: "overdose", "drunk", "crack", "alcohol", "stoned", "cocaine"
* **self\_harm**: 자해, 자살 또는 기타 자기 파괴적 행동을 조장, 미화 또는 암시하는 사용자명에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * on: 이 필터는 켜져 있으며 유해한 행동을 조장하는 내용을 차단합니다
    * 예: "kys", "suicide", "cutyourself", "endurlife"
* **politics:** : 정당, 정치인 또는 정치 운동과 같은 정치적 언급이 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * on: 이 필터는 켜져 있습니다
    * 예: "obama", "trump", "liberal", "BLM", "socialist"
* **religion:** : 종교, 종교적 인물, 또는 일반적으로 종교와 연관되는 항목 및 장소 등 종교적 언급이 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * on: 이 필터는 켜져 있습니다
    * 예: "catholic", "buddha", "faith", "pope", "prophet", "jewish"
* **ideologies:** : 유해한 이념에 대한 언급이 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * on: 이 필터는 켜져 있습니다
    * 예: "zionism", "supremacy", "caste", "antivax", "kkk", "misogyny"
* **controversial:** : 논쟁적인 인물, 사건 또는 집단에 대한 언급이 포함된 사용자명에 플래그를 지정합니다. 지원되는 필터 값은 다음과 같습니다:
  * off: 이 필터는 꺼져 있습니다
  * on: 이 필터는 켜져 있습니다
    * 예: "hitler", "jeffreydahmer", "hamas", "covid19", "slavery"

**구성 전달**

1. 샘플 JSON (`config.json`)

   ```json
   {
    	"violence": "off",
   	"sexual_content": "low",
   	"verbal_abuse": "medium",
   	"identity_hate": "medium",
   	"profanity": "high",
   	"link_sharing": "high",
   	"drugs": "off",
   	"self_harm": "on",
   	"politics": "on",
   	"religion": "on",
   	"ideologies": "on",
   	"controversial": "on"
   }
   ```
2. JSON을 Base64로 인코딩

   ```bash
   base64 config.json
   ```
3. 인코딩된 출력 예시

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">ewogICJ2aW9sZW5jZSI6ICJvZmYiLAoJInNleHVhbF9jb250ZW50IjogImxvdyIsCgkidmVyYmFsX2FidXNlIjogIm1lZGl1bSIsCgkiaWRlbnRpdHlfaGF0ZSI6ICJtZWRpdW0iLAoJInByb2Zhbml0eSI6ICJoaWdoIiwKCSJsaW5rX3NoYXJpbmciOiAiaGlnaCIsCgkiZHJ1Z3MiOiAib2ZmIiwKCSJzZWxmX2hhcm0iOiAib24iCn0=
   </code></pre>
4. curl 요청 예시

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">curl --request POST 'https://api.ggwp.com/username/v1/validate' \
     --header 'x-api-key:&#x3C;API_KEY>' \
     --header 'Content-Type: application/json' \
     --header 'x-api-config: ewogICJ2aW9sZW5jZSI6ICJvZmYiLAoJInNleHVhbF9jb250ZW50IjogImxvdyIsCgkidmVyYmFsX2FidXNlIjogIm1lZGl1bSIsCgkiaWRlbnRpdHlfaGF0ZSI6ICJtZWRpdW0iLAoJInByb2Zhbml0eSI6ICJoaWdoIiwKCSJsaW5rX3NoYXJpbmciOiAiaGlnaCIsCgkiZHJ1Z3MiOiAib2ZmIiwKCSJzZWxmX2hhcm0iOiAib24iCn0=' \
     --header 'x-api-processing-mode: performance' \
     --data-raw '{
       "username": "fuckyou123", 
       "user_id": "user001", 
       "timestamp": "2022-01-25 09:44:12"
     }'
   </code></pre>

**기본 구성**

다음이 `x-api-config` 헤더가 제공되지 않은 경우:

```json
{
	"violence": "high",
	"sexual_content": "high",
	"verbal_abuse": "high",
	"identity_hate": "high",
	"profanity": "high",
	"link_sharing": "high",
	"drugs": "on",
	"self_harm": "on",
	"politics": "on",
	"religion": "on",
	"ideologies": "on",
	"controversial": "on"
}
```

다음이 `x-api-processing-mode` 제공되지 않은 경우:

```json
{
  "processing_mode": "quality"
}
```

### **매개변수**

`body`: 다음 필드를 포함하는 딕셔너리:\
(*utf-8 인코딩이어야 합니다)*

* **username:** 검증할 사용자명이 포함된 문자열.
* **user\_id:** 사용자명과 함께 제출한 사용자에 대한 고유 식별자입니다. 이것이 새 사용자여서 *user\_id* 가 아직 생성되지 않았다면, 아래에 설명된 형식을 사용하는 것을 권장합니다. 여기서 *sessionID* 는 예를 들어 브라우저 탐색 설정처럼 해당 사용자를 식별하는 모든 활동을 기반으로 할 수 있습니다.

  ```json
  user_id = "anonymous_sessionID"
  ```
* (선택 사항) **timestamp:** 사용자명이 생성된 시간 *YYYY-MM-DD HH:MM:SS* 형식의 UTC 시간입니다. 추가하지 않으면 서버 측 UTC 타임스탬프가 대신 추가됩니다.

예제

```json
{
  "username": "fuckyou123",
  "user_id": "user001",
  "timestamp": "2022-01-25 09:44:12"
}
```

샘플 호출:

```bash
curl --request POST 'https://api.ggwp.com/username/v1/validate' \
  --header 'x-api-key: api_key' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "username": "fuckyou123",
    "user_id": "user001",
    "timestamp": "2022-01-25 09:44:12"
  }'
```

### **출력**

#### 200 응답

다음 최상위 필드를 포함하는 JSON 객체를 반환합니다:

<details>

<summary><code>username_details</code></summary>

제출된 사용자명에 대한 사용자명 수준의 모더레이션 결과.

* `username` — 모더레이션을 위해 제출된 사용자명입니다.
* `flag` — `true` 사용자명이 구성된 어떤 모더레이션 카테고리나 사용자 지정 규칙에 의해 플래그 지정되었는지 여부.
* `severity` — 사용자명에 할당된 전체 심각도입니다. 가능한 값: `none`, `low`, `medium`, `high`및 `custom`.
  * `custom` 는 GGWP가 사용자명에 플래그를 지정하지 않았지만, 사용자명이 클라이언트 사용자 지정 차단 목록의 용어와 일치할 때 사용됩니다.
* `confidence` — 전체 사용자명 수준 탐지에 대한 신뢰도입니다. 가능한 값: `none`, `low`, `medium`, 또는 `high`. 이는 모더레이션 동작을 조정하는 데 사용할 수 있습니다:
  * 오탐을 줄이려면 `low` 신뢰도 탐지를 자동 집행에서 제외하세요.
  * 더 많은 잠재적 유해 사용자명을 잡으려면 `low` 신뢰도 탐지를 포함하세요. 다만 더 많은 경계선상의 사용자명이 플래그 지정될 수 있다는 점은 감안해야 합니다.

카테고리 필드는 해당 사용자명에서 어떤 모더레이션 카테고리가 감지되었는지 나타냅니다. 이 필드들은 불리언이며 서로 배타적이지 않습니다. 하나의 사용자명은 여러 카테고리로 플래그 지정될 수 있습니다.

* `politics` — `true` 사용자명이 정치적 콘텐츠 신호와 일치한 경우.
* `controversial` — `true` 사용자명이 논쟁적 콘텐츠 신호와 일치한 경우.
* `sexual_content` — `true` 사용자명이 성적 콘텐츠 신호와 일치한 경우.
* `violence` — `true` 사용자명이 폭력 관련 신호와 일치한 경우.
* `profanity` — `true` 사용자명이 비속어 신호와 일치한 경우.
* `link` — `true` 사용자명에 URL, 도메인 또는 링크처럼 보이는 콘텐츠가 포함된 경우.
* `self_harm` — `true` 사용자명이 자해 관련 신호와 일치한 경우.
* `custom` — `true` 사용자명이 클라이언트 사용자 지정 차단 목록 용어와 일치한 경우.
* `religion` — `true` 사용자명이 종교 관련 콘텐츠 신호와 일치한 경우.
* `identity_hate` — `true` 사용자명이 정체성 기반 혐오 신호와 일치한 경우.
* `drugs` — `true` 사용자명이 약물 관련 콘텐츠 신호와 일치한 경우.
* `verbal_abuse` — `true` 사용자명이 모욕이나 학대적 언어 신호와 일치한 경우.
* `ideologies` — `true` 사용자명이 이념 관련 콘텐츠 신호와 일치한 경우.

</details>

<details>

<summary><code>user_details</code></summary>

제출된 사용자의 사용자명 모더레이션 이력 `user_id`.

이 객체는 현재 사용자명만 독립적으로 평가하는 것이 아니라, 짧은 시간 창 내의 반복적인 사용자명 악용을 식별하는 데 도움이 됩니다.

* `user_id` — 요청에 제공된 사용자 식별자입니다.
* `recent_username_calls` — 지난 5분 동안 이 사용자와 관련된 사용자명 모더레이션 요청 수입니다.
* `recent_flagged` — 지난 5분 동안 이 사용자와 관련되어 플래그 지정된 사용자명 모더레이션 요청 수입니다.
* `recent_flagged_usernames` — 지난 5분 동안 플래그 지정된 이 사용자와 관련된 사용자명 목록입니다.

</details>

예시 응답:

```json
{
    "username_details": {
        "username": "fuckoff",
        "flag": true,
        "severity": "medium",
        "confidence": "high",
        "politics": false,
        "controversial": false,
        "sexual_content": false,
        "violence": false,
        "profanity": true,
        "link": false,
        "self_harm": false,
        "custom": false,
        "religion": false,
        "identity_hate": false,
        "drugs": false,
        "verbal_abuse": true,
        "ideologies": false
    },
    "user_details": {
        "user_id": "123",
        "recent_username_calls": 8,
        "recent_flagged": 7,
        "recent_flagged_usernames": [
            "yousuck",
            "yousuck",
            "fuckyou123",
            "fuckyouoff",
            "fuckyou123"
        ]
    }
}
```

#### 400 응답

요청이 유효하지 않을 때 반환됩니다.

일반적인 원인에는 다음이 포함됩니다:

* 잘못된 JSON 입력
* 필수 필드 누락
* 잘못된 필드 유형
* 형식이 잘못된 요청 본문

#### 403 응답

API 키가 없거나, 유효하지 않거나, 이 엔드포인트에 대한 접근 권한이 없을 때 반환됩니다.

#### 500 응답

내부 서버 오류로 인해 요청을 완료할 수 없을 때 반환됩니다.
