Ticketing System

Provides support for your products using an automatically generated, preassigned email address and public web API key.

4 min read

Epic Online Services (EOS) provides a Ticketing System to support your products from a centralized location using an automatically generated, preassigned email address and a public web API key. The ticketing system supports:

  • Tracking open, in-progress, and closed tickets
  • Merging related tickets
  • Replying to end-users who have submitted a ticket and receiving replies

Getting Started

To use the ticketing system, you need to integrate it with your product through the Developer Portal.

  1. On the Developer Portal, select your product under the Your Products section in the left sidebar. If you haven't added your product to the Developer Portal yet, use the Create Product option to set it up first.
  2. Select Game Services and then Player Ticketing from the sidebar or the Player Ticketing tile from your product's main page to open the Player Ticketing page.
  3. This step is only required for a new product: Click the Integrate APIs button for integration before moving on to the next step.
  4. Click the Show API Key button to view the public web API key for the product. You need this key to implement the API. Each product has its own public web API key, but the system uses the same email address for all your products.

Using the API

The ticketing system sends emails from your end-users to your dedicated mailbox. To trigger this process, send a POST request to https://dev.epicgames.com/portal/api/v1/services/tickets/submit/ with your product's API key in the HTTP authorization field and the information that you want to report. The following fields are supported:

Field NameRequiredDescription
subjectYesOne of the following:
  • open-question
  • technical-support
messageYesThe email text, written by the end-user
sender_emailYesThe end-user's email address
sender_nameNoThe end-user's name
guidNoYour game's unique identifier for the end-user (e.g. the productUserId) Note: Any type of unique identifier works, there are no restrictions enforced regarding the guid.
error_codeNoAn error code for technical support emails
system_osNoThe end-user's operating system
system_antimalwareNoThe end-user's anti-malware system
system_otherNoOther information about the end-user's system

Placing a Request

To generate a ticket through cURL, place your request in the following format:

curl -X POST \
https://dev.epicgames.com/portal/api/v1/services/tickets/submit/ \
-H 'Authorization: Token your_product_api_key_here' \
-H 'Content-Type: application/json' \
-d '{
"subject": "technical-support",
"message": "Example message.",
"sender_email": "example.user@example.domain",
"sender_name": "Example User",
"guid": "example_user_guid",
"error_code": "example error code",
"system_os": "example OS",
"system_antimalware": "example antimalware",
"system_other": "example system other"
}'

Once the system accepts the request, you will receive a response like this:

{
"data": {
"prod_name": "example_game",
"prod_slug": "example_game_slug",
"guid": "example_user_guid",
"sender_name": "Example User",
"sender_email": "example.user@example.domain",
"subject": "Technical Support",
"message": "Example message.",
"error_code": "example error code",
"system_os": "example OS",
"system_antimalware": "example antimalware",
"system_other": "example system other",
"timestamp": "2019-03-07T14:20:10.933689Z",
}
}

The system then creates a new ticket, which you can see by navigating to the ticketing system.

Export user data

In order to export a user’s data, for example to fulfill a GDPR request, send a GET request to https://dev.epicgames.com/portal/api/v1/services/tickets/datarights/{email} with your product's API key in the HTTP authorization field and the user’s email for whom you wish to export the data in the URL path.

For example to export a user’s data through cURL, place your request in the following format:

curl --location --request GET \
https://dev.epicgames.com/portal/api/v1/services/tickets/datarights/example@example.com \
-H 'Authorization: Token your_product_api_key_here' \
-H 'Content-Type: application/json'

Once the system accepts the request, you will receive a response like this with HTTP status code 200:

{
"data": [
{
"guid": "example_guid",
"subject": "technical-support: example game",
"message": "Example ticket message",
"sender_name": "Example User",
"sender_email": "example@example.com",
"timestamp": "2019-04-11T12:49:21.349000Z",
"messages": [
{
"ticket_id": 1,
"message": "Example reply 2",
"sender_name": "Example User",
"sender_email": "example@example.com",
"timestamp": "2019-04-11T12:54:21.463000Z"
},
{
"ticket_id": 1,
"message": "Example reply 1",
"sender_name": "Example Org Support",
"sender_email": "example_org@eos-external-support.mail.on.epicgames.com",
"timestamp": "2019-04-11T12:52:02.514000Z"
}
]
}
]
}

Delete user data

In order to delete a user’s data, for example to fulfill a GDPR request, send a DELETE request to https://dev.epicgames.com/portal/api/v1/services/tickets/datarights/{email} with your product's API key in the HTTP authorization field and the user’s email for whom you wish to delete the data in the URL path.

For example to delete a user’s data through cURL, place your request in the following format:

curl --location --request DELETE \
https://dev.epicgames.com/portal/api/v1/services/tickets/datarights/example@example.com \
-H 'Authorization: Token your_product_api_key_here'

Once the system accepts the request, you will receive a response with HTTP status code 204.

Usage Patterns, Restrictions, and Limitations

When placing requests through this system, observe the following limitations:

  • Requests must come from websites or the game client.
  • All requests must contain written material from the end-user.
  • The number of requests produced in a day must not exceed 10,000, or 5 per 100 Daily Active Users.
  • User data in this system has to be exported/deleted separately from other EOS services via the Export user data and Delete user data endpoints as described above.