Skip to main content
This guide shows how to integrate with PlayWave by calling HTTP APIs directly, without using the PlayWave Roblox SDK.

Integration flow

Prerequisites

  • API Key: Contact your PlayWave operations representative to request one
  • Roblox Studio: Game Settings → Security → Allow HTTP Requests enabled
  • Server-side only: All API calls must run in ServerScriptService

API Server URLs

Authentication

All Game Server API requests require the X-Api-Key header.
API Key must only be used in ServerScriptService Scripts. Never place it in ReplicatedStorage, StarterPlayerScripts, LocalScript, or any client-accessible location.

OTT verification — POST /v1/game/session/verify

Call this first when a player joins the game. It verifies the OTT and creates a game session.

OTT extraction

The PlayWave launcher passes the OTT UUID directly via LaunchData.

Request

Success response

Failure response

Business logic failures also return HTTP 200. Always branch on the is_valid value.

reason values


Heartbeat — PATCH /v1/game/session/heartbeat

Reports that the game session is still active. Must be called every 2 minutes (120 seconds). If heartbeats stop, the session is automatically deleted when the Redis TTL (4 min) expires.

Request

Response

result values

Error responses


Session end — DELETE /v1/game/session/end

Call when a player leaves the game. Stops billing and cleans up the session.

Request

Response

Error responses


Full implementation example

Add this Script to ServerScriptService.

Security notes

API Key protection

  • API Key must only be used in ServerScriptService Scripts
  • Never place in ReplicatedStorage, StarterPlayerScripts, LocalScript, or any client-accessible location
  • Never pass API Key to client via RemoteEvent/RemoteFunction

HttpService

  • HttpService:RequestAsync() can only be called from ServerScripts (Roblox security policy)
  • Game Settings → Security → Allow HTTP Requests must be enabled

OTT

  • OTT is single-use — consumed immediately on verify call, cannot be reused
  • Must be used within 1 minute (60 seconds) of issuance
  • OTT format: UUID (e.g., a1b2c3d4-e5f6-7890-abcd-ef1234567890)