Develop

Challenges for Meta VR Apps

Updated: Sep 24, 2026
Notice of feature support change
The Scoreboard app has been officially deprecated as of December 20th, 2024. This change will not break existing apps using the Challenges API.
This is a Platform SDK feature requiring Data Use Checkup
To use this or any other Platform SDK feature, you must complete a Data Use Checkup (DUC). The DUC ensures that you comply with Developer Policies. It requires an administrator from your team to certify that your use of user data aligns with platform guidelines. Until the app review team reviews and approves your DUC, platform features are only available for test users.
Apps for children can't use Platform SDK features
If you self-certify your app as primarily for children under 13, you must avoid using Platform SDK features. This restriction ensures compliance with age-specific guidelines. To ensure compliance, the Data Use Checkup for your app is disabled.
Amplify social interactions in your application with Challenges. Challenges leverage Destinations and Group Presence to create shareable links that allow players to compete directly based on score. Sending Challenge notifications brings new fun to the games your players already love.
Players can repeatedly challenge strangers and get to know them through this interaction. These Challenges are also asynchronous, so players aren’t restricted to being online at the same time.
Challenges can be ranked by highest or lowest scores within a time period. Any application that uses Leaderboards gets Challenges for free.
See more about implementing Leaderboards in Platform Services to get started with Leaderboards and Challenges.
User Data Warning
Avoid using any personal identifying information.

Challenge Client APIs

Get Challenge

This method retrieves detailed information for a single challenge by providing the challenge ID.
Platform.Challenges.Get()
If no error occurs, this method returns a challenge.

Get Challenges Entries

This method retrieves a list of entries for a specific challenge, with options to filter and limit the results.
Platform.Challenges.GetEntries()
If no error occurs, this method returns a list of challenge entries.

Get Challenges Entries After a Given Rank

This method retrieves an array of challenge entries after a given rank.
Platform.Challenges.GetEntriesAfterRank()
If no error occurs, this method returns a list of challenge entries.

Get Challenge Entries By Ids

This method retrieves an array of challenge entries based on the given ids.
Platform.Challenges.GetEntriesByIds()
If no error occurs, this method returns a list of challenge entries.

Get More Challenge Entries

Use the following methods to check whether any of the GetEntries results above have additional pages of entries.
ChallengeEntryList.HasNextPage or ChallengeEntryList.HasPreviousPage
If additional entries exist, use the following methods to retrieve them.
Platform.Challenges.GetNextEntries() or Platform.Challenges.GetPreviousEntries()
If no error occurs, this method returns a list of challenge entries.

Join a Challenge

This method lets players join a challenge.
Platform.Challenges.Join()
If no error occurs, this method returns the updated challenge.

Leave a Challenge

This method lets players leave a challenge.
Platform.Challenges.Leave()
If no error occurs, this method returns the updated challenge.

Decline a Challenge Invite

This method declines a challenge invite.
Platform.Challenges.DeclineInvite()
If no error occurs, this method returns the updated challenge.

Get A List of Challenges In Your Application

This method retrieves a list of challenges in your application. By default, it returns only active challenges.
Platform.Challenges.GetList()
The following optional parameters are available through ChallengeOptions.
Parameter
Param type
Description
Type
leaderboardName
Query
The name of the leaderboard this Challenge will be associated with.
string
include_active_challenges
Query
Optional. Include challenges that are ongoing.
Boolean
include_past_challenges
Query
Optional. Include challenges with end dates in the past.
Boolean
include_future_challenges
Query
Optional. Include challenges with start dates in the future.
Boolean
viewer_filter
Query
Optional. Default is ChallengeViewerFilter.AllVisible.
  • ChallengeViewerFilter.AllVisible - Returns all invited and participating challenges that are public or invite-only. Excludes private challenges.
  • ChallengeViewerFilter.Participating - Returns challenges the viewer is participating in.
  • ChallengeViewerFilter.Invited - Returns challenges the viewer is invited to.
  • ChallengeViewerFilter.ParticipatingOrInvited - Returns challenges the viewer is either participating in or invited to.
Enum, value "ChallengeViewerFilter.AllVisible", "ChallengeViewerFilter.Participating", "ChallengeViewerFilter.Invited", or "ChallengeViewerFilter.ParticipatingOrInvited"
This method also supports pagination through Platform.Challenges.GetNextChallenges() or Platform.Challenges.GetPreviousChallenges().

Server to Server APIs

For details on challenge server-to-server APIs, see Challenges Server to Server APIs.