Back to Developers

< REST integration />

UTD Games

Add a full games catalog to your app — UTD runs it as your agency.

Version 1.0Private beta
REST APIServer-to-serverAny language
games_integration.sh
# 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

1

Install

Terminal
# 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
2

Request access

Add a full games catalog to your app — UTD runs it as your agency.

< 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-flagmethod
GET /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-tokensmethod
POST /api/games/api-tokens Authorization: Bearer <session-token> Content-Type: application/json

Mints 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

  • namestringrequired

    A 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-tokensmethod
GET /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}method
DELETE /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/projectsmethod
POST /api/games/projects Authorization: Bearer <session-token> Content-Type: multipart/form-data

Submits 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

  • namestringrequired

    Project 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.