Web API
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
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
 - http://game2.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>
  <auth>
    <value>[...]</value>
  </auth>
</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 or TAHOR
 - lang lang of the client, as ISO 639-1
 
 - author
- login is not set when calling GetConnectionAndGameParams
 - session is not set when calling GetConnectionAndGameParams
 
 - request
- name Name of the requested function.
 - param Parameters for the call.
 
 - auth Optional. Only seen with Disconnect
- value Looks like an auth ticket.
 
 
 - game
 
The server responds with XML, which has obfurscated names:
<?xml version="1.0" encoding="UTF-8"?>
<r>
  <r>
    <n>[...]</n>
    <c>
      [...]
    </c>
  </r>
  <e>execution time : 0.0010 s</e>
</r>
Here is a description of the return:
- r
- r
- n The name of the called function
 - c The return data
 
 - e A string giving the execution time.
 
 - r
 
Functions calls
GetConnectionAndGameParams
First request sent by client.
| Session required? | Parameters | Response | 
|---|---|---|
| No | 
  | 
  | 
CheckLogin
Used to check if login is already used for account creation.
| Session required? | Parameters | Response | 
|---|---|---|
| No | 
  | 
  | 
MailAccount
Used to make the server send a password recovery email.
| Session required? | Parameters | Response | 
|---|---|---|
| No | 
  | 
 Empty response  | 
Disconnect
Used to disconnect (Duh).
| Session required? | Parameters | Response | 
|---|---|---|
| Yes | 
 Empty parameters  | 
 Empty response  |