API keys

Issue secrets from the dashboard and verify them from Roblox game servers or your backend.

Generate a key

Dashboard → API Keys → Generate Key. Name the key and optionally set a project label. Copy the full secret when prompted — it is only shown once and stored as a hash on NEX.

nex_dev_xxxxxxxxxxxxxxxxxxxxxxxx

Verify endpoint

POST https://developer.nexrbx.com/api/developer/api-keys/verify

Send the key in JSON or as a Bearer token:

{ "key": "nex_dev_…" }

Or header: Authorization: Bearer nex_dev_…

Successful response

{
  "success": true,
  "valid": true,
  "name": "Production game server",
  "project": "My experience"
}

Expired auto-delivered keys return { "valid": false, "reason": "expired" }.

Licensed keys

Keys tied to a license product return extra fields on verify — product SKU, device usage, expiry, and paid update channel (update.downloadUrl). Send hwid and robloxUserId to enforce binding:

{
  "key": "nex_dev_…",
  "hwid": "device-fingerprint",
  "robloxUserId": "123456789"
}

You can also use POST /api/developer/licenses/verify for the full license response.

Examples

Check a player-provided or server-stored key before granting in-game access.

Project files

  • ServerScriptService/
    • NexKeyVerify.server.lua
NexKeyVerify.server.lua
local HttpService = game:GetService("HttpService")
local VERIFY_URL = "https://developer.nexrbx.com/api/developer/api-keys/verify"

local function verifyNexApiKey(key)
  local ok, response = pcall(function()
    return HttpService:PostAsync(
      VERIFY_URL,
      HttpService:JSONEncode({ key = key }),
      Enum.HttpContentType.ApplicationJson
    )
  end)
  if not ok then return false end
  local data = HttpService:JSONDecode(response)
  return data.valid == true
end

Revoke a key

Use Revoke in the dashboard. Revoked keys fail verification immediately and cannot be restored.