SRB2 Master Server API v2.2 Draft

30 June 2022

:james:

Table of Contents

Common Parameters (link here)

Every request must include a v field in the query string. The value of this field will be the version of the API used. For example, a request with the query string ?v=2 would yield version 2 of the API.

All requests may include a token field in the query string. This is an optional authentication.

The application field in /games/application is case insensitive.

POST Requests (link here)

GET Requests (link here)

POST Request Bodies (link here)

All of these are encoded according to application/x-www-form-urlencoded. The following fields are valid for each request. Fields are mandatory unless stated otherwise.

servers...unlist has no body.

rooms...register (link here)

Field Name Example
port
5029
contact
bird@jameds.org

The contact field is optional.

servers...update (link here)

The following fields are optional.

Field Name Example
contact
jart#1337

Response Bodies (link here)

Response bodies are plain text. Fields are delimited by special characters. For lists, each entry is also delimited by a special character or sequence. Fields must be in order. Fields may be specially encoded, which will be specified.

ASCII character values are in decimal.

Server Registration (link here)

Field Example
Server ID 11920

Server ID ends with a line feed (ASCII 10).

Server List (link here)

Field Example
Address
127.0.0.1
Port
5029
Contact
funnybirdjart@jameds.org

Contact is percent encoded.

Address and Port end with a space (ASCII 32). Contact ends with a line feed (ASCII 10). And so ends the listing.

Version Listing (link here)

Field Example
Version 24
Version Name v2.2.2

Version ends with a space (ASCII 32). Version Name ends with a line feed (ASCII 10).

Rules (link here)

Field Example
Content Rule 1 - don't break the rules.

Content ends with two consecutive line feeds (ASCII 10).

Status Codes (link here)

Status 200 is returned for any successful request.

The following errors may be returned, with a short description in the response body, in plain text. The description is terminated by a line feed (ASCII 10).

ASCII character values are in decimal.

Code Reason
400 Request was malformed. Some field missing or invalid API path.
403 A request cannot be performed. Banning is handled this way.
404 An object could not be found.