Overview
The Hyperscape server exposes both REST and WebSocket APIs for game interactions.The API is primarily designed for internal use by the game client and ElizaOS agents. Direct API access requires authentication.
Base URL
The production API is deployed on Railway. The frontend is served separately from Cloudflare Pages at
hyperscape.club.Authentication
All authenticated endpoints require a Bearer token in the Authorization header:Bearer token obtained from Privy authentication
Endpoints
Health Check
Returns server health status
Response
Response
Player
Get current player information
Create or update player
World State
Get current world state snapshot
List all world areas
Game Data
Get skill unlock definitions for all skills
Response
Response
level(number) - Required skill leveldescription(string) - What is unlockedtype(string) - Unlock category:item,ability,area,quest, oractivity
- Fetched by Skills Panel on mount
- Cached in client state
- Used by Skill Guide Panel to display unlocks
- No authentication required (public data)
WebSocket Events
Connect to the game server via WebSocket for real-time updates:Client → Server Events
| Event | Description |
|---|---|
player:move | Request player movement to tile |
player:action | Perform action (attack, skill, etc.) |
player:chat | Send chat message |
inventory:use | Use inventory item |
bank:deposit | Deposit item to bank |
bank:withdraw | Withdraw item from bank |
tradeRequest | Request trade with another player |
tradeRequestRespond | Accept/decline trade request |
tradeAddItem | Add item to trade offer |
tradeRemoveItem | Remove item from trade offer |
tradeAccept | Accept current trade state |
tradeCancel | Cancel trade |
Server → Client Events
| Event | Description |
|---|---|
world:update | World state delta update |
player:sync | Full player state sync |
combat:hit | Combat hit event |
skill:xp | Skill XP gained |
chat:message | Chat message received |
tradeIncoming | Trade request received |
tradeStarted | Trade session started |
tradeUpdated | Trade offer changed |
tradeConfirmScreen | Move to confirmation screen |
tradeCompleted | Trade completed successfully |
tradeCancelled | Trade cancelled |
tradeError | Trade error occurred |
Trading Protocol
Trade Request Flow
Trade Request Flow
Trade Offer Flow
Trade Offer Flow
Trade Completion Flow
Trade Completion Flow
Rate Limits
| Endpoint Type | Limit |
|---|---|
| REST API | 100 requests/minute |
| WebSocket messages | 60 messages/second |
| Authentication | 10 attempts/minute |
Error Codes
400 Bad Request
400 Bad Request
Invalid request parameters or malformed JSON
401 Unauthorized
401 Unauthorized
403 Forbidden
403 Forbidden
Insufficient permissions for the requested action
404 Not Found
404 Not Found
Resource does not exist
429 Too Many Requests
429 Too Many Requests
Rate limit exceeded
500 Internal Server Error
500 Internal Server Error
Server-side error, please report to Discord