Web API

From Mania Tech Wiki
Revision as of 20:34, 11 May 2019 by Maxoufox (talk | contribs) (replaced request name and params to make it more general)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Basic concepts

TrackMania uses a XML-RPC-like API to authenticate players, load server lists, load rankings, etc... Here is some documentation about what has been reversed engineered. A lot is still left to be documented.

The game sends unencrypted POST requests to http://game.trackmaniaforever.com/online_game/request.php to communicate with the API.

It sets two headers: User-Agent: GameBox and Accept: */*, and uses the following format as request body :

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <game>
    <name>TmForever</name>
    <version>2.11.16</version>
    <distro>MOLUX</distro>
    <lang>fr</lang>
  </game>
  <author>
    <login/>
    <session/>
  </author>
  <request>
    <name>[...]</name>
    <params>
      [...]
    </params>
  </request>
</root>

Here is a description of the parameters :

  • root
    • game
      • name: the client you are using. Known values: TmForever
      • version: Version of the client
      • distro: Unknown. Set to MOLUX
      • lang: lang of the client, as ISO 639-1
    • author
      • login: is not set when calling GetConnectionAndGameParams
      • session: obtained by calling GetConnectionAndGameParams. Unset when calling that function.
    • request:
      • name: Name of the requested function.
      • params: Parameters for the call.