Skip to main content
This topic covers the following:

Before you begin

Getting the achievements list

To get the achievements for the running title, call XblAchievementsGetAchievementsForTitleIdAsync, as follows.

Calling XblAchievementsGetAchievementsForTitleIdAsync

C++
For more information, see the following: Return to the top of this topic.

Getting the next page of achievements results

There might be more pages of achievements. To check, call XblAchievementsResultHasNext. To get the next page, call XblAchievementsResultGetNextAsync with the current result handle, and then call XblAchievementsResultGetNextResult in the callback. XblAchievementsResultGetNextResult returns a new result handle. Each result handle must be closed separately. Passing 0 for maxItems attempts to retrieve all items, but the service can provide a default page size and can return fewer items than requested even when more pages remain. Always check XblAchievementsResultHasNext instead of assuming that one call returns every achievement.

Processing every page of results

In the following example, instead of closing the result handle from XblAchievementsGetAchievementsForTitleIdResult, pass it to ProcessAchievementsPage. The function takes ownership of the handle that you pass to it and closes that handle exactly once. The current handle stays open until the request for the next page completes. C++
For more information, see the following: Return to the top of this topic.

Getting a single achievement

To get a single achievement, call XblAchievementsGetAchievementAsync, as follows. Flat C API
For more information, see the following: Return to the top of this topic.
Last modified on October 29, 2026