Select Page

ArcadeKomodo Online API (AKO)

The ArcadeKomodo.com Online Subsystem API (AKO) provides a HTTPS Interface for your Game Products to communicate with ArcadeKomodo.com’s AKO Contests Servers over the Internet. AKO can be easily wrapped into Platform-specific Plugin that when added to your Game Application, provides instant access to ArcadeKomodo’s Contest & Tournament Monetization services.

Services include:

  1. User Authentication and Access
  2. Server Matchmaking and Session Logging
  3. Friends & Groups Manager
  4. Points Management
  5. Linear and Multi-tiered Scoreboards
  6. Achievements
  7. Contests Management
  8. Metadata Single User & Group-shared Cloud Storage
  9. Widgets

AKO is designed with the highest priorities on Security, Performance, Flexibility, and Developer-friendliness, respectively. All operations dealing with sensitive data and anti-cheat mechanisms are handled securely on AKO Contests Servers. AKO is flexible enough to work along side other Online APIs on the Client-side and provides an interface to popular Web-based API’s for Steam, Facebook, Google Play, GameJolt, others, thorough ArcadeKomodo.com on the back-end.

Transactions & Notifications

AKO uses HTTPS POST Method exclusively to send Requests. A Request is expected to receive a specific type of Response from the AKO Contests Server. We refer to this Request-Response Pair as a Transaction. A Request that does not require a Response is referred to as a Notification. AKO Transactions & Notifications implement the JSON-RPC 2.0 Specification to request services from AKO Contests Servers.

JSON-RPC Example:

{“jsonrpc”:”2.0″,
“method”:”Session_INVITE”,
“params”:{
    “game_id”:”6e73861fd2d75a76e54b472e609eaf98″,
    “user”:”techlordx”,
    “pass”:”6e4cd40a1a8c17f191d2118d16a976a7″,
    “format”:”AKOJSON”
},
“id”: 1}

A Session must be established with AKO Contests Servers to receive any services. The Game Application must initiate the process by sending a Invitation Transaction: Session INVITE or User REGISTER. These Transactions provide Authentication Information to establish a Session with AKO Contests Servers. Due to implementation of the JSON-RPC 2.0 Specification, the Request Parameters and Response Result contain information specific to the type of Transaction/Notification.

Using an example Session INVITE Transaction below, we’ll explain it’s structure:

Request

JSON-RPC Parameters Required Datatype Description
{"jsonrpc":"2.0",        
"method":"Session_INVITE",       Service Transaction Method.
"params":{        
  "game_id":"6e73861fd2d75a76e54b472e609eaf98", x string The ID of your Game Application issued by ArcadeKomodo.com.
  "user":"techlordx", x string The name of the Game Server or Player.
  "pass":"6e4cd40a1a8c17f191d2118d16a976a7", x string Game Server (optional) or User Pass Token.
  "format":"AKOJSON"   string Response Output Format. Default JSON.
},        
"id": 1}        

The method is the Service Transaction. Each Service has it own set of Transactions. The parameters passed to RPC are Session Identification Data: game_id and user credentials. Session Identification Data persists as long as a Session is Alive. This data includes:

  • IP (HTTPS Header) is unique identifier for the User-Agent’s Network Connection.
  • Game_Id is unique identifier for the Game Product assigned by ArcadeKomodo.com upon Licensing.
  • User Credentials is unique identifier for Multiplayer Server, Single Player, or Team.

Response

If Authentication of the Session INVITE Transaction is successful, the AKO Contests Servers will respond with a Signature for use in the next Transaction. See Signature:

JSON-RPC Parameters Required Datatype Description
{"jsonrpc":"2.0",        
"result": {        
  "signature":"3208fde0470719372f8313ddd5884a75" x hash Signed Authentication Token issued by AKO Contest Server.
},        
"id": 1}        

Otherwise, if the Authentication fails, the result is an Failure code is in the response:

JSON-RPC Parameters Required Datatype Description
{"jsonrpc":"2.0",        
"result":{        
  "failure":1 x integer Failure Code 1: Authentication Failed. Incorrect Username/Password Combination.
},        
"id": 1}        

AKO Contests Server Response will always contain a Signature on success or an Failure Code on failure. Note: RPC Call with Invalid JSON  will receive the applicable JSON-RPC error Responses:

{"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "1"}
{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}

Signature

A Signature is a unique Signed Authentication Token issued by ArcadeKomodo.com to your Game App for validating all Transactions & Notifications. For performance, ArcadeKomodo.com associates multiple pieces of Session identification Data to the Signature, eliminating the need to send Session Identification Data Key/Value pairs to authenticate each Request.

With exception to Initiation Transactions, AKO Contests Servers expect a Signature with all Transactions & Notifications. All Transaction Response contain a new Signature for use in the next Transaction/Notification Request. Notifications do not return a new signature leaving Signature reusable.

If AKO Contests Servers receive a Transaction with an unexpected Signature, Authentication will fail with an Error Response. Three Failed attempts will result in Session Closure and a new Session INVITE is required. If a Notification is received with an unexpected Signature, the Notification is ignored.

Formats

AKO Contests Server can return data in the following formats:

JSON (default)
Returns data as a JSON string.This is the default format if none is requested.
AKOJSON (Alphanumeric Keynames w/ Datatype Indicator and No Quotes)
Returns data as a JSON string.
XML
Returns information as XML.
Key|Value Pair
Returns data with each key|value pairs separated by carriage return. This is a simple data format to use if you can’t parse XML or JSON data.
TournamentBlitz (Legacy)
The first API format developed. Returns key/value data separated by carriage return. A symbolic homage to the original TournamentBlitz, NOT for production use.
RAW
This is a generic data format used for certain URL paths to return a chunk of single data.