Player Reports Web APIs

Use the Player Reports Web APIs to use Player Reports interface features with RESTful services.

Contents

API Endpoint

https://api.epicgames.dev/player-reports/v1/report

Sending new player reports

Policy

The client policy used must have either one of these permissions:

  • playerreports:sendReportForAnyUser: When the client has permission to send reports on behalf of any player. Typically when the reports are coming from a game server.

Authorization

This call requires Bearer Token authorization with an EOS Client Auth access token, obtained from the Connect interface.

Request

HTTP Request

POST /player-reports/v1/report

HTTP Headers

Name

Value

Content-Type

application/json

Request Body

Name

Type

Description

Required

reportingPlayerId

String

The EOS productUserId making the report

Yes

reportedPlayerId

String

The reported EOS productUserId. It must be different from the "reportingPlayerId".

Yes

time

String

Time when the report was issued as defined in ISO 8601 and RFC3339.

example: 2021-01-01T00:00:00.000Z

Yes

reasonId

Integer

The report reason Id. It must be a valid id. Refer to

/player-reports/v1/report/reason/definition

api endpoint for more information

Yes

message

String

The report message with a maximum length of 1024 characters

No

context

String

Any valid Json. For any relevant information deemed useful for the developers. It has a maximum length of 4096 characters

No

Example Request

curl --location --request POST 'https://api.epicgames.dev/player-reports/v1/report' \
--header 'Content-Type: text/plain' \
--data-raw '{
"time": "2020-04-02T00:00:00.000Z",
"reportingPlayerId": "player_1",
"reportedPlayerId": "player_2",
"reasonId": 1,
"message":"This player is cheating",
"context" : "{\"key\": \"value\"}"
}'

Response

HTTP Response 201 - CREATED: Success.

https://api.epicgames.dev/player-reports/v1/report/<deploymentId>

Find Player Reports

Policy

The client policy used must have either one of these permissions:

  • playerreports:findReportsForAnyUser: When the client has permission to get reports for any players.

Authorization

This call requires Bearer Token authorization with an EOS Client Auth access token, obtained from the Connect interface.

Request

HTTP Request

GET /player-reports/v1/report/<deploymentId>

Request Parameters

Name

Type

Description

Required

deploymentId

String

The EOS deploymentId. It has to match the deploymentId generated by the access token

Yes

reportingPlayerId

String

The EOS productUserId making the report. "reportingPlayerId" and "reported PlayerId" cannot be both empty

No

reportedPlayerId

String

The reported EOS productUserId. "reportingPlayerId" and "reported PlayerId" cannot be both empty

No

reasonId

Integer

The report reason Id. It must be a valid id. Refer to

/player-reports/v1/report/reason/definition

api endpoint for more information

No

startTime

String

Return reports issued after startTime.

Time when the report was issued as defined in ISO 8601 and RFC3339.

example: 2021-01-01T00:00:00.000Z

No

endTime

String

Return reports issued before endTime.

Time when the report was issued as defined in ISO 8601 and RFC3339.

example: 2021-01-01T00:00:00.000Z

No

pagination

Boolean

Enable/Disable pagination response.

Default value : false

No

offset

Integer

The pagination offset

Default value: 0

No

limit

Integer

The reports count returned per call

Default value: 50

No

order

String

The order followed by returned reports:

Possible values:

  • time:desc

  • time:asc

  • reasonId:asc

  • reasonId:desc

Default value: time:desc

No

Example Request

curl --location --request GET 'https://api.epicgames.dev/player-reports/v1/report/deployment_0?reportingPlayerId=player_1&reportingPlayerId=player_2&reportingPlayerId=player_3&reasonId=1&reasonId=2&pagination=true&offset=0&limit=10&startTime=2018-05-01T00:00:00.000&endTime=2020-06-01T00:00:00.000Z&order=time:asc'

Response

HTTP Response 200 - OK: Success.

HTTP Headers

Name

Value

Content-Type

application/json

JSON Payload

Name

Type

Description

elements

Array<Report>

List of reports

paging

Object<Paging>

Pagination information

Paging

offset

Integer

The pagination offset

limit

Integer

The reports count returned per call

total

Integer

The total reports count

Report

productId

String

The game EOS productId

sandboxId

String

The game EOS sandboxId

deploymentId

String

The game EOS deploymentId

time

String

Time when the report was issued as defined in ISO 8601 and RFC3339.

example: 2021-01-01T00:00:00.000Z

reportingPlayerId

String

The EOS productUserId making the report

reportedPlayerId

String

The reported EOS productUserId

reasonId

Integer

The report reasonId

message

String

The report content

Example Response

{
  "paging": {
    "offset": 0,
    "limit": 1,
    "total": 1
  },
  "elements": [
    {
      "productId": "product_0",
      "sandboxId": "sandbox_0",
      "deploymentId": "deployment_0",
      "time": "2019-04-01T00:00:00.000Z",
      "reportingPlayerId": "player_1",
      "reportedPlayerId": "player_2",
      "reasonId": 1,
      "message": "This player is cheating"
    }
  ]
}

https://api.epicgames.dev/player-reports/v1/report/reason/definition

Get Report Reason Definition

Policy

No special client permissions are needed to call the report definition api

Authorization

This call requires Bearer Token authorization with an EOS Client Auth access token, obtained from the Connect interface.

Request

HTTP Request

GET /player-reports/v1/report/reason/definition

Example Request

curl --location --request GET 'https://api.epicgames.dev/player-reports/v1/report/reason/definition'

Response

HTTP Response 200 - OK: Success.

HTTP Headers

Name

Value

Content-Type

application/json

JSON Payload

Name

Type

Description

elements

Array<ReportReason>

List of report reasons

ReportReason

reasonId

Integer

The report reason Id

reasonString

String

A String describing the reasonId

Example Response

{
    "elements": [
        {
            "reasonId": 1,
            "reasonString": "Cheating"
        },
        {
            "reasonId": 2,
            "reasonString": "Exploiting"
        },
        {
            "reasonId": 3,
            "reasonString": "Offensive profile"
        },
        {
            "reasonId": 4,
            "reasonString": "Verbal abuse"
        },
        {
            "reasonId": 5,
            "reasonString": "Scamming"
        },
        {
            "reasonId": 6,
            "reasonString": "Spamming"
        },
        {
            "reasonId": 7,
            "reasonString": "Other negative behavior"
        }
    ]
}