Coanda - A modern API for the modern game developer.

Coanda is a modern API for the modern game developer. It is a GraphQL API that provides a simple and efficient way to access the data you need to build your game. Coanda is designed to be easy to use, fast, and reliable. It is built on top of the latest technologies and is constantly updated to provide the best experience for game developers.

API Endpoints
https://example.com/graphql
Version

1.0.0

Queries

GetArena

Description

Get an arena by ID, or name.

Response

Returns a GetArenaResponse!

Arguments
Name Description
input - ArenaRequest

Example

Query
query GetArena($input: ArenaRequest) {
  GetArena(input: $input) {
    success
    arena {
      id
      name
      minPlayers
      maxPlayersPerTicket
      maxPlayers
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": ArenaRequest}
Response
{
  "data": {
    "GetArena": {
      "success": false,
      "arena": Arena,
      "error": "NONE"
    }
  }
}

GetArenas

Description

Get a list of arenas based on name and pagination options.

Response

Returns a GetArenasResponse!

Arguments
Name Description
input - Pagination

Example

Query
query GetArenas($input: Pagination) {
  GetArenas(input: $input) {
    success
    arenas {
      id
      name
      minPlayers
      maxPlayersPerTicket
      maxPlayers
      data
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": Pagination}
Response
{
  "data": {
    "GetArenas": {"success": false, "arenas": [Arena]}
  }
}

GetEvent

Description

Get an event by ID or name. Also returns a leaderboard of event users.

Response

Returns a GetEventResponse!

Arguments
Name Description
input - GetEventRequest

Example

Query
query GetEvent($input: GetEventRequest) {
  GetEvent(input: $input) {
    success
    event {
      id
      name
      currentRoundId
      currentRoundName
      data
      rounds {
        id
        eventId
        name
        scoring
        data
        endedAt
        createdAt
        updatedAt
      }
      startedAt
      createdAt
      updatedAt
    }
    leaderboard {
      id
      eventId
      clientUserId
      score
      ranking
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetEventRequest}
Response
{
  "data": {
    "GetEvent": {
      "success": true,
      "event": Event,
      "leaderboard": [EventUser],
      "error": "NONE"
    }
  }
}

GetEventRound

Description

Get an event round by ID, or by event object and round name. Also returns leaderboard for the round. If a round name is not provided, the current round is returned

Response

Returns a GetEventRoundResponse!

Arguments
Name Description
input - GetEventRoundRequest

Example

Query
query GetEventRound($input: GetEventRoundRequest) {
  GetEventRound(input: $input) {
    success
    round {
      id
      eventId
      name
      scoring
      data
      endedAt
      createdAt
      updatedAt
    }
    results {
      id
      eventUserId
      clientUserId
      eventRoundId
      result
      ranking
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetEventRoundRequest}
Response
{
  "data": {
    "GetEventRound": {
      "success": false,
      "round": EventRound,
      "results": [EventRoundUser],
      "error": "NONE"
    }
  }
}

GetEventUser

Description

Get an event user by ID, or by event object and user ID. Also returns the user's results for each round

Response

Returns a GetEventUserResponse!

Arguments
Name Description
input - GetEventUserRequest

Example

Query
query GetEventUser($input: GetEventUserRequest) {
  GetEventUser(input: $input) {
    success
    user {
      id
      eventId
      clientUserId
      score
      ranking
      data
      createdAt
      updatedAt
    }
    results {
      id
      eventUserId
      clientUserId
      eventRoundId
      result
      ranking
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetEventUserRequest}
Response
{
  "data": {
    "GetEventUser": {
      "success": false,
      "user": EventUser,
      "results": [EventRoundUser],
      "error": "NONE"
    }
  }
}

GetItem

Description

Get an item by ID and type.

Response

Returns a GetItemResponse!

Arguments
Name Description
input - ItemRequest

Example

Query
query GetItem($input: ItemRequest) {
  GetItem(input: $input) {
    success
    item {
      id
      type
      data
      expiresAt
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": ItemRequest}
Response
{
  "data": {
    "GetItem": {
      "success": false,
      "item": Item,
      "error": "NONE"
    }
  }
}

GetItems

Description

Get a list of items based on type and pagination options.

Response

Returns a GetItemsResponse!

Arguments
Name Description
input - GetItemsRequest

Example

Query
query GetItems($input: GetItemsRequest) {
  GetItems(input: $input) {
    success
    items {
      id
      type
      data
      expiresAt
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": GetItemsRequest}
Response
{"data": {"GetItems": {"success": true, "items": [Item]}}}

GetMatch

Description

Get a match by ID, or matchmaking ticket.

Response

Returns a GetMatchResponse!

Arguments
Name Description
input - GetMatchRequest

Example

Query
query GetMatch($input: GetMatchRequest) {
  GetMatch(input: $input) {
    success
    match {
      id
      arena {
        id
        name
        minPlayers
        maxPlayersPerTicket
        maxPlayers
        data
        createdAt
        updatedAt
      }
      tickets {
        id
        matchmakingUsers {
          id
          clientUserId
          data
          elo
          createdAt
          updatedAt
        }
        arenas {
          id
          name
          minPlayers
          maxPlayersPerTicket
          maxPlayers
          data
          createdAt
          updatedAt
        }
        matchId
        status
        data
        createdAt
        updatedAt
      }
      privateServerId
      status
      data
      lockedAt
      startedAt
      endedAt
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetMatchRequest}
Response
{
  "data": {
    "GetMatch": {
      "success": false,
      "match": Match,
      "error": "NONE"
    }
  }
}

GetMatches

Description

Get a list of matches based on arena, matchmaking user, status, and pagination options.

Response

Returns a GetMatchesResponse!

Arguments
Name Description
input - GetMatchesRequest

Example

Query
query GetMatches($input: GetMatchesRequest) {
  GetMatches(input: $input) {
    success
    matches {
      id
      arena {
        id
        name
        minPlayers
        maxPlayersPerTicket
        maxPlayers
        data
        createdAt
        updatedAt
      }
      tickets {
        id
        matchmakingUsers {
          id
          clientUserId
          data
          elo
          createdAt
          updatedAt
        }
        arenas {
          id
          name
          minPlayers
          maxPlayersPerTicket
          maxPlayers
          data
          createdAt
          updatedAt
        }
        matchId
        status
        data
        createdAt
        updatedAt
      }
      privateServerId
      status
      data
      lockedAt
      startedAt
      endedAt
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": GetMatchesRequest}
Response
{
  "data": {
    "GetMatches": {"success": false, "matches": [Match]}
  }
}

GetMatchmakingTicket

Description

Get a matchmaking ticket by ID, or matchmaking user.

Response

Returns a GetMatchmakingTicketResponse!

Arguments
Name Description
input - GetMatchmakingTicketRequest

Example

Query
query GetMatchmakingTicket($input: GetMatchmakingTicketRequest) {
  GetMatchmakingTicket(input: $input) {
    success
    matchmakingTicket {
      id
      matchmakingUsers {
        id
        clientUserId
        data
        elo
        createdAt
        updatedAt
      }
      arenas {
        id
        name
        minPlayers
        maxPlayersPerTicket
        maxPlayers
        data
        createdAt
        updatedAt
      }
      matchId
      status
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetMatchmakingTicketRequest}
Response
{
  "data": {
    "GetMatchmakingTicket": {
      "success": true,
      "matchmakingTicket": MatchmakingTicket,
      "error": "NONE"
    }
  }
}

GetMatchmakingTickets

Description

Get a list of matchmaking tickets based on match ID, matchmaking user, status, and pagination options.

Response

Returns a GetMatchmakingTicketsResponse!

Arguments
Name Description
input - GetMatchmakingTicketsRequest

Example

Query
query GetMatchmakingTickets($input: GetMatchmakingTicketsRequest) {
  GetMatchmakingTickets(input: $input) {
    success
    matchmakingTickets {
      id
      matchmakingUsers {
        id
        clientUserId
        data
        elo
        createdAt
        updatedAt
      }
      arenas {
        id
        name
        minPlayers
        maxPlayersPerTicket
        maxPlayers
        data
        createdAt
        updatedAt
      }
      matchId
      status
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetMatchmakingTicketsRequest}
Response
{
  "data": {
    "GetMatchmakingTickets": {
      "success": true,
      "matchmakingTickets": [MatchmakingTicket],
      "error": "NONE"
    }
  }
}

GetMatchmakingUser

Description

Get a matchmaking user by ID, or client user ID.

Response

Returns a GetMatchmakingUserResponse!

Arguments
Name Description
input - MatchmakingUserRequest

Example

Query
query GetMatchmakingUser($input: MatchmakingUserRequest) {
  GetMatchmakingUser(input: $input) {
    success
    matchmakingUser {
      id
      clientUserId
      data
      elo
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": MatchmakingUserRequest}
Response
{
  "data": {
    "GetMatchmakingUser": {
      "success": false,
      "matchmakingUser": MatchmakingUser,
      "error": "NONE"
    }
  }
}

GetMatchmakingUsers

Description

Get a list of matchmaking users based on client user ID and pagination options.

Response

Returns a GetMatchmakingUsersResponse!

Arguments
Name Description
input - Pagination

Example

Query
query GetMatchmakingUsers($input: Pagination) {
  GetMatchmakingUsers(input: $input) {
    success
    matchmakingUsers {
      id
      clientUserId
      data
      elo
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": Pagination}
Response
{
  "data": {
    "GetMatchmakingUsers": {
      "success": true,
      "matchmakingUsers": [MatchmakingUser]
    }
  }
}

GetRecord

Description

Get a record by ID, or name and user ID.

Response

Returns a GetRecordResponse!

Arguments
Name Description
input - RecordRequest

Example

Query
query GetRecord($input: RecordRequest) {
  GetRecord(input: $input) {
    success
    record {
      id
      name
      userId
      record
      ranking
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": RecordRequest}
Response
{
  "data": {
    "GetRecord": {
      "success": false,
      "record": Record,
      "error": "NONE"
    }
  }
}

GetRecords

Description

Get a list of records based on name, user ID, and pagination options.

Response

Returns a GetRecordsResponse!

Arguments
Name Description
input - GetRecordsRequest

Example

Query
query GetRecords($input: GetRecordsRequest) {
  GetRecords(input: $input) {
    success
    records {
      id
      name
      userId
      record
      ranking
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetRecordsRequest}
Response
{
  "data": {
    "GetRecords": {
      "success": true,
      "records": [Record],
      "error": "NONE"
    }
  }
}

GetTask

Description

Get an task by ID and type.

Response

Returns a GetTaskResponse!

Arguments
Name Description
input - TaskRequest

Example

Query
query GetTask($input: TaskRequest) {
  GetTask(input: $input) {
    success
    task {
      id
      type
      data
      expiresAt
      completedAt
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": TaskRequest}
Response
{
  "data": {
    "GetTask": {
      "success": true,
      "task": Task,
      "error": "NONE"
    }
  }
}

GetTasks

Description

Get a list of tasks based on type and pagination options.

Response

Returns a GetTasksResponse!

Arguments
Name Description
input - GetTasksRequest

Example

Query
query GetTasks($input: GetTasksRequest) {
  GetTasks(input: $input) {
    success
    tasks {
      id
      type
      data
      expiresAt
      completedAt
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": GetTasksRequest}
Response
{
  "data": {
    "GetTasks": {"success": false, "tasks": [Task]}
  }
}

GetTeam

Description

Get a team by id, name, or member.

Response

Returns a GetTeamResponse!

Arguments
Name Description
input - GetTeamRequest

Example

Query
query GetTeam($input: GetTeamRequest) {
  GetTeam(input: $input) {
    success
    team {
      id
      name
      score
      ranking
      members {
        id
        userId
        teamId
        data
        joinedAt
        updatedAt
      }
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetTeamRequest}
Response
{
  "data": {
    "GetTeam": {
      "success": false,
      "team": Team,
      "error": "NONE"
    }
  }
}

GetTeamMember

Description

Get a team member by id or user ID.

Response

Returns a GetTeamMemberResponse!

Arguments
Name Description
input - TeamMemberRequest

Example

Query
query GetTeamMember($input: TeamMemberRequest) {
  GetTeamMember(input: $input) {
    success
    member {
      id
      userId
      teamId
      data
      joinedAt
      updatedAt
    }
    error
  }
}
Variables
{"input": TeamMemberRequest}
Response
{
  "data": {
    "GetTeamMember": {
      "success": false,
      "member": TeamMember,
      "error": "NONE"
    }
  }
}

GetTeams

Description

Get a list of teams based on pagination options.

Response

Returns a GetTeamsResponse!

Arguments
Name Description
input - GetTeamsRequest

Example

Query
query GetTeams($input: GetTeamsRequest) {
  GetTeams(input: $input) {
    success
    teams {
      id
      name
      score
      ranking
      members {
        id
        userId
        teamId
        data
        joinedAt
        updatedAt
      }
      data
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": GetTeamsRequest}
Response
{
  "data": {
    "GetTeams": {"success": false, "teams": [Team]}
  }
}

GetTournamentUser

Description

Get a tournament user by ID, or tournament, interval, and user ID.

Response

Returns a GetTournamentUserResponse!

Arguments
Name Description
input - TournamentUserRequest

Example

Query
query GetTournamentUser($input: TournamentUserRequest) {
  GetTournamentUser(input: $input) {
    success
    tournamentUser {
      id
      tournament
      userId
      interval
      score
      ranking
      data
      tournamentStartedAt
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": TournamentUserRequest}
Response
{
  "data": {
    "GetTournamentUser": {
      "success": false,
      "tournamentUser": TournamentUser,
      "error": "NONE"
    }
  }
}

GetTournamentUsers

Description

Get a list of tournament users based on tournament, interval, and user ID.

Response

Returns a GetTournamentUsersResponse!

Arguments
Name Description
input - GetTournamentUsersRequest

Example

Query
query GetTournamentUsers($input: GetTournamentUsersRequest) {
  GetTournamentUsers(input: $input) {
    success
    tournamentUsers {
      id
      tournament
      userId
      interval
      score
      ranking
      data
      tournamentStartedAt
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": GetTournamentUsersRequest}
Response
{
  "data": {
    "GetTournamentUsers": {
      "success": false,
      "tournamentUsers": [TournamentUser],
      "error": "NONE"
    }
  }
}

SearchTeams

Description

Search for teams based on a query string.

Response

Returns a SearchTeamsResponse!

Arguments
Name Description
input - SearchTeamsRequest

Example

Query
query SearchTeams($input: SearchTeamsRequest) {
  SearchTeams(input: $input) {
    success
    teams {
      id
      name
      score
      ranking
      members {
        id
        userId
        teamId
        data
        joinedAt
        updatedAt
      }
      data
      createdAt
      updatedAt
    }
    error
  }
}
Variables
{"input": SearchTeamsRequest}
Response
{
  "data": {
    "SearchTeams": {
      "success": true,
      "teams": [Team],
      "error": "NONE"
    }
  }
}

Mutations

AddEventResult

Description

Add a result to the event for a user, identified by ID. The result is added to the current round.

Response

Returns an AddEventResultResponse!

Arguments
Name Description
input - AddEventResultRequest

Example

Query
mutation AddEventResult($input: AddEventResultRequest) {
  AddEventResult(input: $input) {
    success
    error
  }
}
Variables
{"input": AddEventResultRequest}
Response
{"data": {"AddEventResult": {"success": false, "error": "NONE"}}}

CompleteTask

Description

Complete an task by ID and type.

Response

Returns a CompleteTaskResponse!

Arguments
Name Description
input - TaskRequest

Example

Query
mutation CompleteTask($input: TaskRequest) {
  CompleteTask(input: $input) {
    success
    error
  }
}
Variables
{"input": TaskRequest}
Response
{"data": {"CompleteTask": {"success": false, "error": "NONE"}}}

CreateArena

Description

Create a new arena with the specified name, min players, max players per ticket, max players, and data.

Response

Returns a CreateArenaResponse!

Arguments
Name Description
input - CreateArenaRequest

Example

Query
mutation CreateArena($input: CreateArenaRequest) {
  CreateArena(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateArenaRequest}
Response
{
  "data": {
    "CreateArena": {
      "success": false,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateEvent

Description

Create a new event.

Response

Returns a CreateEventResponse!

Arguments
Name Description
input - CreateEventRequest

Example

Query
mutation CreateEvent($input: CreateEventRequest) {
  CreateEvent(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateEventRequest}
Response
{
  "data": {
    "CreateEvent": {
      "success": true,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateEventRound

Description

Create a new event round by providing an event object and round data.

Response

Returns a CreateEventRoundResponse!

Arguments
Name Description
input - CreateEventRoundRequest

Example

Query
mutation CreateEventRound($input: CreateEventRoundRequest) {
  CreateEventRound(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateEventRoundRequest}
Response
{
  "data": {
    "CreateEventRound": {
      "success": true,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateItem

Description

Create a new item with the specified ID, type, data, and optional expiration date.

Response

Returns a CreateItemResponse!

Arguments
Name Description
input - CreateItemRequest

Example

Query
mutation CreateItem($input: CreateItemRequest) {
  CreateItem(input: $input) {
    success
    error
  }
}
Variables
{"input": CreateItemRequest}
Response
{"data": {"CreateItem": {"success": false, "error": "NONE"}}}

CreateMatchmakingTicket

Description

Create a new matchmaking ticket with the specified matchmaking users, arenas, and data.

Arguments
Name Description
input - CreateMatchmakingTicketRequest

Example

Query
mutation CreateMatchmakingTicket($input: CreateMatchmakingTicketRequest) {
  CreateMatchmakingTicket(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateMatchmakingTicketRequest}
Response
{
  "data": {
    "CreateMatchmakingTicket": {
      "success": true,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateMatchmakingUser

Description

Create a new matchmaking user with the specified client user ID and data.

Response

Returns a CreateMatchmakingUserResponse!

Arguments
Name Description
input - CreateMatchmakingUserRequest

Example

Query
mutation CreateMatchmakingUser($input: CreateMatchmakingUserRequest) {
  CreateMatchmakingUser(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateMatchmakingUserRequest}
Response
{
  "data": {
    "CreateMatchmakingUser": {
      "success": false,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateRecord

Description

Create a new record with the specified name, user ID, record, and data.

Response

Returns a CreateRecordResponse!

Arguments
Name Description
input - CreateRecordRequest

Example

Query
mutation CreateRecord($input: CreateRecordRequest) {
  CreateRecord(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateRecordRequest}
Response
{
  "data": {
    "CreateRecord": {
      "success": false,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateTask

Description

Create a new task with the specified ID, type, data, and optional expiration date.

Response

Returns a CreateTaskResponse!

Arguments
Name Description
input - CreateTaskRequest

Example

Query
mutation CreateTask($input: CreateTaskRequest) {
  CreateTask(input: $input) {
    success
    error
  }
}
Variables
{"input": CreateTaskRequest}
Response
{"data": {"CreateTask": {"success": true, "error": "NONE"}}}

CreateTeam

Description

Create a new team with the specified name, firstMemberId, score, data, and first member data.

Response

Returns a CreateTeamResponse!

Arguments
Name Description
input - CreateTeamRequest

Example

Query
mutation CreateTeam($input: CreateTeamRequest) {
  CreateTeam(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateTeamRequest}
Response
{
  "data": {
    "CreateTeam": {
      "success": false,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

CreateTournamentUser

Description

Create a new tournament user with the specified tournament, interval, user ID, score, and data.

Response

Returns a CreateTournamentUserResponse!

Arguments
Name Description
input - CreateTournamentUserRequest

Example

Query
mutation CreateTournamentUser($input: CreateTournamentUserRequest) {
  CreateTournamentUser(input: $input) {
    success
    id
    error
  }
}
Variables
{"input": CreateTournamentUserRequest}
Response
{
  "data": {
    "CreateTournamentUser": {
      "success": true,
      "id": Uint64,
      "error": "NONE"
    }
  }
}

DeleteEvent

Description

Delete an event by ID or name.

Response

Returns an EventResponse!

Arguments
Name Description
input - EventRequest

Example

Query
mutation DeleteEvent($input: EventRequest) {
  DeleteEvent(input: $input) {
    success
    error
  }
}
Variables
{"input": EventRequest}
Response
{"data": {"DeleteEvent": {"success": true, "error": "NONE"}}}

DeleteEventUser

Description

Delete an event user by ID, or event object and user ID.

Response

Returns an EventUserResponse!

Arguments
Name Description
input - EventUserRequest

Example

Query
mutation DeleteEventUser($input: EventUserRequest) {
  DeleteEventUser(input: $input) {
    success
    error
  }
}
Variables
{"input": EventUserRequest}
Response
{"data": {"DeleteEventUser": {"success": true, "error": "NONE"}}}

DeleteItem

Description

Delete an item by ID and type.

Response

Returns an ItemResponse!

Arguments
Name Description
input - ItemRequest

Example

Query
mutation DeleteItem($input: ItemRequest) {
  DeleteItem(input: $input) {
    success
    error
  }
}
Variables
{"input": ItemRequest}
Response
{"data": {"DeleteItem": {"success": false, "error": "NONE"}}}

DeleteMatch

Description

Delete a match by ID, or matchmaking ticket. This will delete all the tickets and users associated with the match.

Response

Returns a DeleteMatchResponse!

Arguments
Name Description
input - MatchRequest

Example

Query
mutation DeleteMatch($input: MatchRequest) {
  DeleteMatch(input: $input) {
    success
    error
  }
}
Variables
{"input": MatchRequest}
Response
{"data": {"DeleteMatch": {"success": true, "error": "NONE"}}}

DeleteMatchmakingTicket

Description

Delete a matchmaking ticket by ID, or matchmaking user. This will also delete the users associated with the ticket. If this ticket has been matched to a match, it cannot be deleted. Instead the match will need to be deleted.

Arguments
Name Description
input - MatchmakingTicketRequest

Example

Query
mutation DeleteMatchmakingTicket($input: MatchmakingTicketRequest) {
  DeleteMatchmakingTicket(input: $input) {
    success
    error
  }
}
Variables
{"input": MatchmakingTicketRequest}
Response
{"data": {"DeleteMatchmakingTicket": {"success": false, "error": "NONE"}}}

DeleteMatchmakingUser

Description

Delete a matchmaking user by ID, or client user ID. If the user is currently in a matchmaking ticket, it cannot be deleted. Instead the ticket will need to be deleted first.

Response

Returns a DeleteMatchmakingUserResponse!

Arguments
Name Description
input - MatchmakingUserRequest

Example

Query
mutation DeleteMatchmakingUser($input: MatchmakingUserRequest) {
  DeleteMatchmakingUser(input: $input) {
    success
    error
  }
}
Variables
{"input": MatchmakingUserRequest}
Response
{"data": {"DeleteMatchmakingUser": {"success": true, "error": "NONE"}}}

DeleteRecord

Description

Delete a record by ID, or name and user ID.

Response

Returns a DeleteRecordResponse!

Arguments
Name Description
input - RecordRequest

Example

Query
mutation DeleteRecord($input: RecordRequest) {
  DeleteRecord(input: $input) {
    success
    error
  }
}
Variables
{"input": RecordRequest}
Response
{"data": {"DeleteRecord": {"success": false, "error": "NONE"}}}

DeleteTask

Description

Delete an task by ID and type.

Response

Returns a TaskResponse!

Arguments
Name Description
input - TaskRequest

Example

Query
mutation DeleteTask($input: TaskRequest) {
  DeleteTask(input: $input) {
    success
    error
  }
}
Variables
{"input": TaskRequest}
Response
{"data": {"DeleteTask": {"success": true, "error": "NONE"}}}

DeleteTeam

Description

Delete a team by id, name, or member.

Response

Returns a TeamResponse!

Arguments
Name Description
input - TeamRequest

Example

Query
mutation DeleteTeam($input: TeamRequest) {
  DeleteTeam(input: $input) {
    success
    error
  }
}
Variables
{"input": TeamRequest}
Response
{"data": {"DeleteTeam": {"success": true, "error": "NONE"}}}

DeleteTournamentUser

Description

Delete a tournament user by ID, or tournament, interval, and user ID.

Response

Returns a TournamentUserResponse!

Arguments
Name Description
input - TournamentUserRequest

Example

Query
mutation DeleteTournamentUser($input: TournamentUserRequest) {
  DeleteTournamentUser(input: $input) {
    success
    error
  }
}
Variables
{"input": TournamentUserRequest}
Response
{"data": {"DeleteTournamentUser": {"success": false, "error": "NONE"}}}

EndMatch

Description

End a match by ID, or matchmaking ticket.

Response

Returns an EndMatchResponse!

Arguments
Name Description
input - EndMatchRequest

Example

Query
mutation EndMatch($input: EndMatchRequest) {
  EndMatch(input: $input) {
    success
    error
  }
}
Variables
{"input": EndMatchRequest}
Response
{"data": {"EndMatch": {"success": false, "error": "NONE"}}}

JoinTeam

Description

Join a team with the specified team, user id, and data.

Response

Returns a JoinTeamResponse!

Arguments
Name Description
input - JoinTeamRequest

Example

Query
mutation JoinTeam($input: JoinTeamRequest) {
  JoinTeam(input: $input) {
    success
    error
  }
}
Variables
{"input": JoinTeamRequest}
Response
{"data": {"JoinTeam": {"success": true, "error": "NONE"}}}

LeaveTeam

Description

Leave a team by id or user id.

Response

Returns a LeaveTeamResponse!

Arguments
Name Description
input - TeamMemberRequest

Example

Query
mutation LeaveTeam($input: TeamMemberRequest) {
  LeaveTeam(input: $input) {
    success
    error
  }
}
Variables
{"input": TeamMemberRequest}
Response
{"data": {"LeaveTeam": {"success": false, "error": "NONE"}}}

RemoveEventResult

Description

Remove a result for a user in an event round, identified by ID, or event user object and round name. If the round name is not provided, the current round is used.

Response

Returns a RemoveEventResultResponse!

Arguments
Name Description
input - EventRoundUserRequest

Example

Query
mutation RemoveEventResult($input: EventRoundUserRequest) {
  RemoveEventResult(input: $input) {
    success
    error
  }
}
Variables
{"input": EventRoundUserRequest}
Response
{"data": {"RemoveEventResult": {"success": true, "error": "NONE"}}}

SetMatchPrivateServer

Description

Set the private server of the match. Once this is set it cannot be changed, to prevent race conditions from the server.

Response

Returns a SetMatchPrivateServerResponse!

Arguments
Name Description
input - SetMatchPrivateServerRequest

Example

Query
mutation SetMatchPrivateServer($input: SetMatchPrivateServerRequest) {
  SetMatchPrivateServer(input: $input) {
    success
    privateServerId
    error
  }
}
Variables
{"input": SetMatchPrivateServerRequest}
Response
{
  "data": {
    "SetMatchPrivateServer": {
      "success": true,
      "privateServerId": "xyz789",
      "error": "NONE"
    }
  }
}

StartMatch

Description

Start a match by ID, or matchmaking ticket.

Response

Returns a StartMatchResponse!

Arguments
Name Description
input - StartMatchRequest

Example

Query
mutation StartMatch($input: StartMatchRequest) {
  StartMatch(input: $input) {
    success
    error
  }
}
Variables
{"input": StartMatchRequest}
Response
{"data": {"StartMatch": {"success": true, "error": "NONE"}}}

UpdateArena

Description

Update an existing arena with the specified ID, name, min players, max players per ticket, max players, and data.

Response

Returns an UpdateArenaResponse!

Arguments
Name Description
input - UpdateArenaRequest

Example

Query
mutation UpdateArena($input: UpdateArenaRequest) {
  UpdateArena(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateArenaRequest}
Response
{"data": {"UpdateArena": {"success": false, "error": "NONE"}}}

UpdateEvent

Description

Update an existing event, identified by ID or name.

Response

Returns an UpdateEventResponse!

Arguments
Name Description
input - UpdateEventRequest

Example

Query
mutation UpdateEvent($input: UpdateEventRequest) {
  UpdateEvent(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateEventRequest}
Response
{"data": {"UpdateEvent": {"success": true, "error": "NONE"}}}

UpdateEventRound

Description

Update an existing event round, identified by ID, or event object and round name.

Response

Returns an UpdateEventRoundResponse!

Arguments
Name Description
input - UpdateEventRoundRequest

Example

Query
mutation UpdateEventRound($input: UpdateEventRoundRequest) {
  UpdateEventRound(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateEventRoundRequest}
Response
{"data": {"UpdateEventRound": {"success": true, "error": "NONE"}}}

UpdateEventUser

Description

Update an existing event user, identified by ID, or event object and user ID.

Response

Returns an UpdateEventUserResponse!

Arguments
Name Description
input - UpdateEventUserRequest

Example

Query
mutation UpdateEventUser($input: UpdateEventUserRequest) {
  UpdateEventUser(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateEventUserRequest}
Response
{"data": {"UpdateEventUser": {"success": true, "error": "NONE"}}}

UpdateItem

Description

Update an existing item with the specified ID, type, data, and optional expiration date.

Response

Returns an UpdateItemResponse!

Arguments
Name Description
input - UpdateItemRequest

Example

Query
mutation UpdateItem($input: UpdateItemRequest) {
  UpdateItem(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateItemRequest}
Response
{"data": {"UpdateItem": {"success": true, "error": "NONE"}}}

UpdateMatch

Description

Update an existing match with the specified ID, or matchmaking ticket, and data.

Response

Returns an UpdateMatchResponse!

Arguments
Name Description
input - UpdateMatchRequest

Example

Query
mutation UpdateMatch($input: UpdateMatchRequest) {
  UpdateMatch(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateMatchRequest}
Response
{"data": {"UpdateMatch": {"success": true, "error": "NONE"}}}

UpdateMatchmakingTicket

Description

Update an existing matchmaking ticket with the specified ID, or matchmaking user, and data.

Response

Returns an UpdateMatchmakingTicketResponse!

Arguments
Name Description
input - UpdateMatchmakingTicketRequest

Example

Query
mutation UpdateMatchmakingTicket($input: UpdateMatchmakingTicketRequest) {
  UpdateMatchmakingTicket(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateMatchmakingTicketRequest}
Response
{"data": {"UpdateMatchmakingTicket": {"success": true, "error": "NONE"}}}

UpdateMatchmakingUser

Description

Update an existing matchmaking user's data with the specified ID and client user ID.

Response

Returns an UpdateMatchmakingUserResponse!

Arguments
Name Description
input - UpdateMatchmakingUserRequest

Example

Query
mutation UpdateMatchmakingUser($input: UpdateMatchmakingUserRequest) {
  UpdateMatchmakingUser(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateMatchmakingUserRequest}
Response
{"data": {"UpdateMatchmakingUser": {"success": true, "error": "NONE"}}}

UpdateRecord

Description

Update an existing record with the specified ID, name and user ID, record, and data.

Response

Returns an UpdateRecordResponse!

Arguments
Name Description
input - UpdateRecordRequest

Example

Query
mutation UpdateRecord($input: UpdateRecordRequest) {
  UpdateRecord(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateRecordRequest}
Response
{"data": {"UpdateRecord": {"success": true, "error": "NONE"}}}

UpdateTask

Description

Update an existing task with the specified ID, type, data, and optional expiration date.

Response

Returns an UpdateTaskResponse!

Arguments
Name Description
input - UpdateTaskRequest

Example

Query
mutation UpdateTask($input: UpdateTaskRequest) {
  UpdateTask(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateTaskRequest}
Response
{"data": {"UpdateTask": {"success": true, "error": "NONE"}}}

UpdateTeam

Description

Update an existing team's data and/or score.

Response

Returns an UpdateTeamResponse!

Arguments
Name Description
input - UpdateTeamRequest

Example

Query
mutation UpdateTeam($input: UpdateTeamRequest) {
  UpdateTeam(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateTeamRequest}
Response
{"data": {"UpdateTeam": {"success": false, "error": "NONE"}}}

UpdateTeamMember

Description

Update a team member's data.

Response

Returns an UpdateTeamMemberResponse!

Arguments
Name Description
input - UpdateTeamMemberRequest

Example

Query
mutation UpdateTeamMember($input: UpdateTeamMemberRequest) {
  UpdateTeamMember(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateTeamMemberRequest}
Response
{"data": {"UpdateTeamMember": {"success": false, "error": "NONE"}}}

UpdateTournamentUser

Description

Update an existing tournament user with the specified tournament, interval, user ID, score, data, and increment score.

Response

Returns an UpdateTournamentUserResponse!

Arguments
Name Description
input - UpdateTournamentUserRequest

Example

Query
mutation UpdateTournamentUser($input: UpdateTournamentUserRequest) {
  UpdateTournamentUser(input: $input) {
    success
    error
  }
}
Variables
{"input": UpdateTournamentUserRequest}
Response
{"data": {"UpdateTournamentUser": {"success": true, "error": "NONE"}}}

Webhook

Description

Send a webhook using the api as a proxy.

Response

Returns a WebhookResponse!

Arguments
Name Description
input - WebhookRequest

Example

Query
mutation Webhook($input: WebhookRequest) {
  Webhook(input: $input) {
    status
    headers
    body
  }
}
Variables
{"input": WebhookRequest}
Response
{
  "data": {
    "Webhook": {
      "status": Uint32,
      "headers": Struct,
      "body": Struct
    }
  }
}

Types

AddEventResultError

Description

Possible errors when adding an event result.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

CLIENT_USER_ID_REQUIRED

RESULT_REQUIRED

USER_DATA_REQUIRED

ROUND_USER_DATA_REQUIRED

NOT_FOUND

EVENT_ENDED

Example
"NONE"

AddEventResultRequest

Description

Input type for adding an event result. The result field is the time, score, or other value that the user achieved in the event, ranked from low to high. The userData field is a Struct that can contain any additional data that should be stored with the event user object. The roundUserData field is a Struct that can contain any additional data that should be stored with the user result for the round. If the event user already exists the data field will be updated. If the user already has a result for the round, the result and data fields will be updated.

Fields
Input Field Description
event - EventRequest!
clientUserId - Uint64!
result - Uint64!
userData - Struct!
roundUserData - Struct!
Example
{
  "event": EventRequest,
  "clientUserId": Uint64,
  "result": Uint64,
  "userData": Struct,
  "roundUserData": Struct
}

AddEventResultResponse

Description

Response type for adding an event result.

Fields
Field Name Description
success - Boolean!
error - AddEventResultError!
Example
{"success": false, "error": "NONE"}

Arena

Description

An arena.

Fields
Field Name Description
id - Uint64!
name - String!
minPlayers - Uint32!
maxPlayersPerTicket - Uint32!
maxPlayers - Uint32!
data - Struct!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "name": "abc123",
  "minPlayers": Uint32,
  "maxPlayersPerTicket": Uint32,
  "maxPlayers": Uint32,
  "data": Struct,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

ArenaRequest

Description

Input object for requesting an arena by ID, or name.

Fields
Input Field Description
id - Uint64
name - String
Example
{
  "id": Uint64,
  "name": "xyz789"
}

Boolean

Description

The Boolean scalar type represents true or false

Example
true

CompleteTaskError

Description

Possible errors when completing an task.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

ALREADY_COMPLETED

Example
"NONE"

CompleteTaskResponse

Description

Response object for completing a task.

Fields
Field Name Description
success - Boolean!
error - CompleteTaskError!
Example
{"success": false, "error": "NONE"}

CreateArenaError

Description

Possible errors when creating an arena.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

MIN_PLAYERS_REQUIRED

MAX_PLAYERS_PER_TICKET_REQUIRED

MAX_PLAYERS_REQUIRED

MIN_PLAYERS_CANNOT_BE_GREATER_THAN_MAX_PLAYERS

MAX_PLAYERS_PER_TICKET_CANNOT_BE_GREATER_THAN_MAX_PLAYERS

DATA_REQUIRED

ALREADY_EXISTS

Example
"NONE"

CreateArenaRequest

Description

Input object for creating a new arena.

Fields
Input Field Description
name - String!
minPlayers - Uint32!
maxPlayersPerTicket - Uint32!
maxPlayers - Uint32!
data - Struct!
Example
{
  "name": "abc123",
  "minPlayers": Uint32,
  "maxPlayersPerTicket": Uint32,
  "maxPlayers": Uint32,
  "data": Struct
}

CreateArenaResponse

Description

Response object for creating an arena.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateArenaError!
Example
{"success": false, "id": Uint64, "error": "NONE"}

CreateEventError

Description

Possible errors when creating an event.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

DATA_REQUIRED

STARTED_AT_REQUIRED

STARTED_AT_IN_THE_PAST

ROUNDS_REQUIRED

TOO_MANY_ROUNDS

ROUND_NAME_TOO_SHORT

ROUND_NAME_TOO_LONG

ROUND_DATA_REQUIRED

ROUND_ENDED_AT_REQUIRED

ROUND_ENDED_AT_BEFORE_STARTED_AT

ROUND_SCORING_REQUIRED

ALREADY_EXISTS

DUPLICATE_ROUND_NAME

DUPLICATE_ROUND_ENDED_AT

Example
"NONE"

CreateEventRequest

Description

Input type for creating an event. The rounds field is an array of CreateEventRound objects

Fields
Input Field Description
name - String!
data - Struct!
startedAt - Timestamp!
rounds - [CreateEventRound]!
Example
{
  "name": "xyz789",
  "data": Struct,
  "startedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "rounds": [CreateEventRound]
}

CreateEventResponse

Description

Response type for creating an event.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateEventError!
Example
{"success": true, "id": Uint64, "error": "NONE"}

CreateEventRound

Description

Input type for creating an event round. The difference between the endedAt fields of the different rounds signifies the start and end of the round. The scoring field is an array of integers that represent the score for each rank. The first element is the score for the first rank, the second element is the score for the second rank, and so on

Fields
Input Field Description
name - String!
data - Struct!
endedAt - Timestamp!
scoring - [Uint64!]!
Example
{
  "name": "xyz789",
  "data": Struct,
  "endedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "scoring": [Uint64]
}

CreateEventRoundError

Description

Possible errors when creating an event round.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

ROUND_REQUIRED

ROUND_NAME_TOO_SHORT

ROUND_NAME_TOO_LONG

ROUND_DATA_REQUIRED

ROUND_ENDED_AT_REQUIRED

ROUND_ENDED_AT_IN_THE_PAST

ROUND_ENDED_AT_BEFORE_EVENT_STARTED_AT

ROUND_SCORING_REQUIRED

NOT_FOUND

DUPLICATE_ROUND_NAME

DUPLICATE_ROUND_ENDED_AT

Example
"NONE"

CreateEventRoundRequest

Description

Input type for creating an event round.

Fields
Input Field Description
event - EventRequest!
round - CreateEventRound!
Example
{
  "event": EventRequest,
  "round": CreateEventRound
}

CreateEventRoundResponse

Description

Response type for creating an event round.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateEventRoundError!
Example
{"success": false, "id": Uint64, "error": "NONE"}

CreateItemError

Description

Possible errors when creating an item.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

DATA_REQUIRED

ALREADY_EXISTS

Example
"NONE"

CreateItemRequest

Description

Input object for creating a new item. An expiration date can be specified, but it is optional. You are free to use any value as an ID, but an ID and Type combination must be unique in the system.

Fields
Input Field Description
id - ID!
type - String!
data - Struct!
expiresAt - Timestamp
Example
{
  "id": "4",
  "type": "xyz789",
  "data": Struct,
  "expiresAt": "2021-01-02T15:04:05.999999999Z07:00"
}

CreateItemResponse

Description

Response object for creating an item.

Fields
Field Name Description
success - Boolean!
error - CreateItemError!
Example
{"success": false, "error": "NONE"}

CreateMatchmakingTicketError

Description

Possible errors when creating a matchmaking ticket.

Values
Enum Value Description

NONE

MATCHMAKING_USERS_REQUIRED

ARENAS_REQUIRED

DATA_REQUIRED

TOO_MANY_PLAYERS

USER_NOT_FOUND

ARENA_NOT_FOUND

USER_ALREADY_IN_TICKET

Example
"NONE"

CreateMatchmakingTicketRequest

Description

Input object for creating a new matchmaking ticket.

Fields
Input Field Description
matchmakingUsers - [MatchmakingUserRequest]!
arenas - [ArenaRequest]!
data - Struct!
Example
{
  "matchmakingUsers": [MatchmakingUserRequest],
  "arenas": [ArenaRequest],
  "data": Struct
}

CreateMatchmakingTicketResponse

Description

Response object for creating a matchmaking ticket.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateMatchmakingTicketError!
Example
{"success": true, "id": Uint64, "error": "NONE"}

CreateMatchmakingUserError

Description

Possible errors when creating a matchmaking user.

Values
Enum Value Description

NONE

CLIENT_USER_ID_REQUIRED

DATA_REQUIRED

ALREADY_EXISTS

Example
"NONE"

CreateMatchmakingUserRequest

Description

Input object for creating a new matchmaking user. The elo that is set is the default elo for the user across all arenas.

Fields
Input Field Description
clientUserId - Uint64!
elo - Int64!
data - Struct!
Example
{
  "clientUserId": Uint64,
  "elo": Int64,
  "data": Struct
}

CreateMatchmakingUserResponse

Description

Response object for creating a matchmaking user.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateMatchmakingUserError!
Example
{"success": false, "id": Uint64, "error": "NONE"}

CreateRecordError

Description

Possible errors when creating a record.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

USER_ID_REQUIRED

RECORD_REQUIRED

DATA_REQUIRED

RECORD_EXISTS

Example
"NONE"

CreateRecordRequest

Description

Input object for creating a new record.

Fields
Input Field Description
name - String!
userId - Uint64!
record - Uint64!
data - Struct!
Example
{
  "name": "abc123",
  "userId": Uint64,
  "record": Uint64,
  "data": Struct
}

CreateRecordResponse

Description

Response object for creating a record.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateRecordError!
Example
{"success": true, "id": Uint64, "error": "NONE"}

CreateTaskError

Description

Possible errors when creating an task.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

DATA_REQUIRED

ALREADY_EXISTS

Example
"NONE"

CreateTaskRequest

Description

Input object for creating a new task. An expiration date can be specified, but it is optional. You are free to use any value as an ID, but an ID and Type combination must be unique in the system.

Fields
Input Field Description
id - ID!
type - String!
data - Struct!
expiresAt - Timestamp
Example
{
  "id": 4,
  "type": "abc123",
  "data": Struct,
  "expiresAt": "2021-01-02T15:04:05.999999999Z07:00"
}

CreateTaskResponse

Description

Response object for creating an task.

Fields
Field Name Description
success - Boolean!
error - CreateTaskError!
Example
{"success": true, "error": "NONE"}

CreateTeamError

Description

Possible errors when creating a team.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

FIRST_MEMBER_USER_ID_REQUIRED

DATA_REQUIRED

FIRST_MEMBER_DATA_REQUIRED

NAME_TAKEN

FIRST_MEMBER_ALREADY_IN_A_TEAM

Example
"NONE"

CreateTeamRequest

Description

Input object for creating a new team.

Fields
Input Field Description
name - String!
score - Int64
firstMemberUserId - Uint64!
data - Struct!
firstMemberData - Struct!
Example
{
  "name": "xyz789",
  "score": Int64,
  "firstMemberUserId": Uint64,
  "data": Struct,
  "firstMemberData": Struct
}

CreateTeamResponse

Description

Response object for creating a team.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateTeamError!
Example
{"success": false, "id": Uint64, "error": "NONE"}

CreateTournamentUserError

Description

Possible errors when creating a tournament user.

Values
Enum Value Description

NONE

TOURNAMENT_NAME_TOO_SHORT

TOURNAMENT_NAME_TOO_LONG

USER_ID_REQUIRED

DATA_REQUIRED

ALREADY_EXISTS

Example
"NONE"

CreateTournamentUserRequest

Description

Input object for creating a new tournament user.

Fields
Input Field Description
tournament - String!
interval - TournamentInterval!
userId - Uint64!
score - Int64
data - Struct!
Example
{
  "tournament": "xyz789",
  "interval": "DAILY",
  "userId": Uint64,
  "score": Int64,
  "data": Struct
}

CreateTournamentUserResponse

Description

Response object for creating a tournament user.

Fields
Field Name Description
success - Boolean!
id - Uint64
error - CreateTournamentUserError!
Example
{"success": false, "id": Uint64, "error": "NONE"}

DeleteMatchError

Description

Possible errors when deleting a match.

Values
Enum Value Description

NONE

MATCH_ID_OR_MATCHMAKING_TICKET_REQUIRED

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

DeleteMatchResponse

Description

Response object for deleting a match.

Fields
Field Name Description
success - Boolean!
error - DeleteMatchError!
Example
{"success": false, "error": "NONE"}

DeleteMatchmakingTicketError

Description

Possible errors when deleting a matchmaking ticket.

Values
Enum Value Description

NONE

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

NOT_FOUND

TICKET_CURRENTLY_IN_MATCH

Example
"NONE"

DeleteMatchmakingTicketResponse

Description

Response object for deleting a matchmaking ticket.

Fields
Field Name Description
success - Boolean!
error - DeleteMatchmakingTicketError!
Example
{"success": true, "error": "NONE"}

DeleteMatchmakingUserError

Description

Possible errors when deleting a matchmaking user.

Values
Enum Value Description

NONE

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

NOT_FOUND

USER_CURRENTLY_IN_TICKET

USER_CURRENTLY_IN_MATCH

Example
"NONE"

DeleteMatchmakingUserResponse

Description

Response object for deleting a matchmaking user.

Fields
Field Name Description
success - Boolean!
error - DeleteMatchmakingUserError!
Example
{"success": true, "error": "NONE"}

DeleteRecordError

Description

Possible errors when deleting a record.

Values
Enum Value Description

NONE

ID_OR_NAME_USER_ID_REQUIRED

NOT_FOUND

NAME_TOO_SHORT

NAME_TOO_LONG

USER_ID_REQUIRED

Example
"NONE"

DeleteRecordResponse

Description

Response object for deleting a record.

Fields
Field Name Description
success - Boolean!
error - DeleteRecordError!
Example
{"success": true, "error": "NONE"}

EndMatchError

Description

Possible errors when ending a match.

Values
Enum Value Description

NONE

MATCH_ID_OR_MATCHMAKING_TICKET_REQUIRED

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

END_TIME_REQUIRED

NOT_FOUND

ALREADY_ENDED

END_TIME_BEFORE_START_TIME

START_TIME_NOT_SET

Example
"NONE"

EndMatchRequest

Description

Input object for ending a match.

Fields
Input Field Description
match - MatchRequest!
endTime - Timestamp!
Example
{
  "match": MatchRequest,
  "endTime": "2021-01-02T15:04:05.999999999Z07:00"
}

EndMatchResponse

Description

Response object for ending a match.

Fields
Field Name Description
success - Boolean!
error - EndMatchError!
Example
{"success": false, "error": "NONE"}

Event

Description

Type representing an event. The current round is the round that is currently active, it will be the first round if the event has not started yet, or if all rounds have ended it will be null.

Fields
Field Name Description
id - Uint64!
name - String!
currentRoundId - Uint64
currentRoundName - String
data - Struct!
rounds - [EventRound]!
startedAt - Timestamp!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "name": "xyz789",
  "currentRoundId": Uint64,
  "currentRoundName": "xyz789",
  "data": Struct,
  "rounds": [EventRound],
  "startedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

EventError

Description

Possible errors when deleting an event.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

NOT_FOUND

Example
"NONE"

EventRequest

Description

The event object is used to identify an event by ID or name.

Fields
Input Field Description
id - Uint64
name - String
Example
{
  "id": Uint64,
  "name": "xyz789"
}

EventResponse

Description

Response type for deleting an event.

Fields
Field Name Description
success - Boolean!
error - EventError!
Example
{"success": false, "error": "NONE"}

EventRound

Description

Type representing an event round.

Fields
Field Name Description
id - Uint64!
eventId - Uint64!
name - String!
scoring - [Uint64!]!
data - Struct!
endedAt - Timestamp!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "eventId": Uint64,
  "name": "xyz789",
  "scoring": [Uint64],
  "data": Struct,
  "endedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

EventRoundRequest

Description

Input type for getting an event round. If the round name is not provided, the current round is used.

Fields
Input Field Description
id - Uint64
event - EventRequest
roundName - String
Example
{
  "id": Uint64,
  "event": EventRequest,
  "roundName": "abc123"
}

EventRoundUser

Description

Type representing an event round user.

Fields
Field Name Description
id - Uint64!
eventUserId - Uint64!
clientUserId - Uint64!
eventRoundId - Uint64!
result - Uint64!
ranking - Uint64!
data - Struct!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "eventUserId": Uint64,
  "clientUserId": Uint64,
  "eventRoundId": Uint64,
  "result": Uint64,
  "ranking": Uint64,
  "data": Struct,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

EventRoundUserRequest

Description

Input type for removing an event result.

Fields
Input Field Description
id - Uint64!
Example
{"id": Uint64}

EventUser

Description

Type representing an event user.

Fields
Field Name Description
id - Uint64!
eventId - Uint64!
clientUserId - Uint64!
score - Uint64!
ranking - Uint64!
data - Struct!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "eventId": Uint64,
  "clientUserId": Uint64,
  "score": Uint64,
  "ranking": Uint64,
  "data": Struct,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

EventUserError

Description

Possible errors when deleting an event user.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

CLIENT_USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

EventUserRequest

Description

Input type for getting an event user.

Fields
Input Field Description
id - Uint64
event - EventRequest
clientUserId - Uint64
Example
{
  "id": Uint64,
  "event": EventRequest,
  "clientUserId": Uint64
}

EventUserResponse

Description

Response type for deleting an event user.

Fields
Field Name Description
success - Boolean!
error - EventUserError!
Example
{"success": true, "error": "NONE"}

GetArenaError

Description

Possible errors when getting an arena.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ARENA_ID_OR_NAME_REQUIRED

NOT_FOUND

Example
"NONE"

GetArenaResponse

Description

Response object for getting an arena.

Fields
Field Name Description
success - Boolean!
arena - Arena
error - GetArenaError!
Example
{"success": true, "arena": Arena, "error": "NONE"}

GetArenasResponse

Description

Response object for getting a list of arenas.

Fields
Field Name Description
success - Boolean!
arenas - [Arena]
Example
{"success": true, "arenas": [Arena]}

GetEventError

Description

Possible errors when getting an event.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

NOT_FOUND

Example
"NONE"

GetEventRequest

Description

Input type for getting an event. The pagination field is used to paginate the leaderboard

Fields
Input Field Description
event - EventRequest!
pagination - Pagination
Example
{
  "event": EventRequest,
  "pagination": Pagination
}

GetEventResponse

Description

Response type for getting an event.

Fields
Field Name Description
success - Boolean!
event - Event
leaderboard - [EventUser]!
error - GetEventError!
Example
{
  "success": true,
  "event": Event,
  "leaderboard": [EventUser],
  "error": "NONE"
}

GetEventRoundError

Description

Possible errors when getting an event round.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

EVENT_ROUND_OR_ID_REQUIRED

NOT_FOUND

Example
"NONE"

GetEventRoundRequest

Description

Input type for getting an event round. The pagination field is used to paginate the leaderboard

Fields
Input Field Description
round - EventRoundRequest!
pagination - Pagination
Example
{
  "round": EventRoundRequest,
  "pagination": Pagination
}

GetEventRoundResponse

Description

Response type for getting an event round.

Fields
Field Name Description
success - Boolean!
round - EventRound
results - [EventRoundUser]!
error - GetEventRoundError!
Example
{
  "success": true,
  "round": EventRound,
  "results": [EventRoundUser],
  "error": "NONE"
}

GetEventUserError

Description

Possible errors when getting an event user.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

CLIENT_USER_ID_REQUIRED

EVENT_USER_OR_ID_REQUIRED

NOT_FOUND

Example
"NONE"

GetEventUserRequest

Description

Input type for getting an event user.

Fields
Input Field Description
user - EventUserRequest!
pagination - Pagination
Example
{
  "user": EventUserRequest,
  "pagination": Pagination
}

GetEventUserResponse

Description

Response type for getting an event user.

Fields
Field Name Description
success - Boolean!
user - EventUser
results - [EventRoundUser]!
error - GetEventUserError!
Example
{
  "success": true,
  "user": EventUser,
  "results": [EventRoundUser],
  "error": "NONE"
}

GetItemError

Description

Possible errors when getting an item.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

Example
"NONE"

GetItemResponse

Description

Response object for getting an item.

Fields
Field Name Description
success - Boolean!
item - Item
error - GetItemError!
Example
{"success": false, "item": Item, "error": "NONE"}

GetItemsRequest

Description

Input object for requesting a list of items based on type and pagination options.

Fields
Input Field Description
type - String
pagination - Pagination
Example
{
  "type": "xyz789",
  "pagination": Pagination
}

GetItemsResponse

Description

Response object for getting a list of items.

Fields
Field Name Description
success - Boolean!
items - [Item]!
Example
{"success": false, "items": [Item]}

GetMatchError

Description

Possible errors when getting a match.

Values
Enum Value Description

NONE

MATCH_ID_OR_MATCHMAKING_TICKET_REQUIRED

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

GetMatchRequest

Description

Input object for requesting a match by ID, or matchmaking ticket. And pagination options for tickets and users.

Fields
Input Field Description
match - MatchRequest!
ticketPagination - Pagination
userPagination - Pagination
arenaPagination - Pagination
Example
{
  "match": MatchRequest,
  "ticketPagination": Pagination,
  "userPagination": Pagination,
  "arenaPagination": Pagination
}

GetMatchResponse

Description

Response object for getting a match.

Fields
Field Name Description
success - Boolean!
match - Match
error - GetMatchError!
Example
{"success": true, "match": Match, "error": "NONE"}

GetMatchesRequest

Description

Input object for requesting a list of matches based on arena, matchmaking user, status, and pagination options.

Fields
Input Field Description
arena - ArenaRequest
matchmakingUser - MatchmakingUserRequest
statuses - [MatchStatus]
pagination - Pagination
ticketPagination - Pagination
userPagination - Pagination
arenaPagination - Pagination
Example
{
  "arena": ArenaRequest,
  "matchmakingUser": MatchmakingUserRequest,
  "statuses": ["PENDING"],
  "pagination": Pagination,
  "ticketPagination": Pagination,
  "userPagination": Pagination,
  "arenaPagination": Pagination
}

GetMatchesResponse

Description

Response object for getting a list of matches.

Fields
Field Name Description
success - Boolean!
matches - [Match]
Example
{"success": false, "matches": [Match]}

GetMatchmakingTicketError

Description

Possible errors when getting a matchmaking ticket.

Values
Enum Value Description

NONE

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

GetMatchmakingTicketRequest

Description

Input object for requesting a matchmaking ticket by ID, or matchmaking user.

Fields
Input Field Description
matchmakingTicket - MatchmakingTicketRequest!
userPagination - Pagination
arenaPagination - Pagination
Example
{
  "matchmakingTicket": MatchmakingTicketRequest,
  "userPagination": Pagination,
  "arenaPagination": Pagination
}

GetMatchmakingTicketResponse

Description

Response object for getting a matchmaking ticket.

Fields
Field Name Description
success - Boolean!
matchmakingTicket - MatchmakingTicket
error - GetMatchmakingTicketError!
Example
{
  "success": true,
  "matchmakingTicket": MatchmakingTicket,
  "error": "NONE"
}

GetMatchmakingTicketsError

Description

Possible errors when getting a list of matchmaking tickets.

Values
Enum Value Description

NONE

MATCH_NOT_FOUND

USER_NOT_FOUND

Example
"NONE"

GetMatchmakingTicketsRequest

Description

Input object for requesting a list of matchmaking tickets based on match ID, matchmaking user, status, and pagination options.

Fields
Input Field Description
matchId - Uint64
matchmakingUser - MatchmakingUserRequest
statuses - [MatchmakingTicketStatus]
pagination - Pagination
userPagination - Pagination
arenaPagination - Pagination
Example
{
  "matchId": Uint64,
  "matchmakingUser": MatchmakingUserRequest,
  "statuses": ["PENDING"],
  "pagination": Pagination,
  "userPagination": Pagination,
  "arenaPagination": Pagination
}

GetMatchmakingTicketsResponse

Description

Response object for getting a list of matchmaking tickets.

Fields
Field Name Description
success - Boolean!
matchmakingTickets - [MatchmakingTicket]
error - GetMatchmakingTicketsError!
Example
{
  "success": true,
  "matchmakingTickets": [MatchmakingTicket],
  "error": "NONE"
}

GetMatchmakingUserError

Description

Possible errors when getting a matchmaking user.

Values
Enum Value Description

NONE

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

GetMatchmakingUserResponse

Description

Response object for getting a matchmaking user.

Fields
Field Name Description
success - Boolean!
matchmakingUser - MatchmakingUser
error - GetMatchmakingUserError!
Example
{
  "success": false,
  "matchmakingUser": MatchmakingUser,
  "error": "NONE"
}

GetMatchmakingUsersResponse

Description

Response object for getting a list of matchmaking users.

Fields
Field Name Description
success - Boolean!
matchmakingUsers - [MatchmakingUser]
Example
{"success": true, "matchmakingUsers": [MatchmakingUser]}

GetRecordError

Description

Possible errors when getting a record.

Values
Enum Value Description

NONE

ID_OR_NAME_USER_ID_REQUIRED

NOT_FOUND

NAME_TOO_SHORT

NAME_TOO_LONG

USER_ID_REQUIRED

Example
"NONE"

GetRecordResponse

Description

Response object for getting a record.

Fields
Field Name Description
success - Boolean!
record - Record
error - GetRecordError!
Example
{"success": false, "record": Record, "error": "NONE"}

GetRecordsError

Description

Possible errors when getting a list of records.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

Example
"NONE"

GetRecordsRequest

Description

Input object for requesting a list of records based on name, user ID, and pagination options.

Fields
Input Field Description
name - String
userId - Uint64
pagination - Pagination
Example
{
  "name": "xyz789",
  "userId": Uint64,
  "pagination": Pagination
}

GetRecordsResponse

Description

Response object for getting a list of records.

Fields
Field Name Description
success - Boolean!
records - [Record]!
error - GetRecordsError!
Example
{"success": false, "records": [Record], "error": "NONE"}

GetTaskError

Description

Possible errors when getting an task.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

Example
"NONE"

GetTaskResponse

Description

Response object for getting an task.

Fields
Field Name Description
success - Boolean!
task - Task
error - GetTaskError!
Example
{"success": true, "task": Task, "error": "NONE"}

GetTasksRequest

Description

Input object for requesting a list of tasks based on type and pagination options. Can also filter by completion status.

Fields
Input Field Description
type - String
completed - Boolean
pagination - Pagination
Example
{
  "type": "xyz789",
  "completed": true,
  "pagination": Pagination
}

GetTasksResponse

Description

Response object for getting a list of tasks.

Fields
Field Name Description
success - Boolean!
tasks - [Task]!
Example
{"success": true, "tasks": [Task]}

GetTeamError

Description

Possible errors when getting a team.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

NAME_TOO_SHORT

NAME_TOO_LONG

NOT_FOUND

Example
"NONE"

GetTeamMemberError

Description

Possible errors when getting a team member.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

NOT_FOUND

Example
"NONE"

GetTeamMemberResponse

Description

Response object for getting a team member.

Fields
Field Name Description
success - Boolean!
member - TeamMember
error - GetTeamMemberError!
Example
{"success": true, "member": TeamMember, "error": "NONE"}

GetTeamRequest

Description

Input object for getting a team with pagination options for the team members.

Fields
Input Field Description
team - TeamRequest!
pagination - Pagination
Example
{
  "team": TeamRequest,
  "pagination": Pagination
}

GetTeamResponse

Description

Response object for team-related operations.

Fields
Field Name Description
success - Boolean!
team - Team
error - GetTeamError!
Example
{"success": true, "team": Team, "error": "NONE"}

GetTeamsRequest

Description

Input object for getting a list of teams and their members.

Fields
Input Field Description
pagination - Pagination
memberPagination - Pagination
Example
{
  "pagination": Pagination,
  "memberPagination": Pagination
}

GetTeamsResponse

Description

Response object for getting a list of teams and their members.

Fields
Field Name Description
success - Boolean!
teams - [Team]!
Example
{"success": false, "teams": [Team]}

GetTournamentUserError

Description

Possible errors when getting a tournament user.

Values
Enum Value Description

NONE

ID_OR_TOURNAMENT_INTERVAL_USER_ID_REQUIRED

TOURNAMENT_NAME_TOO_SHORT

TOURNAMENT_NAME_TOO_LONG

USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

GetTournamentUserResponse

Description

Response object for getting a tournament user.

Fields
Field Name Description
success - Boolean!
tournamentUser - TournamentUser
error - GetTournamentUserError!
Example
{
  "success": false,
  "tournamentUser": TournamentUser,
  "error": "NONE"
}

GetTournamentUsersError

Description

Possible errors when getting a list of tournament users.

Values
Enum Value Description

NONE

TOURNAMENT_NAME_TOO_SHORT

TOURNAMENT_NAME_TOO_LONG

Example
"NONE"

GetTournamentUsersRequest

Description

Input object for requesting a list of tournament users based on tournament, interval, and user ID.

Fields
Input Field Description
tournament - String
interval - TournamentInterval!
userId - Uint64
pagination - Pagination
Example
{
  "tournament": "xyz789",
  "interval": "DAILY",
  "userId": Uint64,
  "pagination": Pagination
}

GetTournamentUsersResponse

Description

Response object for getting a list of tournament users.

Fields
Field Name Description
success - Boolean!
tournamentUsers - [TournamentUser]!
error - GetTournamentUsersError!
Example
{
  "success": true,
  "tournamentUsers": [TournamentUser],
  "error": "NONE"
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID

Example
4

Int64

Description

A 64-bit signed integer.

Example
Int64

Item

Description

Represents an item.

Fields
Field Name Description
id - ID!
type - String!
data - Struct!
expiresAt - Timestamp
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": 4,
  "type": "abc123",
  "data": Struct,
  "expiresAt": "2021-01-02T15:04:05.999999999Z07:00",
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

ItemError

Description

Possible errors related to items.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

Example
"NONE"

ItemRequest

Description

Input object for requesting an item by ID and type.

Fields
Input Field Description
id - ID!
type - String!
Example
{
  "id": "4",
  "type": "abc123"
}

ItemResponse

Description

Response object for item-related operations.

Fields
Field Name Description
success - Boolean!
error - ItemError!
Example
{"success": false, "error": "NONE"}

JoinTeamError

Description

Possible errors when joining a team.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

NAME_TOO_SHORT

NAME_TOO_LONG

USER_ID_REQUIRED

DATA_REQUIRED

NOT_FOUND

TEAM_FULL

ALREADY_IN_A_TEAM

Example
"NONE"

JoinTeamRequest

Description

Input object for deleting a team.

Fields
Input Field Description
team - TeamRequest!
userId - Uint64!
data - Struct!
Example
{
  "team": TeamRequest,
  "userId": Uint64,
  "data": Struct
}

JoinTeamResponse

Description

Response object for joining a team.

Fields
Field Name Description
success - Boolean!
error - JoinTeamError!
Example
{"success": true, "error": "NONE"}

LeaveTeamError

Description

Possible errors when leaving a team.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

NOT_FOUND

Example
"NONE"

LeaveTeamResponse

Description

Response object for leaving a team.

Fields
Field Name Description
success - Boolean!
error - LeaveTeamError!
Example
{"success": false, "error": "NONE"}

Match

Description

A match. This is where tickets are matched together and played.

Fields
Field Name Description
id - Uint64!
arena - Arena!
tickets - [MatchmakingTicket]!
privateServerId - String
status - MatchStatus!
data - Struct!
lockedAt - Timestamp
startedAt - Timestamp
endedAt - Timestamp
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "arena": Arena,
  "tickets": [MatchmakingTicket],
  "privateServerId": "abc123",
  "status": "PENDING",
  "data": Struct,
  "lockedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "startedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "endedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

MatchRequest

Description

Input object for requesting a match by ID, or matchmaking ticket.

Fields
Input Field Description
id - Uint64
matchmakingTicket - MatchmakingTicketRequest
Example
{
  "id": Uint64,
  "matchmakingTicket": MatchmakingTicketRequest
}

MatchStatus

Description

Possible statuses for a match. Pending means it's waiting to be started. Started means it's currently being played. Ended means the match has ended.

Values
Enum Value Description

PENDING

STARTED

ENDED

Example
"PENDING"

MatchmakingTicket

Description

A matchmaking ticket. This is where users are grouped together into parties, and then matched with other tickets. These tickets will exist until they are deleted prior to being matched with a match, or the match is deleted.

Fields
Field Name Description
id - Uint64!
matchmakingUsers - [MatchmakingUser]!
arenas - [Arena]!
matchId - Uint64
status - MatchmakingTicketStatus!
data - Struct!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "matchmakingUsers": [MatchmakingUser],
  "arenas": [Arena],
  "matchId": Uint64,
  "status": "PENDING",
  "data": Struct,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

MatchmakingTicketRequest

Description

Input object for requesting a matchmaking ticket by ID, or matchmaking user.

Fields
Input Field Description
id - Uint64
matchmakingUser - MatchmakingUserRequest
Example
{
  "id": Uint64,
  "matchmakingUser": MatchmakingUserRequest
}

MatchmakingTicketStatus

Description

Possible statuses for a matchmaking ticket. Pending means it's waiting to be matched. Matched means it's matched with other tickets, the match may have started or may not have. Ended means the match has ended.

Values
Enum Value Description

PENDING

MATCHED

ENDED

Example
"PENDING"

MatchmakingUser

Description

A matchmaking user. Users are not long lived, they are created at the same time as a matchmaking ticket usually, but can be deleted as long as they are not yet part of a ticket. After that the only way to delete a user is to delete the ticket they are in.

Fields
Field Name Description
id - Uint64!
clientUserId - Uint64!
data - Struct!
elo - Int64!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "clientUserId": Uint64,
  "data": Struct,
  "elo": Int64,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

MatchmakingUserRequest

Description

Input object for requesting a matchmaking user by ID, or client user ID.

Fields
Input Field Description
id - Uint64
clientUserId - Uint64
Example
{
  "id": Uint64,
  "clientUserId": Uint64
}

NameUserId

Description

Input object for requesting a record by name and user ID.

Fields
Input Field Description
name - String!
userId - Uint64!
Example
{
  "name": "abc123",
  "userId": Uint64
}

Pagination

Description

Input object for pagination. The max field is the maximum number of items to return, and the page field is the page number to return.

Fields
Input Field Description
max - Uint32
page - Uint64
Example
{"max": Uint32, "page": Uint64}

Record

Description

The record object, ranked by record lowest to highest for each record name.

Fields
Field Name Description
id - Uint64!
name - String!
userId - Uint64!
record - Uint64!
ranking - Uint64!
data - Struct!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "name": "xyz789",
  "userId": Uint64,
  "record": Uint64,
  "ranking": Uint64,
  "data": Struct,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

RecordRequest

Description

Input object for requesting a record by ID, or name and user ID.

Fields
Input Field Description
id - Uint64
nameUserId - NameUserId
Example
{
  "id": Uint64,
  "nameUserId": NameUserId
}

RemoveEventResultError

Description

Possible errors when removing an event result.

Values
Enum Value Description

NONE

ID_REQUIRED

NOT_FOUND

EVENT_ENDED

Example
"NONE"

RemoveEventResultResponse

Description

Response type for removing an event result.

Fields
Field Name Description
success - Boolean!
error - RemoveEventResultError!
Example
{"success": false, "error": "NONE"}

SearchTeamsError

Description

Possible errors when searching for teams.

Values
Enum Value Description

NONE

QUERY_TOO_SHORT

QUERY_TOO_LONG

Example
"NONE"

SearchTeamsRequest

Description

Input object for searching for teams based on a query string.

Fields
Input Field Description
query - String!
pagination - Pagination
memberPagination - Pagination
Example
{
  "query": "abc123",
  "pagination": Pagination,
  "memberPagination": Pagination
}

SearchTeamsResponse

Description

Response object for searching for teams.

Fields
Field Name Description
success - Boolean!
teams - [Team]!
error - SearchTeamsError!
Example
{"success": false, "teams": [Team], "error": "NONE"}

SetMatchPrivateServerError

Description

Possible errors when setting the private server of the match.

Values
Enum Value Description

NONE

MATCH_ID_OR_MATCHMAKING_TICKET_REQUIRED

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

PRIVATE_SERVER_ID_REQUIRED

PRIVATE_SERVER_ALREADY_SET

NOT_FOUND

Example
"NONE"

SetMatchPrivateServerRequest

Description

Input object for setting the private server of the match.

Fields
Input Field Description
match - MatchRequest!
privateServerId - String!
Example
{
  "match": MatchRequest,
  "privateServerId": "abc123"
}

SetMatchPrivateServerResponse

Description

Response object for setting the private server of the match. If we receive a 'NONE' error or a 'PRIVATE_SERVER_ALREADY_SET' error, then a private server ID will be returned.

Fields
Field Name Description
success - Boolean!
privateServerId - String
error - SetMatchPrivateServerError!
Example
{
  "success": true,
  "privateServerId": "abc123",
  "error": "NONE"
}

StartMatchError

Description

Possible errors when starting a match.

Values
Enum Value Description

NONE

MATCH_ID_OR_MATCHMAKING_TICKET_REQUIRED

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

START_TIME_REQUIRED

INVALID_START_TIME

START_TIME_TOO_SOON

NOT_FOUND

NOT_ENOUGH_PLAYERS_TO_START

ALREADY_HAS_START_TIME

PRIVATE_SERVER_NOT_SET

Example
"NONE"

StartMatchRequest

Description

Input object for starting a match.

Fields
Input Field Description
match - MatchRequest!
startTime - Timestamp!
Example
{
  "match": MatchRequest,
  "startTime": "2021-01-02T15:04:05.999999999Z07:00"
}

StartMatchResponse

Description

Response object for starting a match.

Fields
Field Name Description
success - Boolean!
error - StartMatchError!
Example
{"success": false, "error": "NONE"}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text

Example
"xyz789"

Struct

Description

A struct type defines a JSON object.

Example
Struct

Task

Description

Represents an task.

Fields
Field Name Description
id - ID!
type - String!
data - Struct!
expiresAt - Timestamp
completedAt - Timestamp
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": 4,
  "type": "abc123",
  "data": Struct,
  "expiresAt": "2021-01-02T15:04:05.999999999Z07:00",
  "completedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

TaskError

Description

Possible errors related to tasks.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

Example
"NONE"

TaskRequest

Description

Input object for requesting an task by ID and type.

Fields
Input Field Description
id - ID!
type - String!
Example
{"id": 4, "type": "xyz789"}

TaskResponse

Description

Response object for task-related operations.

Fields
Field Name Description
success - Boolean!
error - TaskError!
Example
{"success": true, "error": "NONE"}

Team

Description

A team in the system. The ranking is based on the score highest to lowest.

Fields
Field Name Description
id - Uint64!
name - String!
score - Int64!
ranking - Uint64!
members - [TeamMember]!
data - Struct!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "name": "abc123",
  "score": Int64,
  "ranking": Uint64,
  "members": [TeamMember],
  "data": Struct,
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

TeamError

Description

Possible errors when deleting a team.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

NAME_TOO_SHORT

NAME_TOO_LONG

NOT_FOUND

Example
"NONE"

TeamMember

Description

A member of a team.

Fields
Field Name Description
id - Uint64!
userId - Uint64!
teamId - Uint64!
data - Struct!
joinedAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "userId": Uint64,
  "teamId": Uint64,
  "data": Struct,
  "joinedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

TeamMemberRequest

Description

Input object for requesting a team member by id or user id.

Fields
Input Field Description
id - Uint64
userId - Uint64
Example
{"id": Uint64, "userId": Uint64}

TeamRequest

Description

Input object for requesting a team by id, name or member.

Fields
Input Field Description
id - Uint64
name - String
member - TeamMemberRequest
Example
{
  "id": Uint64,
  "name": "xyz789",
  "member": TeamMemberRequest
}

TeamResponse

Description

Response object for a team-related operation.

Fields
Field Name Description
success - Boolean!
error - TeamError!
Example
{"success": false, "error": "NONE"}

Timestamp

Description

A string representing a timestamp in RFC3339 (nano) format.

Example
"2021-01-02T15:04:05.999999999Z07:00"

TournamentInterval

Description

Different intervals for tournaments. The tournament interval is used to determine how often a tournament is reset

Values
Enum Value Description

DAILY

WEEKLY

MONTHLY

UNLIMITED

Example
"DAILY"

TournamentIntervalUserId

Description

Input object for requesting a tournament user by tournament, interval, and user ID.

Fields
Input Field Description
tournament - String!
interval - TournamentInterval!
userId - Uint64!
Example
{
  "tournament": "xyz789",
  "interval": "DAILY",
  "userId": Uint64
}

TournamentUser

Description

Type representing a tournament user. Tournaments are created by creating a the first tournament user with a specific tournament, interval, and user ID.

Fields
Field Name Description
id - Uint64!
tournament - String!
userId - Uint64!
interval - TournamentInterval!
score - Int64!
ranking - Uint64!
data - Struct!
tournamentStartedAt - Timestamp!
createdAt - Timestamp!
updatedAt - Timestamp!
Example
{
  "id": Uint64,
  "tournament": "abc123",
  "userId": Uint64,
  "interval": "DAILY",
  "score": Int64,
  "ranking": Uint64,
  "data": Struct,
  "tournamentStartedAt": "2021-01-02T15:04:05.999999999Z07:00",
  "createdAt": "2021-01-02T15:04:05.999999999Z07:00",
  "updatedAt": "2021-01-02T15:04:05.999999999Z07:00"
}

TournamentUserError

Description

Possible errors when requesting a tournament user without returning object.

Values
Enum Value Description

NONE

ID_OR_TOURNAMENT_INTERVAL_USER_ID_REQUIRED

TOURNAMENT_NAME_TOO_SHORT

TOURNAMENT_NAME_TOO_LONG

USER_ID_REQUIRED

NOT_FOUND

Example
"NONE"

TournamentUserRequest

Description

Input object for requesting a tournament user by ID, or tournament, interval, and user ID.

Fields
Input Field Description
id - Uint64
tournamentIntervalUserId - TournamentIntervalUserId
Example
{
  "id": Uint64,
  "tournamentIntervalUserId": TournamentIntervalUserId
}

TournamentUserResponse

Description

Response object for requesting a tournament user without returning object.

Fields
Field Name Description
success - Boolean!
error - TournamentUserError!
Example
{"success": true, "error": "NONE"}

Uint32

Description

A 32-bit unsigned integer.

Example
Uint32

Uint64

Description

A 64-bit unsigned integer.

Example
Uint64

UpdateArenaError

Description

Possible errors when updating an arena.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ARENA_ID_OR_NAME_REQUIRED

NO_UPDATE_SPECIFIED

IF_CAPACITY_CHANGED_MUST_CHANGE_ALL_PLAYERS

MIN_PLAYERS_CANNOT_BE_GREATER_THAN_MAX_PLAYERS

MAX_PLAYERS_PER_TICKET_CANNOT_BE_GREATER_THAN_MAX_PLAYERS

ARENA_CURRENTLY_IN_USE

NOT_FOUND

Example
"NONE"

UpdateArenaRequest

Description

Input object for updating an existing arena.

Fields
Input Field Description
arena - ArenaRequest!
minPlayers - Uint32
maxPlayersPerTicket - Uint32
maxPlayers - Uint32
data - Struct
Example
{
  "arena": ArenaRequest,
  "minPlayers": Uint32,
  "maxPlayersPerTicket": Uint32,
  "maxPlayers": Uint32,
  "data": Struct
}

UpdateArenaResponse

Description

Response object for updating an arena.

Fields
Field Name Description
success - Boolean!
error - UpdateArenaError!
Example
{"success": false, "error": "NONE"}

UpdateEventError

Description

Possible errors when updating an event.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

DATA_REQUIRED

NOT_FOUND

Example
"NONE"

UpdateEventRequest

Description

Input type for updating an event.

Fields
Input Field Description
event - EventRequest!
data - Struct!
Example
{
  "event": EventRequest,
  "data": Struct
}

UpdateEventResponse

Description

Response type for updating an event.

Fields
Field Name Description
success - Boolean!
error - UpdateEventError!
Example
{"success": true, "error": "NONE"}

UpdateEventRoundError

Description

Possible errors when updating an event round.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

EVENT_ROUND_OR_ID_REQUIRED

NO_UPDATE_SPECIFIED

NOT_FOUND

Example
"NONE"

UpdateEventRoundRequest

Description

Input type for updating an event round.

Fields
Input Field Description
round - EventRoundRequest!
data - Struct
scoring - [Uint64!]
Example
{
  "round": EventRoundRequest,
  "data": Struct,
  "scoring": [Uint64]
}

UpdateEventRoundResponse

Description

Response type for updating an event round.

Fields
Field Name Description
success - Boolean!
error - UpdateEventRoundError!
Example
{"success": true, "error": "NONE"}

UpdateEventUserError

Description

Possible errors when updating an event user.

Values
Enum Value Description

NONE

NAME_TOO_SHORT

NAME_TOO_LONG

ID_OR_NAME_REQUIRED

CLIENT_USER_ID_REQUIRED

EVENT_USER_OR_ID_REQUIRED

DATA_REQUIRED

NOT_FOUND

Example
"NONE"

UpdateEventUserRequest

Description

Input type for updating an event user.

Fields
Input Field Description
user - EventUserRequest!
data - Struct!
Example
{
  "user": EventUserRequest,
  "data": Struct
}

UpdateEventUserResponse

Description

Response type for updating an event user.

Fields
Field Name Description
success - Boolean!
error - UpdateEventUserError!
Example
{"success": true, "error": "NONE"}

UpdateItemError

Description

Possible errors when updating an item.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

DATA_REQUIRED

Example
"NONE"

UpdateItemRequest

Description

Input object for updating an item.

Fields
Input Field Description
item - ItemRequest!
data - Struct!
Example
{
  "item": ItemRequest,
  "data": Struct
}

UpdateItemResponse

Description

Response object for updating an item.

Fields
Field Name Description
success - Boolean!
error - UpdateItemError!
Example
{"success": false, "error": "NONE"}

UpdateMatchError

Description

Possible errors when updating a match.

Values
Enum Value Description

NONE

MATCH_ID_OR_MATCHMAKING_TICKET_REQUIRED

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

DATA_REQUIRED

NOT_FOUND

Example
"NONE"

UpdateMatchRequest

Description

Input object for updating an existing match.

Fields
Input Field Description
match - MatchRequest!
data - Struct!
Example
{
  "match": MatchRequest,
  "data": Struct
}

UpdateMatchResponse

Description

Response object for updating a match.

Fields
Field Name Description
success - Boolean!
error - UpdateMatchError!
Example
{"success": true, "error": "NONE"}

UpdateMatchmakingTicketError

Description

Possible errors when updating a matchmaking ticket.

Values
Enum Value Description

NONE

MATCHMAKING_TICKET_ID_OR_MATCHMAKING_USER_REQUIRED

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

DATA_REQUIRED

NOT_FOUND

Example
"NONE"

UpdateMatchmakingTicketRequest

Description

Input object for updating an existing matchmaking ticket.

Fields
Input Field Description
matchmakingTicket - MatchmakingTicketRequest!
data - Struct!
Example
{
  "matchmakingTicket": MatchmakingTicketRequest,
  "data": Struct
}

UpdateMatchmakingTicketResponse

Description

Response object for updating a matchmaking ticket.

Fields
Field Name Description
success - Boolean!
error - UpdateMatchmakingTicketError!
Example
{"success": true, "error": "NONE"}

UpdateMatchmakingUserError

Description

Possible errors when updating a matchmaking user.

Values
Enum Value Description

NONE

MATCHMAKING_USER_ID_OR_CLIENT_USER_ID_REQUIRED

DATA_REQUIRED

NOT_FOUND

Example
"NONE"

UpdateMatchmakingUserRequest

Description

Input object for updating an existing matchmaking user.

Fields
Input Field Description
matchmakingUser - MatchmakingUserRequest!
data - Struct
Example
{
  "matchmakingUser": MatchmakingUserRequest,
  "data": Struct
}

UpdateMatchmakingUserResponse

Description

Response object for updating a matchmaking user.

Fields
Field Name Description
success - Boolean!
error - UpdateMatchmakingUserError!
Example
{"success": false, "error": "NONE"}

UpdateRecordError

Description

Possible errors when updating a record.

Values
Enum Value Description

NONE

ID_OR_NAME_USER_ID_REQUIRED

NOT_FOUND

NAME_TOO_SHORT

NAME_TOO_LONG

USER_ID_REQUIRED

NO_UPDATE_SPECIFIED

Example
"NONE"

UpdateRecordRequest

Description

Input object for updating an existing record.

Fields
Input Field Description
request - RecordRequest!
record - Uint64
data - Struct
Example
{
  "request": RecordRequest,
  "record": Uint64,
  "data": Struct
}

UpdateRecordResponse

Description

Response object for updating a record.

Fields
Field Name Description
success - Boolean!
error - UpdateRecordError!
Example
{"success": false, "error": "NONE"}

UpdateTaskError

Description

Possible errors when updating an task.

Values
Enum Value Description

NONE

ID_REQUIRED

TYPE_REQUIRED

NOT_FOUND

DATA_REQUIRED

Example
"NONE"

UpdateTaskRequest

Description

Input object for updating an task.

Fields
Input Field Description
task - TaskRequest!
data - Struct!
Example
{
  "task": TaskRequest,
  "data": Struct
}

UpdateTaskResponse

Description

Response object for updating an task.

Fields
Field Name Description
success - Boolean!
error - UpdateTaskError!
Example
{"success": true, "error": "NONE"}

UpdateTeamError

Description

Possible errors when updating a team.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

NAME_TOO_SHORT

NAME_TOO_LONG

NO_UPDATE_SPECIFIED

INCREMENT_SCORE_NOT_SPECIFIED

NOT_FOUND

Example
"NONE"

UpdateTeamMemberError

Description

Possible errors when updating a team member.

Values
Enum Value Description

NONE

NO_FIELD_SPECIFIED

DATA_REQUIRED

NOT_FOUND

Example
"NONE"

UpdateTeamMemberRequest

Description

Input object for updating a team member.

Fields
Input Field Description
member - TeamMemberRequest!
data - Struct!
Example
{
  "member": TeamMemberRequest,
  "data": Struct
}

UpdateTeamMemberResponse

Description

Response object for updating a team member.

Fields
Field Name Description
success - Boolean!
error - UpdateTeamMemberError!
Example
{"success": true, "error": "NONE"}

UpdateTeamRequest

Description

Input object for deleting a team.

Fields
Input Field Description
team - TeamRequest!
data - Struct
score - Int64
incrementScore - Boolean
Example
{
  "team": TeamRequest,
  "data": Struct,
  "score": Int64,
  "incrementScore": false
}

UpdateTeamResponse

Description

Response object for updating a team.

Fields
Field Name Description
success - Boolean!
error - UpdateTeamError!
Example
{"success": true, "error": "NONE"}

UpdateTournamentUserError

Description

Possible errors when updating a tournament user.

Values
Enum Value Description

NONE

ID_OR_TOURNAMENT_INTERVAL_USER_ID_REQUIRED

TOURNAMENT_NAME_TOO_SHORT

TOURNAMENT_NAME_TOO_LONG

USER_ID_REQUIRED

NOT_FOUND

NO_UPDATE_SPECIFIED

INCREMENT_SCORE_NOT_SPECIFIED

Example
"NONE"

UpdateTournamentUserRequest

Description

Input object for updating a tournament user. Increment score flag is used to determine if the score should be incremented by the specified score.

Fields
Input Field Description
tournament - TournamentUserRequest!
data - Struct
score - Int64
incrementScore - Boolean
Example
{
  "tournament": TournamentUserRequest,
  "data": Struct,
  "score": Int64,
  "incrementScore": false
}

UpdateTournamentUserResponse

Description

Response object for updating a tournament user.

Fields
Field Name Description
success - Boolean!
error - UpdateTournamentUserError!
Example
{"success": true, "error": "NONE"}

WebhookRequest

Description

Input object for sending a webhook.

Fields
Input Field Description
uri - String!
method - String!
headers - Struct!
body - Struct!
Example
{
  "uri": "abc123",
  "method": "xyz789",
  "headers": Struct,
  "body": Struct
}

WebhookResponse

Description

Response object for sending a webhook.

Fields
Field Name Description
status - Uint32!
headers - Struct!
body - Struct!
Example
{
  "status": Uint32,
  "headers": Struct,
  "body": Struct
}