Players (PAM) reference
Mirror your players, manage lifecycle status, set responsible-gaming limits, read audit timelines.
Upsert player
POST /v1/players
Idempotent on (brand, username). Use this on first signup and any time the player's profile fields change.
| Field | Type | Required | Notes |
|---|---|---|---|
username | string | yes | Must be unique within your brand. |
email | string | yes | — |
external_ref | string | no | Your internal PAM id. Stored on the player metadata for cross-lookup. |
country_code | ISO 3166 alpha-2 | no | e.g. "US", "CA" |
date_of_birth | YYYY-MM-DD | no | Required for KYC + RG age-gating |
curl -X POST https://api.wowsino.com/v1/players \
-H "Authorization: Bearer wsk_live_..." \
-H "Content-Type: application/json" \
-d '{
"username": "StarlordV7",
"email": "sv7@example.com",
"external_ref": "pam-uuid-abc",
"country_code": "US"
}'
# 201
{ "player": { "user_id": "…", "username": "StarlordV7", "status": "active", "kyc_status": "none", … } }
Get dossier
GET /v1/players/<key>
key may be the player's UUID or their username. Returns the full dossier including KYC status, risk band, RG limits, flags.
# 200
{
"player": {
"user_id": "…",
"username": "StarlordV7",
"status": "active",
"kyc_status": "approved",
"kyc_level": 2,
"risk_band": "low",
"is_pep": false,
"is_sanctioned": false,
"tags": ["vip"],
"rg": { "deposit_daily_limit": 250, … }
}
}
Change lifecycle status
PATCH /v1/players/<key>/status
Audited. The reason is appended as a compliance note on the player dossier.
| status | Effect |
|---|---|
active | Normal play |
suspended | Account paused (operator decision) |
self_excluded | Player-initiated. Blocks all money + play |
fraud_hold / aml_hold / withdrawal_hold | Compliance-imposed holds |
affordability_review | Pending affordability documents |
closed | Account closed |
PATCH /v1/players/StarlordV7/status
{ "status": "fraud_hold", "reason": "velocity rule triggered" }
Set RG limits
POST /v1/players/<key>/rg
Partial updates allowed — only fields you send are changed. Pass null to clear.
| Field | Type | Notes |
|---|---|---|
deposit_daily_limit / _weekly / _monthly | number | USD or your brand currency |
loss_daily_limit / _weekly / _monthly | number | Net loss caps |
wager_daily_limit | number | Total wager cap |
session_duration_limit | int | Minutes |
reality_check_interval | int | Minutes between reality-check pop-ups |
cooloff_until | ISO 8601 | Short-term cool-off |
self_exclusion_until | ISO 8601 | Time-bounded self-exclusion |
self_exclusion_permanent | bool | Permanent self-exclusion (irreversible without manual escalation) |
Audit timeline
GET /v1/players/<key>/timeline?limit=N
Combined event log — KYC decisions, RG changes, operator notes — newest first.