From 8a4156881f71efc4ace6f02e08b0f91bf434ad59 Mon Sep 17 00:00:00 2001 From: Fort-TM Date: Sat, 14 Feb 2026 17:12:04 -0300 Subject: [PATCH 1/4] Add core favorites endpoints --- docs/core/maps/add-favorite.md | 57 ++++++++++++++++++++++++ docs/core/maps/favorites-uids.md | 57 ++++++++++++++++++++++++ docs/core/maps/favorites.md | 73 +++++++++++++++++++++++++++++++ docs/core/maps/remove-favorite.md | 57 ++++++++++++++++++++++++ 4 files changed, 244 insertions(+) create mode 100644 docs/core/maps/add-favorite.md create mode 100644 docs/core/maps/favorites-uids.md create mode 100644 docs/core/maps/favorites.md create mode 100644 docs/core/maps/remove-favorite.md diff --git a/docs/core/maps/add-favorite.md b/docs/core/maps/add-favorite.md new file mode 100644 index 0000000..c8cacac --- /dev/null +++ b/docs/core/maps/add-favorite.md @@ -0,0 +1,57 @@ +--- +name: Add favorite map + +url: https://prod.trackmania.core.nadeo.online +method: POST +route: /maps/favorites + +audience: NadeoServices + +parameters: + body: + - name: mapUid + type: string + description: The UID of the map + required: true +--- + +The request body contains the map to add, identified by its mapUid + +```json +{ + "mapUid": "{mapUid}" +} +``` + +Adds a map to your authenticated account's favorites. + +--- + +**Remarks**: + +- This endpoint is only useful with tokens authenticated through Ubisoft user accounts (as opposed to dedicated server accounts). +- This endpoint serves the same purpose as the [Live API's Add favorite map endpoint](/live/maps/add-favorite), but the request format is different. + +--- + +**Example request**: + +```plain +POST https://prod.trackmania.core.nadeo.online/maps/favorites +``` + +```json +{ + "mapUid": "KRelvYHRjEQoqnkJ_Th8FLKzTsg" +} +``` + +**Example response**: + +```plain +null +``` + +Both successful and unsuccessful responses (including requests for maps that don't exist) have no content and return a `200` response code. + +An invalid `mapUid` results in a `400` response code with an error object in the response body. diff --git a/docs/core/maps/favorites-uids.md b/docs/core/maps/favorites-uids.md new file mode 100644 index 0000000..f268e2f --- /dev/null +++ b/docs/core/maps/favorites-uids.md @@ -0,0 +1,57 @@ +--- +name: Get favorite maps by UIDs + +url: https://prod.trackmania.core.nadeo.online +method: GET +route: /maps/favorites/by-map-uids?mapUidList={mapUidList} + +audience: NadeoServices + +parameters: + query: + - name: mapUidList + type: string + description: A comma-separated list of map UIDs + required: true +--- + +Gets maps in your authenticated account's favorite tracks via their UIDs. + +--- + +**Remarks**: + +- This endpoint is only useful with tokens authenticated through Ubisoft user accounts (as opposed to dedicated server accounts). +- The `timestamp` field is when the map was added to your favorite tracks. + +--- + +**Example request**: + +```plain +GET https://prod.trackmania.core.nadeo.online/maps/favorites/by-map-uids?mapUidList=WGWbB_OQnMk3RfD1b3laxonXJQh,KRelvYHRjEQoqnkJ_Th8FLKzTsg +``` + +**Example response**: + +```json +{ + "mapFavoriteList": [ + { + "accountId": "69f31664-4252-48e0-a433-024c49caee8c", + "mapUid": "KRelvYHRjEQoqnkJ_Th8FLKzTsg", + "timestamp": "2026-02-13T18:12:03+00:00" + }, + { + "accountId": "69f31664-4252-48e0-a433-024c49caee8c", + "mapUid": "WGWbB_OQnMk3RfD1b3laxonXJQh", + "timestamp": "2026-02-13T21:24:28+00:00" + } + ], + "count": 2 +} +``` + +If a map can't be found or isn't part of your favorites, it will be omitted from the response. + +An invalid `mapUid` results in a `400` response code with an error object in the response body. diff --git a/docs/core/maps/favorites.md b/docs/core/maps/favorites.md new file mode 100644 index 0000000..3e21c58 --- /dev/null +++ b/docs/core/maps/favorites.md @@ -0,0 +1,73 @@ +--- +name: Get favorite maps + +url: https://prod.trackmania.core.nadeo.online +method: GET +route: /maps/favorites?offset={offset}&length={length}&sort={sort}&order={order}&mapTypeList={mapTypeList}&playable={playable}&onlyMine={onlyMine} + +audience: NadeoServices + +parameters: + query: + - name: offset + type: integer + description: The number of maps to skip + required: true + - name: length + type: integer + description: The number of maps to retrieve + required: true + min: 1 + - name: sort + type: string + description: The sorting of the maps + default: "date" + - name: order + type: string + description: The order of the maps based on the sorting + default: "desc" + - name: mapTypeList + type: string + description: The map type filter separated by commas + - name: playable + type: boolean + description: Whether the map is validated and playable + - name: onlyMine + type: boolean + description: Whether the map was created by the current authenticated account +--- + +Retrieves your authenticated account's favorite tracks. + +--- + +**Remarks**: + +- This endpoint is only useful with tokens authenticated through Ubisoft user accounts (as opposed to dedicated server accounts). +- When no `mapTypeList` filter is applied, all available maps are returned regardless of their type. +- See the [glossary](/glossary#map-type) for examples of supported map types. +- The `timestamp` field is when the map was added to your favorite tracks. +- This endpoint behaves similarly to the [Live API's Get favorite map endpoint](/live/maps/favorites), but the response data model is different, with the Live endpoint also including the map information. + +--- + +**Example request**: + +```plain +GET https://prod.trackmania.core.nadeo.online/maps/favorites?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\\TM_Race&playable=true&onlyMine=false +``` + +**Example response**: + +```json +{ + "mapFavoriteList": [ + { + "accountId": "69f31664-4252-48e0-a433-024c49caee8c", + "mapUid": "KRelvYHRjEQoqnkJ_Th8FLKzTsg", + "timestamp": "2026-02-13T20:58:41+00:00" + } + ], + "count": 11 +} +``` diff --git a/docs/core/maps/remove-favorite.md b/docs/core/maps/remove-favorite.md new file mode 100644 index 0000000..4c4d8e2 --- /dev/null +++ b/docs/core/maps/remove-favorite.md @@ -0,0 +1,57 @@ +--- +name: Remove favorite map + +url: https://prod.trackmania.core.nadeo.online +method: DELETE +route: /maps/favorites + +audience: NadeoServices + +parameters: + body: + - name: mapUid + type: string + description: The UID of the map + required: true +--- + +The request body contains the map to remove, identified by its mapUid + +```json +{ + "mapUid": "{mapUid}" +} +``` + +Removes a map from your authenticated account's favorites. + +--- + +**Remarks**: + +- This endpoint is only useful with tokens authenticated through Ubisoft user accounts (as opposed to dedicated server accounts). +- This endpoint serves the same purpose as the [Live API's Remove favorite map endpoint](/live/maps/remove-favorite), but the request format is different. + +--- + +**Example request**: + +```plain +DELETE https://prod.trackmania.core.nadeo.online/maps/favorites +``` + +```json +{ + "mapUid": "KRelvYHRjEQoqnkJ_Th8FLKzTsg" +} +``` + +**Example response**: + +```plain +null +``` + +Both successful and unsuccessful responses (including requests for maps that are not part of your favorites or don't exist) have no content and return a `200` response code. + +An invalid `mapUid` results in a `400` response code with an error object in the response body. From ab7502e235c7768ee5bf5f5a4550f87dbc3c32ca Mon Sep 17 00:00:00 2001 From: Fort-TM Date: Sat, 14 Feb 2026 17:12:29 -0300 Subject: [PATCH 2/4] Add missing parameter from live favorites endpoint --- docs/live/maps/favorites.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/live/maps/favorites.md b/docs/live/maps/favorites.md index 036a632..1298249 100644 --- a/docs/live/maps/favorites.md +++ b/docs/live/maps/favorites.md @@ -3,7 +3,7 @@ name: Get favorite maps url: https://live-services.trackmania.nadeo.live method: GET -route: /api/token/map/favorite?offset={offset}&length={length}&sort={sort}&order={order}&mapTypeList={mapTypeList}&playable={playable} +route: /api/token/map/favorite?offset={offset}&length={length}&sort={sort}&order={order}&mapTypeList={mapTypeList}&playable={playable}&onlyMine={onlyMine} audience: NadeoLiveServices parameters: @@ -31,6 +31,9 @@ parameters: - name: playable type: boolean description: Whether the map is validated and playable + - name: onlyMine + type: boolean + description: Whether the map was created by the current authenticated account --- Retrieves your authenticated account's favorite tracks along with their information. @@ -48,7 +51,7 @@ Retrieves your authenticated account's favorite tracks along with their informat **Example request**: ```plain -GET https://live-services.trackmania.nadeo.live/api/token/map/favorite?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\\TM_Race&playable=true +GET https://live-services.trackmania.nadeo.live/api/token/map/favorite?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\\TM_Race&playable=true&onlyMine=false ``` **Example response**: From 46be444a17b5daa142410ede4a68d385d73da4ce Mon Sep 17 00:00:00 2001 From: Fort-TM Date: Sun, 15 Feb 2026 16:22:41 -0300 Subject: [PATCH 3/4] Update remarks / comments --- docs/core/maps/add-favorite.md | 2 +- docs/core/maps/favorites.md | 3 ++- docs/core/maps/remove-favorite.md | 2 +- docs/live/maps/favorites.md | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/core/maps/add-favorite.md b/docs/core/maps/add-favorite.md index c8cacac..1e99228 100644 --- a/docs/core/maps/add-favorite.md +++ b/docs/core/maps/add-favorite.md @@ -52,6 +52,6 @@ POST https://prod.trackmania.core.nadeo.online/maps/favorites null ``` -Both successful and unsuccessful responses (including requests for maps that don't exist) have no content and return a `200` response code. +Both successful and unsuccessful responses (including requests for maps that don't exist) return a `200` response code. An invalid `mapUid` results in a `400` response code with an error object in the response body. diff --git a/docs/core/maps/favorites.md b/docs/core/maps/favorites.md index 3e21c58..f261822 100644 --- a/docs/core/maps/favorites.md +++ b/docs/core/maps/favorites.md @@ -44,10 +44,11 @@ Retrieves your authenticated account's favorite tracks. **Remarks**: - This endpoint is only useful with tokens authenticated through Ubisoft user accounts (as opposed to dedicated server accounts). +- The `sort` parameter can be set to `"date"` (when the map was added to your favorite tracks) or `"name"` (the map name). - When no `mapTypeList` filter is applied, all available maps are returned regardless of their type. - See the [glossary](/glossary#map-type) for examples of supported map types. - The `timestamp` field is when the map was added to your favorite tracks. -- This endpoint behaves similarly to the [Live API's Get favorite map endpoint](/live/maps/favorites), but the response data model is different, with the Live endpoint also including the map information. +- This endpoint behaves similarly to the [Live API's Get favorite map endpoint](/live/maps/favorites), but the response data model is different, with the Live endpoint also including additional map information. --- diff --git a/docs/core/maps/remove-favorite.md b/docs/core/maps/remove-favorite.md index 4c4d8e2..5a279ee 100644 --- a/docs/core/maps/remove-favorite.md +++ b/docs/core/maps/remove-favorite.md @@ -52,6 +52,6 @@ DELETE https://prod.trackmania.core.nadeo.online/maps/favorites null ``` -Both successful and unsuccessful responses (including requests for maps that are not part of your favorites or don't exist) have no content and return a `200` response code. +Both successful and unsuccessful responses (including requests for maps that are not part of your favorites or don't exist) return a `200` response code. An invalid `mapUid` results in a `400` response code with an error object in the response body. diff --git a/docs/live/maps/favorites.md b/docs/live/maps/favorites.md index 1298249..0ae39d8 100644 --- a/docs/live/maps/favorites.md +++ b/docs/live/maps/favorites.md @@ -43,6 +43,7 @@ Retrieves your authenticated account's favorite tracks along with their informat **Remarks**: - This endpoint is only useful with tokens authenticated through Ubisoft user accounts (as opposed to dedicated server accounts). +- The `sort` parameter can be set to `"date"` (when the map was added to your favorite tracks) or `"name"` (the map name). - When no `mapTypeList` filter is applied, all available maps are returned regardless of their type. - See the [glossary](/glossary#map-type) for examples of supported map types. From 47e6fb0364542646012fe5752f49313d3cd2af95 Mon Sep 17 00:00:00 2001 From: Fort-TM Date: Sun, 15 Feb 2026 16:22:49 -0300 Subject: [PATCH 4/4] Formatting --- docs/core/maps/add-favorite.md | 2 +- docs/core/maps/favorites.md | 2 +- docs/core/maps/remove-favorite.md | 2 +- docs/live/maps/favorites.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/core/maps/add-favorite.md b/docs/core/maps/add-favorite.md index 1e99228..76e5f63 100644 --- a/docs/core/maps/add-favorite.md +++ b/docs/core/maps/add-favorite.md @@ -15,7 +15,7 @@ parameters: required: true --- -The request body contains the map to add, identified by its mapUid +The request body contains the map to add, identified by its mapUid: ```json { diff --git a/docs/core/maps/favorites.md b/docs/core/maps/favorites.md index f261822..c06bf73 100644 --- a/docs/core/maps/favorites.md +++ b/docs/core/maps/favorites.md @@ -55,7 +55,7 @@ Retrieves your authenticated account's favorite tracks. **Example request**: ```plain -GET https://prod.trackmania.core.nadeo.online/maps/favorites?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\\TM_Race&playable=true&onlyMine=false +GET https://prod.trackmania.core.nadeo.online/maps/favorites?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\TM_Race&playable=true&onlyMine=false ``` **Example response**: diff --git a/docs/core/maps/remove-favorite.md b/docs/core/maps/remove-favorite.md index 5a279ee..b9254ee 100644 --- a/docs/core/maps/remove-favorite.md +++ b/docs/core/maps/remove-favorite.md @@ -15,7 +15,7 @@ parameters: required: true --- -The request body contains the map to remove, identified by its mapUid +The request body contains the map to remove, identified by its mapUid: ```json { diff --git a/docs/live/maps/favorites.md b/docs/live/maps/favorites.md index 0ae39d8..06c3c1c 100644 --- a/docs/live/maps/favorites.md +++ b/docs/live/maps/favorites.md @@ -52,7 +52,7 @@ Retrieves your authenticated account's favorite tracks along with their informat **Example request**: ```plain -GET https://live-services.trackmania.nadeo.live/api/token/map/favorite?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\\TM_Race&playable=true&onlyMine=false +GET https://live-services.trackmania.nadeo.live/api/token/map/favorite?offset=0&length=1&sort=date&order=desc&mapTypeList=Trackmania\TM_Race&playable=true&onlyMine=false ``` **Example response**: