Praxsuite

Players

Vincent Depassier · September 17, 2026

A player of your game already has an account somewhere else — on Roblox, on Steam, on your own platform. These routes link that identity to a workspace record, so the rest of the workspace can address the player without your game inventing a second account system.

Auth: API key, sk_live_ or pk_live_.

Identify a player

POST /{workspaceId}/players/identify
{
  "platform": "roblox",
  "platformPlayerId": "1234567",
  "displayName": "ada",
  "metadata": { "accountAge": 812, "region": "us-east" }
}

Creates the identity link, or updates the one that already exists — call it on every session start and let it settle. platform is lowercased for you; roblox, minecraft, steam, fivem, unity, unreal and custom are the recognised values.

displayName and metadata are cached for leaderboards and admin views. Neither is trusted for anything that matters.

Read platformPlayerId on your server, from the platform's own API. A value your game client sent you is a value the player can change.

Resolve one

GET /{workspaceId}/players/resolve/{platform}/{platformPlayerId}
{
  "id": "…",
  "platform": "roblox",
  "platformPlayerId": "1234567",
  "contactId": "…",
  "displayName": "ada",
  "firstSeenAt": "2026-01-02T18:04:00Z",
  "lastSeenAt": "2026-01-14T09:22:11Z",
  "isValidated": true
}

404 with PLAYER_NOT_FOUND when there is no link.

List them

GET /{workspaceId}/players?platform=roblox&page=1&pageSize=50

All three query parameters are optional; platform narrows, and paging defaults to page 1 of 50. This is for dashboards and admin screens rather than for a game loop.

Errors

Flat, but with a code alongside the message — a shape unique to these routes:

{ "code": "PLAYER_NOT_FOUND", "message": "No identity link for roblox:1234567" }

Status

Code

400

INVALID_PLATFORM, INVALID_PLAYER_ID

401

UNAUTHORIZED

403

FORBIDDEN — the credential belongs to another workspace

404

PLAYER_NOT_FOUND

5xx

IDENTIFY_FAILED

Signing the player in

Identifying a player is not the same as giving them a session. For that — a JWT the player's client can carry to /query, with roles behind it — see POST /{workspaceId}/auth/{providerSlug}/assert under End-user authentication.