This how-to retrieves Progressions and their tiers, as defined for your game in the Web Console.
Prerequisites
- Unity, Unreal, or Godot SDK installed and configured in your project (not required for REST).
- An active Player session (see Authentication).
- At least one Progression created in the Web Console.
Retrieve a Progression
Get a Single Progression
string progressionKey = "mage";
LootLockerSDKManager.GetProgression(progressionKey, response =>{ if (!response.success) { Debug.Log("Failed: " + response.Error); }
// Output the name of the fetched progression Debug.Log(response.name);});See the Reference Documentation for the full response.

Connect the Progression Key to retrieve, then trigger the node from an event such as a button click. The response includes the Progression's ID, key, name, and whether it's active.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Get All Progressions
LootLockerSDKManager.GetProgressions(response =>{ if (!response.success) { Debug.Log("Failed: " + response.Error); }
if (!response.items.Any()) { Debug.Log("Your game does not have any progressions, create one in the Web Console"); }
// Output the name for all progressions foreach (var progression in response.items) { Debug.Log(progression.name); }});See the Reference Documentation for the full response.

Trigger the node from an event such as a level start. The response returns a list of Progressions along with pagination data — see Paginate Progressions below.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Get All Progressions Using Count
Count limits the number of entries returned.
int count = 20;
LootLockerSDKManager.GetProgressions(count, response =>{ if (!response.success) { Debug.Log("Failed: " + response.Error); }
if (!response.items.Any()) { Debug.Log("Your game does not have any progressions, create one in the Web Console"); }
// Output the name for all progressions foreach (var progression in response.items) { Debug.Log(progression.name); }});See the Reference Documentation for the full response.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Paginate Progressions
Use the After parameter to paginate if your game has many Progressions.
int numberOfItemsPerPage = 10;LootLockerPaginatedProgressionsResponse progressions;
void Start(){ LootLockerSDKManager.StartGuestSession(_ => { // Fetch the initial progressions list LootLockerSDKManager.GetProgressions(numberOfItemsPerPage, response => { if (!response.success) { Debug.Log("Failed: " + response.Error); }
if (response.pagination.total == 0) { Debug.Log("Your game does not have any progressions, create one in the Web Console"); }
progressions = response; }); });}
void Update(){ if (progressions == null) return;
// Fetch the next page if more progressions exist if (Input.GetKeyDown(KeyCode.RightArrow) && progressions.pagination.next_cursor != null) { LootLockerSDKManager.GetProgressions(numberOfItemsPerPage, progressions.pagination.next_cursor, response => { if (!response.success) { Debug.Log("Failed: " + response.Error); }
progressions = response; Debug.Log($"Paginating right, got {progressions.items.Count} progressions"); }); }
// Fetch the previous page if we are not on the first page if (Input.GetKeyDown(KeyCode.LeftArrow) && progressions.pagination.previous_cursor != null) { LootLockerSDKManager.GetProgressions(numberOfItemsPerPage, progressions.pagination.previous_cursor, response => { if (!response.success) { Debug.Log("Failed: " + response.Error); }
progressions = response; Debug.Log($"Paginating left, got {progressions.items.Count} progressions"); }); }}See the Reference Documentation for the full response.

Supply a Count to limit the page size, and optionally an After value to start where a previous call left off.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Retrieve Progression Tiers
Get All Progression Tiers
string progressionKey = "mage";
LootLockerSDKManager.GetProgressionTiers(progressionKey, response =>{ if (!response.success) { Debug.Log("Failed: " + response.Error); }
// Output the progression tiers with levels, required points and rewards foreach (var progressionTier in response.items) { Debug.Log($"Level {progressionTier.step} requires {progressionTier.points_threshold} experience points");
foreach (var assetReward in progressionTier.rewards.asset_rewards) { Debug.Log($"Reaching level {progressionTier.step} awards asset with id: {assetReward.asset_id}"); }
foreach (var progressionPointsReward in progressionTier.rewards.progression_points_rewards) { Debug.Log($"Reaching level {progressionTier.step} awards {progressionPointsReward.amount} points in {progressionPointsReward.progression_name} progression"); }
foreach (var progressionResetReward in progressionTier.rewards.progression_reset_rewards) { Debug.Log($"Reaching level {progressionTier.step} resets the {progressionResetReward.progression_name} progression"); } }});See the Reference Documentation for the full response.

Connect the Progression Key to retrieve tiers for. The response is a list of tiers (points threshold, step, and data) plus their Rewards — Asset, Progression Points, and Progression Reset Rewards.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Get All Progression Tiers Using Count
Count limits the number of entries returned.
string progressionKey = "mage";int count = 20;
LootLockerSDKManager.GetProgressionTiers(progressionKey, count, response =>{ if (!response.success) { Debug.Log("Failed: " + response.Error); }
// Output the progression tiers with levels, required points and rewards foreach (var progressionTier in response.items) { Debug.Log($"Level {progressionTier.step} requires {progressionTier.points_threshold} experience points");
foreach (var assetReward in progressionTier.rewards.asset_rewards) { Debug.Log($"Reaching level {progressionTier.step} awards asset with id: {assetReward.asset_id}"); }
foreach (var progressionPointsReward in progressionTier.rewards.progression_points_rewards) { Debug.Log($"Reaching level {progressionTier.step} awards {progressionPointsReward.amount} points in {progressionPointsReward.progression_name} progression"); }
foreach (var progressionResetReward in progressionTier.rewards.progression_reset_rewards) { Debug.Log($"Reaching level {progressionTier.step} resets the {progressionResetReward.progression_name} progression"); } }});See the Reference Documentation for the full response.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Paginate Progression Tiers
Use the After parameter to paginate if a Progression has many tiers.
string progressionKey = "mage";int numberOfItemsPerPage = 10;LootLockerPaginatedProgressionTiersResponse progressionTiers;
void Start(){ LootLockerSDKManager.StartGuestSession(_ => { // Fetch the initial list of progression tiers LootLockerSDKManager.GetProgressionTiers(progressionKey, numberOfItemsPerPage, response => { if (!response.success) { Debug.Log("Failed: " + response.Error); }
progressionTiers = response; }); });}
void Update(){ if (progressionTiers == null) return;
// Fetch the next page if more tiers exist if (Input.GetKeyDown(KeyCode.RightArrow) && progressionTiers.pagination.next_cursor != null) { LootLockerSDKManager.GetProgressionTiers(progressionKey, numberOfItemsPerPage, progressionTiers.pagination.next_cursor, response => { if (!response.success) { Debug.Log("Failed: " + response.Error); }
progressionTiers = response; Debug.Log($"Paginating right, got {progressionTiers.items.Count} progression tiers"); }); }
// Fetch the previous page if we are not on the first page if (Input.GetKeyDown(KeyCode.LeftArrow) && progressionTiers.pagination.previous_cursor != null) { LootLockerSDKManager.GetProgressionTiers(progressionKey, numberOfItemsPerPage, progressionTiers.pagination.previous_cursor, response => { if (!response.success) { Debug.Log("Failed: " + response.Error); }
progressionTiers = response; Debug.Log($"Paginating left, got {progressionTiers.items.Count} progression tiers"); }); }}See the Reference Documentation for the full response.

Provide the Progression Key, a Count to limit the page size, and optionally an After value to start where a previous call left off.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Coming soon — this sample hasn't been written yet. In the meantime, refer to the Reference Documentation for this endpoint.
Conclusion
You've retrieved Progressions and their tiers from your game. Next, apply points to a specific holder with Player Progressions, Character Class Progressions, or Asset Instance Progressions.