Skip to content
This repository has been archived by the owner on Jan 11, 2024. It is now read-only.

The-Firexx/trackmania2020apidocumentation

Repository files navigation

ATTENTION: This repository is deprecated, as I didn't updated ever since the first few commits. If you want to visit documentation that is being updated with the latest changes, please go to https://webservices.openplanet.dev/ (thank you codecat)

Trackmania 2020 Unofficial API Documentation (DEPRECATED)

This repository is a series of markdown files containing all the documentation myself and others found about Trackmania 2020 and the API calls the game makes to work.

Warning!!

This API is not intended to be used outside of the game!!

Be aware that Nadeo can change the API without even warning us, since the API is intended only to be used in game, so don't except any support for them, and don't try to make anything serious out of this

Also, don't abuse of this API, has they have the right to lock your account since, for them, it's someone that is trying to hack or just trying to give bad performance to the servers

Progress

This is in a very begin phase so please pull request to help this project by fixing typos, fix errors, describe in more detail the use of the endpoints, helping in the structure of documentation, and most important add more information.

Any help is appreciated!

Also, if you have any project that you are developing and you are using this documentation to help you in the interaction with the Trackmania API you can share with me and I will be glad to share here your project. It can be a simple wrapper library or even a full app.

TODO

  • Since I don't have club access, I can't test some functions inside the game like rooms and clubs, so that part are lacking in this documentation. If you have club access and wants to help, but you dont want to give your credentials to me, you can DM me and I can say how you can help me
  • We still don't know how to get the accountId given an username. I ALREADY KNOW HOW TO GET THE PROFILEID!! But it seems that the Nadeo's API don't have any endpoint we can use to get the accountId from a profileId, until then the only way we can lookup data from a specific user is if the user logins with their Uplay account

Contributors

  • Myself, The-Firexx, for gathering most of this information and creating this repository
  • Marco97pa for helping on completing some information.
  • Codecat from showing some information about this, and suggest to add the warning about the use of Trackmania API. Also made this plugin for OpenPlanet to inspect the packets ingame
  • Breeku for helping on completing information about webidentities

Projects using Trackmania API

  • Breeku made a npm module that helps developers to use the Trackmania API by abstracting the HTTP requests and wrap them in methods that can be called for a more easy use of the API in a program. He also made a Trackmania Leaderboard Page where you can lookup for TOTD, Season tracks and players present on the leaderboard | Repo
  • Jonese1234 created a Leaderboard Scraper that, although it started without help, is using this documentation to use more functions.
  • Marco97pa created Track Companion app for Android by using the Trackmania API. It is also opensource
  • Codecat made a Trackmania Website where, besides listing the tracks from TOTD and seasons, you can check the records from the tracks and list servers and club rooms

Login Process and Tokens

Here you can check all the process of login and getting the tokens, with a explanation of what information the tokens have.

APIs

  • public-ubiservices.ubi.com - used only to login and get a Level 0 Token
  • prod-trackmania.core.nadeo.online - used to login and get a Level 1/2 Token and responsible for overall player stuff that needs to be configured and updated (settings, mapRecords, clubs, etc.)
  • live-services.trackmania.nadeo.live - used to get seasons, track of the days, leaderboards, servers, clubcampaigns, map review. Maybe this API is different from the prod-trackmania.core.nadeo.online since it is responsible to save and retrieve content associated with users, like ghosts, but to avoid the overload cause by the game constantly checking the leaderboard, they decided to separate that part from the rest.
  • useast1-public.aws-ubiservices.ubi.com - used to get the integration with Uplay like login and settings
  • msr-public.aws-ubiservices.ubi.com - used to update information about the activity of a user
  • akamai.net - used to download stuff like images, logos, archive, etc.
  • amazonaws.com - where they have the files hosted like maps and stuff

IDs

There are many IDs that are used to identify things and make requests. The follow list shows that IDs and their purpose:

  • ProfileId - Obtained when we login to Uplay (Level 0)
  • AccountId - Used ingame to identify a user. Obtained within the JWT Token from Level 1 or 2 Login Process
  • MapId/MapUid - Used ingame to identify a map
  • GroupId/GroupUid - Used ingame to identify a group (Needs more info about what is a group)
  • SeasonId - Used ingame to identify a season (like the campaigns, club campaigns and track of the day)
  • ClubId - Used ingame to identify a club
  • RoomId - Used ingame to identify a room inside a club (What type of rooms exist inside a club?)

Some Relevant Use Cases

Here you can check some use cases that probably you will be using and instead of trying to lookup the all documentation you can look to this file and see if you can find what you need. Work in Progress

Specification

You can access in more detail what endpoints exist, the information needed to send and the response received in the next links:

By Indexs

Index By Topic

Overall Index

By WebAPIs

Prod Trackmania API

Live Services API

UbiServices

msr-public and akamai.net

About

DEPRECATED! VISIT https://webservices.openplanet.dev/ (by codecat) Trackmania 2020 Unofficial API Documentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •