Gamearly API v1
Dashboard

Ownership & anti-piracy / Entitlements & ownership

Entitlements and ownership#

Gamearly stays DRM-agnostic: we never modify your game files or inject any DRM. Instead we give you the primitives to verify ownership yourself, from your game or your backend.

Your API key is scoped to a single project, so ownership is always checked against your game.

Entitlement calls are private-key only

Both routes require your private key (gak_prv_…): entitlements/check needs entitlements:read, entitlements/revoke needs entitlements:write. Call them from your server, never from the game client.

Revoke is obvious — it removes a player's access. Check is excluded too, and deliberately: a game asking us whether its own player owns the game proves nothing, while a key extracted from the build would let anyone enumerate purchase status by partner_user_id. If your client needs to know, have your server ask and tell it.

Check ownership#

GET /v1/entitlements/check

Query parameters

Parameter Required Meaning
partner_user_id yes The player's id in your own system. Must be linked — see Gamearly Connect.
channel no Restrict the check to a single build channel id.

Response

{
  "linked": true,
  "owns": true,
  "gamearly_user_id": "8a8c0198-6e85-4fa3-8c7f-9f6d43bcb8b2",
  "partner_user_id": "A1B2C3",
  "game_id": 42,
  "entitlements": [
    { "channel_id": "…", "source": "STORE", "claimed_at": "…", "expires_at": null, "build_version": "1.4.2" }
  ],
  "last_played_at": "2025-08-22T12:34:56Z",
  "total_playtime_seconds": 8123,
  "currently_playing": true,
  "active_sessions": [
    { "installation_id": "…device-uuid…", "started_at": "2025-08-22T12:30:00Z", "duration_seconds": 296 }
  ]
}
  • source is one of STORE (paid on the platform), DIRECT (granted by the studio), KEY, or QUEST.
  • active_sessions lets you see the devices currently playing, for your own device or concurrency rules.
  • If the player isn't linked: { "linked": false, "owns": false, … }.

Revoke access#

POST /v1/entitlements/revoke

{ "partner_user_id": "A1B2C3", "channel": "…channel id…" }

Revokes access you grantedDIRECT, KEY or QUEST. On success the player's launcher is told to prompt game removal.

Paid entitlements cannot be revoked here

Paid STORE entitlements return {"error": "refund_via_platform"}. Undo those with a platform refund, so that payment and access stay consistent.