The Player Metadata API allows you to store and retrieve custom data for each player. This can include player preferences, game progress, settings, or any other player-specific information.
Base URL
All metadata endpoints are prefixed with /api/game/metadata/
.
Authentication
All metadata endpoints require a valid JWT token in the Authorization header:
Authorization: Bearer <your-jwt-token>
Retrieve the current player’s metadata.
Endpoint: GET /api/game/metadata
Headers:
Authorization: Bearer <your-jwt-token>
Response:
{
"statusCode": 200,
"data": {
"playerId": "player-123",
"sequentialId": 12345,
"metadata": {
"level": 5,
"coins": 1000,
"settings": {
"soundEnabled": true,
"musicVolume": 0.8
},
"lastPlayed": "2024-01-01T12:00:00Z"
}
}
}
Retrieve metadata for a specific player using their sequential ID.
Endpoint: GET /api/game/metadata/{sequentialId}
Headers:
Authorization: Bearer <your-jwt-token>
Example Request:
GET /api/game/metadata/12345
Response:
{
"statusCode": 200,
"data": {
"playerId": "player-123",
"sequentialId": 12345,
"metadata": {
"level": 5,
"coins": 1000,
"settings": {
"soundEnabled": true,
"musicVolume": 0.8
}
}
}
}
Store or update the current player’s metadata.
Endpoint: POST /api/game/metadata
Headers:
Authorization: Bearer <your-jwt-token>
Content-Type: application/json
Request Body:
{
"data": {
"level": 5,
"coins": 1000,
"settings": {
"soundEnabled": true,
"musicVolume": 0.8
},
"lastPlayed": "2024-01-01T12:00:00Z"
}
}
Response:
{
"statusCode": 200,
"data": {
"playerId": "player-123",
"sequentialId": 12345,
"metadata": {
"level": 5,
"coins": 1000,
"settings": {
"soundEnabled": true,
"musicVolume": 0.8
},
"lastPlayed": "2024-01-01T12:00:00Z"
}
}
}
Remove all metadata for the current player.
Endpoint: DELETE /api/game/metadata
Headers:
Authorization: Bearer <your-jwt-token>
Response:
{
"statusCode": 200,
"data": "Data deleted"
}
The metadata can contain any JSON-serializable data. Common use cases include:
- Game Progress: Level, experience points, achievements
- Player Settings: Audio settings, graphics preferences, controls
- Game State: Current position, inventory, unlocked content
- Statistics: Play time, high scores, completion rates
Error Responses
Unauthorized
{
"statusCode": 401,
"error": {
"message": "Unauthorized"
}
}
Player Not Found
{
"statusCode": 404,
"error": {
"message": "Player not found"
}
}
Invalid Data
{
"statusCode": 400,
"error": {
"message": "Invalid metadata format"
}
}
Best Practices
- Data Structure: Use consistent data structures for better organization
- Size Limits: Keep metadata reasonably sized (under 1MB)
- Privacy: Don’t store sensitive personal information
- Backup: Consider backing up important metadata locally
- Validation: Validate metadata structure before sending
Responses are generated using AI and may contain mistakes.