Skip to main content
Generates a temporary, single-use URL that opens the game for a specific player. The URL is short-lived and must be loaded by the client immediately.

Endpoint

POST /operator/launch

Headers

HeaderValue
AuthorizationApiKey ps_<your_api_key>
Content-Typeapplication/json

Body parameters

gameId
string
required
UUID of the game to launch. Retrieve game IDs from GET /operator/games.
playerId
string
required
Your unique identifier for the player. This is the same value PlayStarters will send to your Seamless Wallet endpoint as player_id.
currency
string
required
ISO 4217 currency code (e.g. EUR, USD, BRL). Must match the wallet currency your backend will return for this player.

Example request

curl -X POST https://api.playstarters.io/operator/launch \
  -H "Authorization: ApiKey ps_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "gameId": "game_uuid",
    "playerId": "your_unique_user_id",
    "currency": "EUR"
  }'

Response — 200 OK

{
  "gameUrl": "https://gs.example.com/launch?token=abc123",
  "scriptUrl": "https://gs.example.com/script.js",
  "externalId": "provider:game_code",
  "provider": "softswiss"
}

Response fields

gameUrl
string
Temporary URL that loads the game for the requested player. Open this URL in an iframe or a new browser window/tab on the client.
scriptUrl
string
Script that must be included on every page embedding the game (required by some providers)
externalId
string
the aggregator’s internal game identifier (for debugging)
provider
string
the provider code used
Treat the launch URL as a session token. Do not log it, cache it, or share it across players. Each call to /operator/launch returns a fresh URL.
Before launching, make sure your Seamless Wallet callback is reachable. PlayStarters will call it as soon as the game opens to read the player balance, and again for each bet, win, or refund.