diff --git a/docs/v1/get-achievement-of-the-week.md b/docs/v1/get-achievement-of-the-week.md index e5c978c..c127d43 100644 --- a/docs/v1/get-achievement-of-the-week.md +++ b/docs/v1/get-achievement-of-the-week.md @@ -79,6 +79,7 @@ if (response is NetworkResponse.Success) { "TrueRatio": 11, "Type": null, "Author": "StingX2", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "DateCreated": "2021-10-16", "DateModified": "2021-10-17" }, @@ -98,6 +99,7 @@ if (response is NetworkResponse.Success) { "Unlocks": [ { "User": "Agnam", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "RAPoints": 56120, "RASoftcorePoints": 1267, "DateAwarded": "2023-10-26T22:13:34.000000Z", @@ -119,6 +121,7 @@ if (response is NetworkResponse.Success) { "points": "10", "trueRatio": "22", "author": "BigWeedSmokerMan", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "dateCreated": "2021-08-08 17:47:46", "dateModified": "2021-08-09 12:20:05" }, @@ -130,6 +133,7 @@ if (response is NetworkResponse.Success) { "unlocks": [ { "user": "Tirbaba2", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "rAPoints": "72", "rASoftcorePoints": "150", "dateAwarded": "2022-10-10 01:42:19", diff --git a/docs/v1/get-achievement-unlocks.md b/docs/v1/get-achievement-unlocks.md index 9a76817..4108068 100644 --- a/docs/v1/get-achievement-unlocks.md +++ b/docs/v1/get-achievement-unlocks.md @@ -79,6 +79,7 @@ if (response is NetworkResponse.Success) { "Points": 4, "TrueRatio": 4, "Author": "Scott", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "DateCreated": "2012-11-02 00:03:12", "DateModified": "2023-08-08 00:36:59", "Type": "progression" @@ -97,6 +98,7 @@ if (response is NetworkResponse.Success) { "Unlocks": [ { "User": "vipotaenko02", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "RAPoints": 0, "RASoftcorePoints": 0, "DateAwarded": "2023-10-27T00:19:05.000000Z", @@ -116,6 +118,7 @@ if (response is NetworkResponse.Success) { "points": 4, "trueRatio": 4, "author": "Scott", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "dateCreated": "2012-11-02 00:03:12", "dateModified": "2023-08-08 00:36:59", "type": "progression" @@ -128,6 +131,7 @@ if (response is NetworkResponse.Success) { "unlocks": [ { "user": "vipotaenko02", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "raPoints": 0, "raSoftcorePoints": 0, "dateAwarded": "2023-10-27T00:19:05.000000Z", diff --git a/docs/v1/get-achievements-earned-between.md b/docs/v1/get-achievements-earned-between.md index e7e8945..b7b86bf 100644 --- a/docs/v1/get-achievements-earned-between.md +++ b/docs/v1/get-achievements-earned-between.md @@ -20,10 +20,12 @@ A user's unlocks by a date range can be found manually via the user history: ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :--------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `f` | Yes | Epoch timestamp. Time range start. | | `t` | Yes | Epoch timestamp. Time range end. | @@ -98,6 +100,7 @@ if (response is NetworkResponse.Success) { "TrueRatio": 25, "Type": "missable", "Author": "Altomar", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameTitle": "Persona 3 Portable", "GameIcon": "/Images/065205.png", "GameID": 3164, @@ -123,6 +126,7 @@ if (response is NetworkResponse.Success) { "trueRatio": 25, "type": null, "author": "pinguupinguu", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameTitle": "SpongeBob SquarePants: The Movie", "gameIcon": "/Images/059007.png", "gameId": 19018, diff --git a/docs/v1/get-achievements-earned-on-day.md b/docs/v1/get-achievements-earned-on-day.md index 97816f7..26dd41e 100644 --- a/docs/v1/get-achievements-earned-on-day.md +++ b/docs/v1/get-achievements-earned-on-day.md @@ -20,11 +20,13 @@ A user's unlocks by date can be found via the user history: ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------------- | -| `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | -| `d` | Yes | Date in YYYY-MM-DD format. | +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + +| Name | Required? | Description | +| :--- | :-------- | :--------------------------- | +| `y` | Yes | Your web API key. | +| `u` | | The target username or ULID. | +| `d` | Yes | Date in YYYY-MM-DD format. | ## Client Library @@ -93,6 +95,7 @@ if (response is NetworkResponse.Success) { "Points": 5, "Type": null, "Author": "TheMysticalOne", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameTitle": "Dragon Quest VIII: Journey of the Cursed King", "GameIcon": "/Images/038649.png", "GameID": 2721, @@ -117,6 +120,7 @@ if (response is NetworkResponse.Success) { "points": 5, "type": null, "author": "pinguupinguu", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameTitle": "SpongeBob SquarePants: The Movie", "gameIcon": "/Images/059007.png", "gameId": 19018, diff --git a/docs/v1/get-active-claims.md b/docs/v1/get-active-claims.md index 52e990d..4544a96 100644 --- a/docs/v1/get-active-claims.md +++ b/docs/v1/get-active-claims.md @@ -65,6 +65,7 @@ if (response is NetworkResponse.Success) { { "ID": 11246, "User": "WanderingHeiho", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameID": 26971, "GameTitle": "~Homebrew~ No Place To Hide", "GameIcon": "/Images/084916.png", @@ -90,6 +91,7 @@ if (response is NetworkResponse.Success) { { "id": 11246, "user": "WanderingHeiho", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameId": 26971, "gameTitle": "~Homebrew~ No Place To Hide", "gameIcon": "/Images/084916.png", diff --git a/docs/v1/get-claims.md b/docs/v1/get-claims.md index 98d3ed9..2274b44 100644 --- a/docs/v1/get-claims.md +++ b/docs/v1/get-claims.md @@ -68,6 +68,7 @@ if (response is NetworkResponse.Success) { { "ID": 11245, "User": "kmpers", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameID": 24541, "GameTitle": "GP World", "GameIcon": "/Images/076324.png", @@ -93,6 +94,7 @@ if (response is NetworkResponse.Success) { { "id": 11245, "user": "kmpers", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameId": 24541, "gameTitle": "GP World", "gameIcon": "/Images/076324.png", diff --git a/docs/v1/get-comments.md b/docs/v1/get-comments.md index 4c9a55c..21875ea 100644 --- a/docs/v1/get-comments.md +++ b/docs/v1/get-comments.md @@ -14,13 +14,13 @@ A call to this endpoint returns comments of a specified kind: game, achievement, ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------------------------------------------------------------------------------- | -| `y` | Yes | Your web API key. | -| `i` | Yes | The target game or achievement ID (if type is 1 or 2). The target username (if type is 3). | -| `t` | Sometimes | The target comment kind: 1 (game), 2 (achievement), or 3 (user). Required if type is 1 or 2. | -| `c` | | Count, number of records to return (default: 100, max: 500). | -| `o` | | Offset, number of entries to skip (default: 0). | +| Name | Required? | Description | +| :--- | :-------- | :------------------------------------------------------------------------------------------------------ | +| `y` | Yes | Your web API key. | +| `i` | Yes | The target game or achievement ID (if type is 1 or 2). The target username or user ULID (if type is 3). | +| `t` | Sometimes | The target comment kind: 1 (game), 2 (achievement), or 3 (user). Required if type is 1 or 2. | +| `c` | | Count, number of records to return (default: 100, max: 500). | +| `o` | | Offset, number of entries to skip (default: 0). | ## Client Library @@ -102,6 +102,7 @@ if (response is NetworkResponse.Success) { "Results": [ { "User": "PlayTester", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Submitted": "2024-07-31T11:22:23.000000Z", "CommentText": "Comment 1" }, diff --git a/docs/v1/get-game-extended.md b/docs/v1/get-game-extended.md index 5af10b9..59366c5 100644 --- a/docs/v1/get-game-extended.md +++ b/docs/v1/get-game-extended.md @@ -106,6 +106,7 @@ if (response is NetworkResponse.Success) { "Points": 3, "TrueRatio": 3, "Author": "Scott", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "DateModified": "2023-08-08 00:36:59", "DateCreated": "2012-11-02 00:03:12", "BadgeName": "250336", @@ -154,6 +155,7 @@ if (response is NetworkResponse.Success) { "points": 1, "trueRatio": 1, "author": "Boldewin", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "dateModified": "2019-08-01 19:03:46", "dateCreated": "2019-07-31 18:49:57", "badgeName": "85541", diff --git a/docs/v1/get-game-info-and-user-progress.md b/docs/v1/get-game-info-and-user-progress.md index d5bb377..d153b79 100644 --- a/docs/v1/get-game-info-and-user-progress.md +++ b/docs/v1/get-game-info-and-user-progress.md @@ -14,10 +14,12 @@ A call to this endpoint will retrieve extended metadata about a game, in additio ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :----------------------------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `g` | Yes | The target game ID. | | `a` | | Set to "1" if user award metadata should be included (default: 0). | @@ -108,6 +110,7 @@ if (response is NetworkResponse.Success) { "Points": 3, "TrueRatio": 3, "Author": "Scott", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "DateModified": "2023-08-08 00:36:59", "DateCreated": "2012-11-02 00:03:12", "BadgeName": "250336", @@ -162,6 +165,7 @@ if (response is NetworkResponse.Success) { "points": 1, "trueRatio": 1, "author": "Boldewin", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "dateModified": "2019-08-01 19:03:46", "dateCreated": "2019-07-31 18:49:57", "badgeName": "85541", diff --git a/docs/v1/get-game-leaderboards.md b/docs/v1/get-game-leaderboards.md index 582127d..75baaae 100644 --- a/docs/v1/get-game-leaderboards.md +++ b/docs/v1/get-game-leaderboards.md @@ -71,6 +71,7 @@ if (response is NetworkResponse.Success) { "Format": "VALUE", "TopEntry": { "User": "vani11a", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Score": "390490", "FormattedScore": "390,490" } diff --git a/docs/v1/get-game-rank-and-score.md b/docs/v1/get-game-rank-and-score.md index 11da2a5..b39e902 100644 --- a/docs/v1/get-game-rank-and-score.md +++ b/docs/v1/get-game-rank-and-score.md @@ -82,6 +82,7 @@ How entities are ordered in this response should be noted. For `latest-masters`, [ { "User": "Arekdias", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "NumAchievements": 15, "TotalScore": 219, "LastAward": "2023-06-07 14:43:18" @@ -94,6 +95,7 @@ How entities are ordered in this response should be noted. For `latest-masters`, [ { "user": "BruceLee1255", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "totalScore": 0, "lastAward": "2019-07-30 23:19:43", "rank": 27 diff --git a/docs/v1/get-leaderboard-entries.md b/docs/v1/get-leaderboard-entries.md index cbabe8d..e58a7ca 100644 --- a/docs/v1/get-leaderboard-entries.md +++ b/docs/v1/get-leaderboard-entries.md @@ -66,6 +66,7 @@ if (response is NetworkResponse.Success) { { "Rank": 1, "User": "vani11a", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Score": 390490, "FormattedScore": "390,490", "DateSubmitted": "2024-07-25T15:51:00+00:00" diff --git a/docs/v1/get-recent-game-awards.md b/docs/v1/get-recent-game-awards.md index 3551c15..dbde9f2 100644 --- a/docs/v1/get-recent-game-awards.md +++ b/docs/v1/get-recent-game-awards.md @@ -80,6 +80,7 @@ if (response is NetworkResponse.Success) { "Results": [ { "User": "renanbrj", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "AwardKind": "mastered", "AwardDate": "2022-01-01T23:48:04+00:00", "GameID": 14284, @@ -99,6 +100,7 @@ if (response is NetworkResponse.Success) { "results": [ { "user": "renanbrj", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "awardKind": "mastered", "awardDate": "2022-01-01T23:48:04+00:00", "gameId": 14_284, diff --git a/docs/v1/get-ticket-data/get-developer-ticket-stats.md b/docs/v1/get-ticket-data/get-developer-ticket-stats.md index 7ad1c09..68acda6 100644 --- a/docs/v1/get-ticket-data/get-developer-ticket-stats.md +++ b/docs/v1/get-ticket-data/get-developer-ticket-stats.md @@ -14,10 +14,13 @@ A call to `API_GetTicketData` in this manner will retrieve ticket stats for a de ### Query Parameters +You must query the developer by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target developer's username. | +| `u` | | The target developer's username. | +| `i` | | The target developer's ULID. | ## Client Library @@ -68,6 +71,7 @@ if (response is NetworkResponse.Success) { ```json [HTTP Response] { "User": "MockUser", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Open": 0, "Closed": 17, "Resolved": 27, @@ -79,6 +83,7 @@ if (response is NetworkResponse.Success) { ```json [NodeJS] { "user": "MockUser", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "open": 0, "closed": 17, "resolved": 27, diff --git a/docs/v1/get-ticket-data/get-most-recent-tickets.md b/docs/v1/get-ticket-data/get-most-recent-tickets.md index be66cb5..1b6e6fd 100644 --- a/docs/v1/get-ticket-data/get-most-recent-tickets.md +++ b/docs/v1/get-ticket-data/get-most-recent-tickets.md @@ -78,6 +78,7 @@ if (response is NetworkResponse.Success) { "Points": 0, "BadgeName": "361407", "AchievementAuthor": "WCopeland", + "AchievementAuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameID": 24453, "ConsoleName": "Mega Drive", "GameTitle": "~Homebrew~ Mega Man: The Sequel Wars - Episode Red", @@ -87,8 +88,10 @@ if (response is NetworkResponse.Success) { "Hardcore": 1, "ReportNotes": "asdfasdfasdfasdf\nRetroAchievements Hash: bff0eb90c2006edade14063d4a2d13cf\nEmulator: RALibRetro (123123)\nEmulator Version: 123", "ReportedBy": "WCopeland", + "ReportedByULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "ResolvedAt": null, "ResolvedBy": null, + "ResolvedByULID": null, "ReportState": 1, "ReportStateDescription": "Open", "ReportTypeDescription": "Did not trigger" @@ -110,6 +113,7 @@ if (response is NetworkResponse.Success) { "points": 5, "badgeName": "316108", "achievementAuthor": "TeddyWestside", + "achievementAuthorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameId": 19144, "consoleName": "PlayStation 2", "gameTitle": "X-Men Legends", @@ -119,8 +123,10 @@ if (response is NetworkResponse.Success) { "hardcore": true, "reportNotes": "mockReportNotes", "reportedBy": "ManyHours", + "reportedByUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "resolvedAt": null, "resolvedBy": null, + "resolvedByUlid": null, "reportState": 1, "reportStateDescription": "Open", "reportTypeDescription": "Did not trigger" diff --git a/docs/v1/get-ticket-data/get-ticket-by-id.md b/docs/v1/get-ticket-data/get-ticket-by-id.md index 2a8ccbd..63b0dcc 100644 --- a/docs/v1/get-ticket-data/get-ticket-by-id.md +++ b/docs/v1/get-ticket-data/get-ticket-by-id.md @@ -73,6 +73,7 @@ if (response is NetworkResponse.Success) { "Points": 3, "BadgeName": "309094", "AchievementAuthor": "tuteur51", + "AchievementAuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameID": 2816, "ConsoleName": "Game Boy Advance", "GameTitle": "Pokémon Mystery Dungeon: Red Rescue Team", @@ -83,8 +84,10 @@ if (response is NetworkResponse.Success) { "Hardcore": null, "ReportNotes": "Right before going to Thunderwave Cave, all three of these triggered at the same time.
MD5: 9837da1fdfe900c52f2109d9718d4e85", "ReportedBy": "ThatOneEnderMan", + "ReportedByULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "ResolvedAt": "2018-04-16 08:03:31", "ResolvedBy": "tuteur51", + "ResolvedByULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "ReportStateDescription": "Resolved", "ReportTypeDescription": "Triggered at the wrong time", "URL": "https://retroachievements.org/ticket/12345" @@ -100,6 +103,7 @@ if (response is NetworkResponse.Success) { "points": 3, "badgeName": "309094", "achievementAuthor": "tuteur51", + "achievementAuthorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameId": 2816, "consoleName": "Game Boy Advance", "gameTitle": "Pokemon Mystery Dungeon: Red Rescue Team", @@ -110,8 +114,10 @@ if (response is NetworkResponse.Success) { "hardcore": null, "reportNotes": "Right before going to Thunderwave Cave, all three of these triggered at the same time.
MD5: 9837da1fdfe900c52f2109d9718d4e85", "reportedBy": "ThatOneEnderMan", + "reportedByUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "resolvedAt": "2018-04-16 08:03:31", "resolvedBy": "tuteur51", + "resolvedByUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "reportStateDescription": "Resolved", "reportTypeDescription": "Triggered at the wrong time", "url": "https://retroachievements.org/ticketmanager.php?i=12345" diff --git a/docs/v1/get-top-ten-users.md b/docs/v1/get-top-ten-users.md index 26d9180..5541821 100644 --- a/docs/v1/get-top-ten-users.md +++ b/docs/v1/get-top-ten-users.md @@ -65,7 +65,8 @@ if (response is NetworkResponse.Success) { { "1": "MaxMilyin", "2": 399597, // the user's hardcore points - "3": 1599212 // the user's RetroPoints (white points) + "3": 1599212, // the user's RetroPoints (white points) + "4": "00003EMFWR7XB8SDPEHB3K56ZQ" // the user's unique queryable ULID } // ... ] diff --git a/docs/v1/get-user-awards.md b/docs/v1/get-user-awards.md index a60f25e..8f31f6d 100644 --- a/docs/v1/get-user-awards.md +++ b/docs/v1/get-user-awards.md @@ -20,10 +20,12 @@ The easiest place to see a summary of user awards in the Progression Status comp ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------- | -| `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + +| Name | Required? | Description | +| :--- | :-------- | :--------------------------- | +| `y` | Yes | Your web API key. | +| `u` | | The target username or ULID. | ## Client Library diff --git a/docs/v1/get-user-claims.md b/docs/v1/get-user-claims.md index 7d862d5..792c0ef 100644 --- a/docs/v1/get-user-claims.md +++ b/docs/v1/get-user-claims.md @@ -14,10 +14,12 @@ A call to this endpoint will retrieve a list of achievement set claims made over ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------- | -| `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + +| Name | Required? | Description | +| :--- | :-------- | :--------------------------- | +| `y` | Yes | Your web API key. | +| `u` | | The target username or ULID. | ## Client Library @@ -70,6 +72,7 @@ if (response is NetworkResponse.Success) { { "ID": 11161, "User": "Jamiras", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameID": 18644, "GameTitle": "~Unlicensed~ Hi-Leg Fantasy", "GameIcon": "/Images/083201.png", @@ -94,6 +97,7 @@ if (response is NetworkResponse.Success) { { "id": 7779, "user": "Jamiras", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameId": 11592, "gameTitle": "Mary-Kate & Ashley: Get a Clue!", "gameIcon": "/Images/065909.png", diff --git a/docs/v1/get-user-completed-games.md b/docs/v1/get-user-completed-games.md index fe4cb7e..10073ad 100644 --- a/docs/v1/get-user-completed-games.md +++ b/docs/v1/get-user-completed-games.md @@ -20,10 +20,12 @@ A call to this endpoint will retrieve completion metadata about the games a give ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------- | -| `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + +| Name | Required? | Description | +| :--- | :-------- | :--------------------------- | +| `y` | Yes | Your web API key. | +| `u` | | The target username or ULID. | ## Client Library diff --git a/docs/v1/get-user-completion-progress.md b/docs/v1/get-user-completion-progress.md index 5e8385d..91ed648 100644 --- a/docs/v1/get-user-completion-progress.md +++ b/docs/v1/get-user-completion-progress.md @@ -20,10 +20,12 @@ A user's completion progress can be found in several places, most prolifically o ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :----------------------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `c` | | Count, number of records to return (default: 100, max: 500). | | `o` | | Offset, number of entries to skip (default: 0). | diff --git a/docs/v1/get-user-game-leaderboards.md b/docs/v1/get-user-game-leaderboards.md index a8953fd..0bb04fa 100644 --- a/docs/v1/get-user-game-leaderboards.md +++ b/docs/v1/get-user-game-leaderboards.md @@ -22,11 +22,13 @@ This endpoint will only return the leaderboards for the user given in the reques ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :----------------------------------------------------------- | | `y` | Yes | Your web API key. | | `i` | Yes | The target game ID. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `c` | | Count, number of records to return (default: 200, max: 500). | | `o` | | Offset, number of entries to skip (default: 0). | @@ -51,6 +53,7 @@ Not yet supported. "Format": "MILLISECS", "UserEntry": { "User": "zuliman92", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Score": 12620, "FormattedScore": "2:06.20", "Rank": 2, diff --git a/docs/v1/get-user-game-rank-and-score.md b/docs/v1/get-user-game-rank-and-score.md index 4561a17..87a833f 100644 --- a/docs/v1/get-user-game-rank-and-score.md +++ b/docs/v1/get-user-game-rank-and-score.md @@ -14,11 +14,13 @@ A call to this endpoint will retrieve metadata about how a given user has perfor ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------- | -| `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | -| `g` | Yes | The target game ID. | +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + +| Name | Required? | Description | +| :--- | :-------- | :--------------------------- | +| `y` | Yes | Your web API key. | +| `u` | | The target username or ULID. | +| `g` | Yes | The target game ID. | ## Client Library @@ -76,6 +78,7 @@ if (response is NetworkResponse.Success) { [ { "User": "WCopeland", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "UserRank": 9, "TotalScore": 199, "LastAward": "2023-06-07 14:44:00" @@ -88,6 +91,7 @@ if (response is NetworkResponse.Success) { [ { "user": "WCopeland", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "totalScore": 199, "lastAward": "2023-06-07 14:44:00", "userRank": 9 diff --git a/docs/v1/get-user-points.md b/docs/v1/get-user-points.md index ab34cd5..d43a7ad 100644 --- a/docs/v1/get-user-points.md +++ b/docs/v1/get-user-points.md @@ -14,10 +14,12 @@ A call to this endpoint will retrieve a given user's hardcore and softcore point ### Query Parameters -| Name | Required? | Description | -| :--- | :-------- | :------------------- | -| `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + +| Name | Required? | Description | +| :--- | :-------- | :--------------------------- | +| `y` | Yes | Your web API key. | +| `u` | | The target username or ULID. | ## Client Library diff --git a/docs/v1/get-user-progress.md b/docs/v1/get-user-progress.md index 5e1082e..9c656e3 100644 --- a/docs/v1/get-user-progress.md +++ b/docs/v1/get-user-progress.md @@ -20,10 +20,12 @@ Unless you are explicitly wanting summary progress details for specific game IDs ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :----------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `i` | Yes | The target game IDs, as a comma-separated value. | ## Client Library diff --git a/docs/v1/get-user-recent-achievements.md b/docs/v1/get-user-recent-achievements.md index 1837161..02951e0 100644 --- a/docs/v1/get-user-recent-achievements.md +++ b/docs/v1/get-user-recent-achievements.md @@ -24,10 +24,12 @@ The recent unlocks can also be found on the "Unlocked Achievements" page: ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :------------------------------------ | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `m` | | Minutes to look back. Defaults to 60. | ## Client Library @@ -92,6 +94,7 @@ if (response is NetworkResponse.Success) { "TrueRatio": 25, "Type": null, "Author": "jos", + "AuthorULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "GameTitle": "Pokemon Pinball mini", "GameIcon": "/Images/028399.png", "GameID": 14715, @@ -115,6 +118,7 @@ if (response is NetworkResponse.Success) { "trueRatio": 100, "type": null, "author": "Som1", + "authorUlid": "00003EMFWR7XB8SDPEHB3K56ZQ", "gameTitle": "WWF King of the Ring", "gameIcon": "/Images/062599.png", "gameId": 6316, diff --git a/docs/v1/get-user-recently-played-games.md b/docs/v1/get-user-recently-played-games.md index 61bbdf5..aeb2927 100644 --- a/docs/v1/get-user-recently-played-games.md +++ b/docs/v1/get-user-recently-played-games.md @@ -14,10 +14,12 @@ A call to this endpoint will retrieve a list of a target user's recently played ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :--------------------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `c` | | Count, number of records to return (default: 10, max: 50). | | `o` | | Offset, number of entries to skip (default: 0). | diff --git a/docs/v1/get-user-set-requests.md b/docs/v1/get-user-set-requests.md index 29dbe57..2409525 100644 --- a/docs/v1/get-user-set-requests.md +++ b/docs/v1/get-user-set-requests.md @@ -18,10 +18,12 @@ A call to this endpoint will retrieve a given user's set requests, maximum total ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :--------------------------------------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `t` | No | Request List Type: 0 for active requests, 1 for all requests. Defaults to 0. | ## Client Library diff --git a/docs/v1/get-user-summary.md b/docs/v1/get-user-summary.md index aa28758..55d21eb 100644 --- a/docs/v1/get-user-summary.md +++ b/docs/v1/get-user-summary.md @@ -20,10 +20,12 @@ This endpoint is known to be slow, and often results in over-fetching. For basic ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :-------------------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `g` | | The number of recent games to return (default: 0). | | `a` | | The number of recent achievements to return (default: 10) | @@ -84,6 +86,7 @@ if (response is NetworkResponse.Success) { ```json [HTTP Response] { "User": "xelnia", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "MemberSince": "2021-12-20 03:13:20", "LastActivity": { "ID": 0, @@ -189,6 +192,7 @@ if (response is NetworkResponse.Success) { ```json [NodeJS] { "user": "xelnia", + "ulid": "00003EMFWR7XB8SDPEHB3K56ZQ", "memberSince": "2021-12-20 03:13:20", "lastActivity": { "id": 0, diff --git a/docs/v1/get-user-want-to-play-list.md b/docs/v1/get-user-want-to-play-list.md index 7db498b..56630ac 100644 --- a/docs/v1/get-user-want-to-play-list.md +++ b/docs/v1/get-user-want-to-play-list.md @@ -20,10 +20,12 @@ The user's Want to Play Games list page looks like: ### Query Parameters +You must query the user by either their username or their ULID. Please note the username is not considered a stable value. As of 2025, users can change their usernames. Initially querying by username is a good way to fetch a ULID. + | Name | Required? | Description | | :--- | :-------- | :----------------------------------------------------------- | | `y` | Yes | Your web API key. | -| `u` | Yes | The target username. | +| `u` | | The target username or ULID. | | `c` | | Count, number of records to return (default: 100, max: 500). | | `o` | | Offset, number of entries to skip (default: 0). | diff --git a/docs/v1/get-users-following-me.md b/docs/v1/get-users-following-me.md index 2866473..804decb 100644 --- a/docs/v1/get-users-following-me.md +++ b/docs/v1/get-users-following-me.md @@ -62,6 +62,7 @@ if (response is NetworkResponse.Success) { "Results": [ { "User": "zuliman92", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Points": 1882, "PointsSoftcore": 258, "AmIFollowing": true diff --git a/docs/v1/get-users-i-follow.md b/docs/v1/get-users-i-follow.md index 1436840..b83935a 100644 --- a/docs/v1/get-users-i-follow.md +++ b/docs/v1/get-users-i-follow.md @@ -62,6 +62,7 @@ if (response is NetworkResponse.Success) { "Results": [ { "User": "zuliman92", + "ULID": "00003EMFWR7XB8SDPEHB3K56ZQ", "Points": 1882, "PointsSoftcore": 258, "IsFollowingMe": true