Skip to main content

Get Launcher URL

Securely retrieve a dynamic game launch URL that automatically adapts to:

  • Geo-blocking rules
  • Rotating game hosts (for availability & performance)
  • Regional compliance
  • Session token validation

Endpoint

POST /serviceApi.php
Content-Type: application/json
danger

Never hardcode game URLs — always use this endpoint for reliable, compliant launches.

https://stg.otkgaming.com/serviceApi.php
Request body
{
"action" : "getLauncherURL",
"platform" : 8,
"partnerId" : 1,
"time" : "29-08-2026 11:47:24",
"hash" : "dd9f710d5d324f66b7429052fa97debf8347e579471ab059a27d503010a31e2a",
"data": {
"gameMode": "real",
"gameId" : "1",
"lang" : "en",
"externalToken": "80bfefc4344e78f7dc13745c0efe5",
"playerId": "operators player id",
"country" : "GB",
"ip" : "users ip address",
"exitURL" : ""
}
}
info

For Demo version, "gameMode" must be set to "fun". and externalToken can be empty.


info

Hash string is calculated based on privateKey, time, and "data" in JSON string.

Hash calculation example

https://stg.otkgaming.com/serviceApi.php
const crypto = require('crypto');
const privateKey = "utj3Gfrr0W ";
const time = "29-08-2026 11:47:24";
const data = {
gameMode: "real",
gameId: "1",
lang: "en",
token: "80bfefc4344e78f7dc13745c0efe5",
exitURL: ""
};

const dataEncoded = JSON.stringify(data); // JSON.stringify does not escape slashes
const input = privateKey + time + dataEncoded;
const hash = crypto.createHash('sha256').update(input).digest('hex');

console.log(hash);
Result

d8ac5ca5c416c1aeadca11013e6dbaa613248739d7c1ad19e6f7601d57d4699f

Response Example

https://stg.otkgaming.com/serviceApi.php
{
"code" : 0,
"message" : "ok",
"data" : {
"launcherURL" : "https://stg.otkgaming.com/?partnerId=1&gameId=1&gameMode=real&lang=en&platform=8&externalToken=80bfefc4344e78f7dc13745c0efe5&exitURL="
}
}