> 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-3/standard-package/api.md).

# 리포트 API

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

`POST` /reporting/v1/report

## **설명**

이 API 엔드포인트는 GGWP의 리포트 서비스와의 통합에 사용됩니다. 접수되는 각 리포트에 대해 리포트 유형, 관련 당사자 및 기타 맥락 정보를 받습니다. GGWP 리포트 서비스는 리포트와 신고자의 신뢰도 평가, 사건 우선순위 결정 및 플레이어 평판 점수 조정을 위해 이러한 정보를 활용하는 일련의 모델을 보유하고 있습니다.&#x20;

GGWP는 기본적으로 선별된 리포트 카테고리 집합을 제공합니다. 다음은 일반적인 정의와 함께 제공되는 목록이며, 게임마다 다를 수 있음을 참고하세요:

* **자리 비움(AFK)** - 일정 기간 동안 키보드를 떠나 게임에 적극적으로 참여하지 않는 행위
* **치팅** - 제3자 소프트웨어나 스크립트 등을 사용하여 게임 규칙에 반하는 비정상적인 방법으로 불공정한 이득을 취하는 행위. 에임봇, 월핵, 순간이동 등 치팅의 예가 포함됩니다.
* **칭찬(Commendation)** - 경기 중 다른 플레이어의 긍정적인 행동을 인정하거나 칭찬하는 행위
* **익스플로잇(Exploiting)** - 게임 내 버그, 글리치 또는 의도치 않은 기능을 남용하여 불공정한 이득을 얻는 행위
* **그리핑(Griefing)** - 다른 플레이어의 게임 경험을 고의로 방해하거나 사보타주하거나 개인적 즐거움을 위해 괴롭히는 행위. 전리품 도둑질, 팀원 차단, 고의적 패배 등이 그리핑의 예가 될 수 있습니다.
* **혐오 발언(Hate Speech)** - 종교, 민족, 국적, 인종, 성별, 성적 지향 또는 기타 정체성 요소를 기반으로 한 차별적이거나 경멸적인 언어 또는 욕설 사용
* **부적절한 사용자명** - 외설적이거나 공격적이거나 혐오를 조장하는 내용을 포함한 사용자명 보유
* **언어적 폭력(Verbal Abuse)** - 다른 플레이어에게 모욕적이거나 경멸적이거나 선동적인 언어를 사용하는 행위. 이러한 언어는 매우 무례하며 다른 플레이어가 대화에서 떠나고 싶게 만들 수 있습니다.
* **사기(Scamming)** - 다른 플레이어를 속이거나 기만하여 의도치 않거나 잠재적으로 해로운 행동을 하게 만드는 시도. 주소, 은행 계좌 또는 신용카드 번호 등 개인 정보를 얻으려는 시도나 악성 링크 클릭을 유도하는 시도가 포함됩니다.
* **스팸(Spamming)** - 게임 채팅에서 다른 플레이어를 방해하거나 짜증나게 하기 위해 원치 않거나 관련 없는 메시지를 반복적으로 과도하게 보내는 행위
* **팀킬(Team Killing)** - 고의로 팀원을 죽이거나 공격하는 행위
* **기타(Other)**

추가 맞춤 카테고리는 온보딩 과정에서 추가할 수 있습니다.

## **파라미터(Parameters)**

`본문(body)`: 다음 필드를 포함하는 사전(Dictionary):

* **신고자 ID(reporter\_id)**: 리포트를 제출하는 플레이어의 고유 식별자
* **피신고자 ID(reportee\_id)**: 신고 대상 플레이어의 고유 식별자
* (선택사항) **신고자 이름(reporter\_name)**: 리포트를 제출하는 플레이어의 이름
* (선택사항) **피신고자 이름(reportee\_name)**: 신고 대상 플레이어의 이름
* **카테고리(category)**: 리포트 카테고리 이름. 가능하면 위에 설명된 선별된 리포트 카테고리 목록을 사용하세요. 다른 맞춤 카테고리도 지원되지만, 해당 카테고리의 평판 영향 반영을 위해 추가 보정 시간이 필요합니다&#x20;
* (선택사항) **세션 ID(session\_id)**: 고유 세션 식별자. 리포트를 집계하고 검증할 때의 맥락 경계로 사용됩니다.
* (선택사항) **타임스탬프(timestamp)**: 리포트가 제출된 시간 *YYYY-MM-DD HH:MM:SS* 형식, UTC 기준. 제공되지 않으면 서버 측 UTC 타임스탬프가 대신 추가됩니다
* (선택사항) **코멘트(comment)**: 플레이어가 리포트 제출 시 남겼을 수 있는 어떤 코멘트. 리포트의 신뢰도를 판별하는 데 유용합니다.
* (선택사항) **메시지 ID(message\_id)**: 보고된 메시지나 게시물의 고유 식별자, 다음에서 얻음: [채팅 API](https://docs.ggwp.com/api-docs-chat/standard-package/chat-api). 대시보드에서 문제되는 내용을 확인하고 검증하는 데 필요한 직접적인 맥락을 제공합니다.
* 예시 호출(Sample Call)

  ```bash
  curl --request POST 'https://api.ggwp.com/reporting/v1/report' \
  --header 'x-api-key: api_key' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "reporter_id":"<player_id_1>",
      "reportee_id":"<player_id_2>",
      "reporter_name": "Sniper 7",
      "reportee_name": "Skuller89",
      "comment": "ggez",
      "timestamp": "2022-12-30 07:44:37",
      "category": "언어적 폭력(Verbal Abuse)",
      "session_id": "<unique_session_id>",
      "message_id": "<chat_message_id>"
  }'
  ```

## **출력(Output)**

* 200 - 성공적인 작업

  ```json
  {
      "success": true
  }
  ```
* 400
  * 오류 응답. 리포트가 시스템에 삽입되지 않았습니다.&#x20;
  * 유효성 검사(Validations)
    * &#x20;`타임스탬프(timestamp)` 유효하지 않거나 미래 시점입니다.
    * `메시지 ID(message_id)` 유효하지 않습니다(해당 채팅 메시지를 찾을 수 없습니다).
    * `피신고자 ID(reportee_id)` 메시지 작성자와 동일하지 않습니다(when message\_id is present).
    * `세션 ID(session_id)` 메시지와 동일하지 않습니다(when message\_id is present).
* 403
  * 유효하지 않거나 누락된 API 키
* 500
  * 오류 응답. 리포트가 시스템에 삽입되지 않았습니다. 요청을 처리하는 동안 서버에서 오류가 발생했습니다
