< REST integration />
UTD Games
Add a full games catalog to your app — UTD runs it as your agency.
# From your backend, read the launch flag with the API token.
# Show or hide games in your app based on the response.
curl https://utdsoftware.com/api/games/launch-flag \
-H "Authorization: Bearer 12|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# => { "games_enabled": true }
# games_enabled reflects the games wallet balance (gated at zero).
# Cache briefly server-side; never ship this token to a client app.REST
Protocol
launch-flag
Runtime flag
Server-to-server
Integration
Agency
Model
< utd-games />
Key features
A server-to-server REST integration that lets your app offer a full games catalog without building or hosting anything. UTD acts as your games agency: you provision each project from the dashboard, our team reviews and activates it, and your backend reads a single launch flag to show or hide games. Gameplay runs directly between your app and the provider; UTD handles provisioning, the launch flag, and monthly commission billing — provider secrets never reach your app.
Server-to-server REST — integrate from any language, no SDK required
One launch flag endpoint decides whether to show or hide games
Scoped API tokens (launch-flag only) — safe to run on your servers
Automatic gating: games disable when the wallet balance hits zero
Agency model — UTD provisions and reviews every project before it goes live
Monthly commission billing on net coins, computed and settled for you
Provider secrets stay server-side and are never exposed to your app
Up to 10 active API tokens per account, revocable anytime
< utd-games />
Get started
Install
# Mint a server-to-server API token (scoped to launch-flag only).
# Run once from your dashboard session; the secret is shown a single time.
curl -X POST https://utdsoftware.com/api/games/api-tokens \
-H "Authorization: Bearer <your-session-token>" \
-H "Content-Type: application/json" \
-d '{"name":"production-server"}'
# => { "token": { "id": 12, "name": "production-server", ... },
# "secret": "12|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } # store securely< utd-games />
API reference
Launch flag
The one endpoint your app calls at runtime. Read it server-to-server with a scoped API token to decide whether to show or hide games. Reflects the games wallet balance — automatically gated at zero.
GET /api/games/launch-flagmethodGET /api/games/launch-flag
Authorization: Bearer <api-token>Returns whether games are enabled for the account. Requires an API token carrying the games:launch-flag ability (a session token also works for owner testing). Cache the result briefly server-side; never expose the token to a client app.
Returns: { games_enabled: boolean } — games_enabled is true when the games wallet has a positive balance, false when gated.
API tokens
Server-to-server tokens scoped to launch-flag only — they cannot read analytics, mint other tokens, or touch any other route. Managed from your dashboard session (the session bearer). Up to 10 active tokens per account.
POST /api/games/api-tokensmethodPOST /api/games/api-tokens
Authorization: Bearer <session-token>
Content-Type: application/jsonMints a new API token scoped to the games:launch-flag ability. The plaintext secret is returned once and never again — store it securely. Fails with 422 token_limit_reached at 10 active tokens.
Parameters
namestringrequiredA label to identify the token (max 60 chars), e.g. "production-server".
Returns: { token: { id, name, last_used_at, created_at }, secret: string } — secret is the plaintext bearer, shown only in this response (HTTP 201).
GET /api/games/api-tokensmethodGET /api/games/api-tokens
Authorization: Bearer <session-token>Lists your active games API tokens (masked — no secrets). Only games tokens are listed; your browser session token is never included.
Returns: { tokens: Array<{ id, name, last_used_at, created_at }> } — Metadata only; the secret is never re-exposed after creation.
DELETE /api/games/api-tokens/{id}methodDELETE /api/games/api-tokens/{id}
Authorization: Bearer <session-token>Revokes (permanently deletes) one of your games API tokens by id. Returns 404 if the id is not one of your games tokens.
Returns: { ok: true } — Revocation is immediate and irreversible.
Provisioning (agency model)
UTD is your games agency: each project is created from the dashboard and reviewed by our team before it goes live. You do not integrate the game engine yourself — gameplay runs directly between your app and the provider; UTD handles provisioning, the launch flag, and monthly billing.
POST /api/games/projectsmethodPOST /api/games/projects
Authorization: Bearer <session-token>
Content-Type: multipart/form-dataSubmits a new games project for review from your dashboard session. It starts in the pending state with no provider data; the UTD team provisions it with the provider and approves it (status becomes active). Provider secrets are never exposed to your app.
Parameters
namestringrequiredProject display name (max 255).
Returns: { data: { id, name, status, ... } } — The created project in pending status, awaiting UTD review.
Ready to build with UTD?
Create your account, fund your master wallet, and turn on the services you need.