The Challengermode Client API enables you to build your ideal user experience for how to display and interact withChallengermode driven competitions. It reduces the complex structure of advanced competitive formats into simple and easy to understand structures, allowing you to focus on building a good user experience.The API contains a few different components which enables you to build your own Challengermode client that your users interact with.
1
Content Discovery
With Query APIs you can retrieve data from Challengermode and display in your app, letting the user view and browse competitions.For example, using
me query you can retrieve a list of the user's OwnTournamentParticipation for all tournaments that the user is part of.
3
User Interaction
Beyond displaying data, Mutation APIs allows users to perform actions such as joining or confirming their participation in a competition.For example, you can let the user sign up to a tournament by using
Use Subscription APIs to retrieve data in real-time, giving your users best possible experience by dynamically updating data as soon as it changes.For example, using
tournamentParticipationUpdated, you can build the best possible user experience by updating the user's tournament participation in real-time.
How to integrate
There are many ways to combine various APIs to build your ideal user experience for competitive play, and it may vary depending on what format's you wish to offer your users.All API's will use either
PAT
or
BOT
authentication which is described in details in the Auth API.
Note that for a fully white-label experience, you will want to use a non-interactive OAuth flow which allows you to create user's in the background.
Tournaments
Building a tournament experience generally involve the 4 steps outlined in the overview.
1
Tournament Browser
To let your users find tournaments, start by building a Tournament Browser. Use either
me to retrieve a list of the user's OwnTournamentParticipation allowing you to show they player's own activity and state in the tournaments, including their final placement.
3
User Interaction
•
Join tournament
When you find a tournament for the user, let them sign up to the tournament using
During a tournament, the user is also usually required to confirm their participation in the tournament and individual matchesthroughout the tournament. Look at the list of available actions in their TournamentLobbyFeedback that can be found on their OwnTournamentParticipationto determine when to call
Note that you can refer the users to theChallengermodeapp to perform actions too, for example during development.
4
Real-time Updates
For a real-time experience, you can use the subscription variants of the queries described above to get a push everytime anything included in your query is updated.We recommend starting with the
tournamentParticipationUpdated since this is most impactful for the end user experience. For example, looking at the user's TournamentLobbyFeedback, they can confirm their participation in their next match as soon asCONFIRM_MATCH turns up in their list of allowed actions.
Cups
A cups experience is very similar to a tournament experience, and mainly differs when it comes to discoverability.
joinCup. Note that here you have the option to join with a whole team through their team leader.
•
Confirm participation
A cup does not require any additional user confirmation.
4
Real-time Updates
For a real-time experience, refer to the section on real-time tournaments!
Tournament Matchmaking
Tournament matchmaking works exactly the same as regular matchmaking queues except that you'll find a Tournament in the Offering from a particular matchmaking Queue, instead of an individual match.From there, the user-experience is the same as a regular tournament integration except that you will not need any tournament browser.
1
Browse matchmaking queues
Just as regular matchmaking, find matchmaking queues using either
Joining a Tournament matchmaking queue and accepting/declining offerings works exactly the same as for regular matchmaking.On top of this, refer to building a Tournament integration to see how to let the player interact with the tournament as the tournament is running.
Note however that, when the player accepts their Tournament offering they will already be confirmed as participating in the tournament.
4
Real-time Updates
To make the matchmaking experience real-time, you can use the
matchmakingQueueUpdated, you can make the matchmaking experience real-time, which is a very good experience for the end user as you'll get pushes for matchmaking offerings as soon as they are available.
Get started
The most popular use case for this API is to combine it with the Game Integration API to build a complete competitive experience directly within a game. But the possibilities don't end there. Using the Challengermode Client API, you can integrate Challengermode data and functionality into any third-party website or client, be it for the purpose of showing competitions on your own website, to provide a stats website, or to build an esports planner tool.The Challengermode Client API is a GraphQL API. To get started using the API, refer to the section Using the API.
To avoid exceeding rate limits, we recommend fetching and distributing data via a central backend with a caching layer.