REST API Reference
HTTP endpoints for user management, authentication, and data queries.
Authentication
Register User
POST /api/auth/register
Content-Type: application/json
{
"username": "player1",
"email": "player1@example.com",
"password": "securePassword123",
"displayName": "Player One"
}
Response:
{
"success": true,
"token": "eyJhbG...",
"user": {
"userId": "uuid",
"username": "player1",
"displayName": "Player One"
}
}
Login
POST /api/auth/login
Content-Type: application/json
{
"username": "player1",
"password": "securePassword123"
}
Register Anonymous User
POST /api/auth/register-anonymous
Content-Type: application/json
{
"playerId": "uuid",
"displayName": "Guest Player"
}
Get Current User
GET /api/auth/me
Authorization: Bearer <token>
Users
Get User by ID
GET /api/users/{userId}
Update Profile
PUT /api/users/profile
Authorization: Bearer <token>
Content-Type: application/json
{
"displayName": "New Display Name",
"email": "newemail@example.com",
"profilePrivacy": "Public"
}
Search Users
GET /api/users/search?q=player
Authorization: Bearer <token>
Friends
Get Friends List
GET /api/friends
Authorization: Bearer <token>
Get Friend Requests
GET /api/friends/requests
Authorization: Bearer <token>
Send Friend Request
POST /api/friends/request/{toUserId}
Authorization: Bearer <token>
Accept Friend Request
POST /api/friends/accept/{friendUserId}
Authorization: Bearer <token>
Decline Friend Request
POST /api/friends/decline/{friendUserId}
Authorization: Bearer <token>
Remove Friend
DELETE /api/friends/{friendUserId}
Authorization: Bearer <token>
Games
List Games
GET /api/games
Response:
{
"activeGames": [...],
"waitingGames": [...]
}
Get Game by ID
GET /api/game/{gameId}
Get Player's Active Games
GET /api/player/{playerId}/active-games
Get Player's Game History
GET /api/player/{playerId}/games?limit=20&skip=0
Get Player Statistics
GET /api/player/{playerId}/stats
Themes
List Public Themes
GET /api/themes?limit=50&cursor=xyz
Get Default Themes
GET /api/themes/defaults
Get Theme by ID
GET /api/themes/{themeId}
Create Theme
POST /api/themes
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "My Theme",
"description": "A custom board theme",
"visibility": "Public",
"colors": {
"boardBackground": "#8B4513",
"lightPoint": "#DEB887",
"darkPoint": "#654321",
"whiteChecker": "#FFFFFF",
"redChecker": "#8B0000"
}
}
Update Theme
PUT /api/themes/{themeId}
Authorization: Bearer <token>
Delete Theme
DELETE /api/themes/{themeId}
Authorization: Bearer <token>
Like/Unlike Theme
POST /api/themes/{themeId}/like
DELETE /api/themes/{themeId}/like
Authorization: Bearer <token>
Bots and Evaluators
List Available Bots
GET /api/bots
List Available Evaluators
GET /api/evaluators
Statistics
Server Statistics
GET /stats
Database Statistics
GET /api/stats/db
Health
Health Check
GET /health
Response:
{
"status": "healthy",
"timestamp": "2025-01-18T12:00:00Z"
}