API Documentation
The API is the game. Build your own client, configure strategies, and compete through HTTP requests.
New to APIs?
An API (Application Programming Interface) is how programs talk to each other over the internet.
Instead of clicking buttons in a browser, you send HTTP requests (like GET,
POST) to URLs and receive
JSON responses — structured data your code can read.
In this game, every action is an API call. You'll use a tool like
curl, Postman, or your own code
to register, build teams, and battle other players. A JWT token is like a temporary password — you get one when you log in
and include it with every request so the server knows who you are.
Don't worry about memorizing endpoints. Every response includes _links
that tell you where to go next — just follow them.
Try It Now
No account needed. Copy any command below into your terminal and hit enter.
See the Leaderboard
curl https://apicombat.com/api/v1/leaderboard?limit=5
Real players, real rankings. This is live data.
Check Game Status
curl https://apicombat.com/api/v1/sdk/status
Player count, active seasons, total battles — proof the game is alive.
Browse Strategies
curl https://apicombat.com/api/v1/strategies/browse?limit=3
Community-created battle strategies with win rates and ratings.
Like what you see? Register below to start battling.
Quick Start
3 steps to your first battle. You start with 3 units and a ready-to-go team.
Register
POST /api/v1/auth/register
Create an account. You get a JWT token, 3 starter units, and a default team — ready to fight.
Queue Battle
POST /api/v1/battle/queue
Enter matchmaking. Skip teamId to use your default team. The system pairs you by rating.
Check Results
GET /api/v1/battle/results/{id}
Get the full turn-by-turn combat log, rewards, and rating change.
Want more control? Build custom teams, unlock more units, and join a guild when you're ready.
Stuck? Try This
401
"Unauthorized"
Your token expired (they last 60 minutes). Hit POST /api/v1/auth/login again to get a fresh one.
404
"Battle not found"
Battles resolve asynchronously. Wait 10–15 seconds after queuing, then poll GET /api/v1/battle/results/{id} with the battleId from the queue response.
400
"Team not found" or "No teams"
Your Starter Team is created automatically on registration. If you deleted it, create a new one via POST /api/v1/team/configure with at least 1 unit.
Authentication
Most endpoints require a JWT Bearer token. Here's how it works:
Register or Login
POST to /api/v1/auth/register or /api/v1/auth/login
Save Your Token
The response includes a JWT token valid for 60 minutes.
Include in All Requests
Add the header Authorization: Bearer <token>
Refresh Before Expiry
POST to /api/v1/auth/refresh for a new token.
# Register
curl -X POST /api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"ShadowBlade","email":"me@example.com","password":"str0ngP@ss"}'
# Use the returned token
curl /api/v1/player/profile \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Your API Token
Paste your JWT token below. All "My token" copy buttons will auto-fill it. Stored in your browser only — never sent anywhere.
Quick Copy — Authenticated Commands
Save your token above, then use the "My token" button to copy these with it pre-filled.
# View your profile
curl https://apicombat.com/api/v1/player/profile \
-H "Authorization: Bearer YOUR_TOKEN"
# Queue a casual battle
curl -X POST https://apicombat.com/api/v1/battle/queue \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"casual"}'
# Check your roster
curl https://apicombat.com/api/v1/player/units \
-H "Authorization: Bearer YOUR_TOKEN"
Following the Links
Every response includes _links — related endpoints you can follow without memorizing URLs.
Self-Discoverable
After a battle, the result links to the replay, both players' profiles, and a shortcut to queue again. No docs lookup required.
Navigate Naturally
Your profile links to your roster, teams, achievements, and the leaderboard. Each team links to the battle queue. Just follow the chain.
Method Included
Each link includes method (GET, POST, etc.) so your client knows exactly how to call it.
{
"battleId": "f47ac10b-...",
"winnerId": "a1b2c3d4-...",
"rewards": { "currency": 150, "ratingChange": 24 },
"_links": {
"self": { "href": "/api/v1/battle/results/f47ac...", "method": "GET" },
"replay": { "href": "/api/v1/replays/f47ac...", "method": "GET" },
"queue_again": { "href": "/api/v1/battle/queue", "method": "POST" }
}
}
Strategy Guide
The strategy field on your team is optional. Without one, units use default AI. With one, you control exactly how they fight.
shield Formations
| Value | Effect |
|---|---|
| aggressive | +15% attack bonus |
| defensive | -15% damage taken |
| balanced | No stat bonuses |
target Target Priority
An ordered array evaluated top-to-bottom. Units attack the first matching target.
| Value | Targets |
|---|---|
| lowest_hp | Enemy with lowest current HP |
| healers | Enemy Healers first |
| highest_threat | Enemy with highest Attack stat |
| mages | Enemy Mages first |
| tanks | Enemy Tanks first |
bolt Ability Rules
A dictionary keyed by ability name. Each rule has a when condition and a target.
| when | Fires if... |
|---|---|
| always | Always use when off cooldown |
| ally_hp_below_50 | Any ally below 50% HP |
| ally_hp_below_30 | Any ally below 30% HP |
| enemy_count_gte_2 | 2+ enemies alive (good for AoE) |
| enemy_count_gte_3 | 3+ enemies alive |
| self_hp_below_50 | Caster's own HP below 50% |
| target | Hits... |
|---|---|
| priority | Uses your targetPriority list |
| lowest_hp | Enemy with lowest HP |
| highest_threat | Enemy with highest Attack |
| all_enemies | All enemies (AoE abilities) |
| lowest_ally_hp | Ally with lowest HP (for heals) |
| self | The casting unit itself |
| all_allies | All allies (AoE heals/buffs) |
code Full Example
{
"name": "404 Fighters",
"unitIds": ["unit-id-1", "unit-id-2", "..."],
"strategy": {
"formation": "balanced",
"targetPriority": ["healers", "lowest_hp"],
"abilities": {
"Fireball": {
"when": "always",
"target": "priority"
},
"Meteor Storm": {
"when": "enemy_count_gte_2",
"target": "all_enemies"
},
"Fortify": {
"when": "ally_hp_below_50",
"target": "self"
}
}
}
}
What this does:
- • Balanced formation — no stat bonuses, no penalties
- • Kill enemy healers first, then focus lowest HP
- • Fireball fires every turn at the priority target
- • Meteor Storm (AoE) only fires when 2+ enemies remain
- • Fortify self-heals when any ally drops below 50% HP
Tip: Start simple — just formation and targetPriority go a long way. Add ability rules later once you see how battles play out.
What's Next After Your First Battle?
You've got the basics. Here's where the game really opens up.
Daily Challenges
Complete daily objectives for bonus gold and XP. New challenges every 24 hours.
GET /api/v1/challenges/daily
Join a Guild
Team up with other players to tackle cooperative boss raids and earn shared rewards.
POST /api/v1/guild/create
Unit Mastery
The more you battle with a unit, the stronger your bond. Track mastery across all classes.
GET /api/v1/mastery/progress
Climb the Ranks
Climb the API leaderboard from Rubber Duck to "I Use Arch btw." Can you reach the top?
GET /api/v1/leaderboard
Endpoints
Auth
Player registration, login, and token management. Your journey begins here.
POST
/api/v1/auth/register
Beginner
Public
expand_more
Register a new player account.
Creates a new player with 1000 starting currency and an empty unit roster.
Returns a JWT token you can use immediately to start building your army.
Usernames must be unique and between 3-50 characters. Passwords require at least 8 characters.
Request Body
| Property | Type | Description |
|---|---|---|
| username * | string | Your unique display name, visible to other players. 3-50 characters. (min: 3, max: 50 chars) |
| email * | string (email) | Email address for account recovery. Must be unique across all accounts. (min: 1, max: 100 chars) |
| password * | string | Account password. Minimum 8 characters. (min: 8, max: 100 chars) |
Responses
201
Account created. Contains your player ID and JWT token.
400
Validation failed (e.g., password too short).
409
Username or email already taken.
Examples
{
"username": "DragonSlayer42",
"email": "player@example.com",
"password": "SecurePass123!"
}
{
"playerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"username": "DragonSlayer42",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresAt": "2025-06-15T15:30:00Z"
}
POST
/api/v1/auth/login
Beginner
Public
expand_more
Authenticate and receive a JWT token.
Returns a JWT Bearer token valid for 60 minutes. Include it in the Authorization header
of all subsequent requests as Bearer <token>.
Request Body
| Property | Type | Description |
|---|---|---|
| email * | string (email) | Your registered email address. (min: 1 chars) |
| password * | string | Your account password. (min: 1 chars) |
Responses
200
Authentication successful. Contains player ID, token, and expiration.
401
Invalid email or password.
Examples
{
"email": "player@example.com",
"password": "SecurePass123!"
}
{
"playerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresAt": "2025-06-15T16:30:00Z"
}
POST
/api/v1/auth/refresh
Beginner
Public
expand_more
Refresh an expiring JWT token.
Exchange your current valid token for a fresh one with a new expiration.
Call this before your token expires to maintain an active session without re-entering credentials.
Responses
200
New token issued.
401
Current token is invalid or already expired.
Player
View your profile, manage your unit roster, and unlock new combatants.
GET
/api/v1/player/profile
Beginner
Public
expand_more
Get your player profile.
Returns your account details including level, currency balance, API rating,
and counts of owned units and configured teams.
Responses
200
Player profile with current stats.
401
Unauthorized
404
Player not found.
GET
/api/v1/player/roster
Beginner
Public
expand_more
List all units in your roster.
Returns every unit you own, including their stats, class, and abilities.
These are the combatants available for team composition.
Responses
200
Array of owned units with full ability details.
POST
/api/v1/player/roster/unlock
Beginner
Public
expand_more
Unlock a new unit from the template roster.
Spend in-game currency to add a template unit to your roster. Each unit can only
be unlocked once. Check available units and costs at GET /api/v1/player/roster/available.
Request Body
| Property | Type | Description |
|---|---|---|
| templateUnitId optional | string (uuid) |
Responses
201
Unit unlocked and added to your roster.
400
Insufficient currency or unit already owned.
Examples
{
"templateUnitId": "b7e4f2a1-9c38-4d56-a1e2-3f4b5c6d7e8f"
}
{
"id": "d4c3b2a1-8f7e-6d5c-4b3a-2e1f0a9b8c7d",
"name": "Iron Vanguard",
"class": "Warrior",
"health": 120,
"attack": 25,
"defense": 30,
"speed": 10,
"currencyRemaining": 700
}
GET
/api/v1/player/roster/available
Beginner
Public
expand_more
Browse the unit shop.
Lists all template units available for purchase, with stats, class, abilities,
and unlock cost. Units you already own are excluded.
Responses
200
Array of template units available for unlock.
GET
/api/v1/player/achievements
Beginner
Public
expand_more
Get your achievements.
Returns all achievements with your progress toward each one.
Secret achievements are hidden until unlocked.
Responses
200
Array of achievements with progress.
GET
/api/v1/player/notifications/count
Public
expand_more
Get your unread notification count.
Responses
200
Unread count.
GET
/api/v1/player/notifications
Public
expand_more
Get your notifications.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| page | Query | integer | Page number (default 1). (default: 1) |
| unreadOnly | Query | boolean | Filter to unread only (default false). |
Responses
200
Paginated notifications.
POST
/api/v1/player/notifications/{notificationId}/read
Public
expand_more
Mark a notification as read.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| notificationId * | Path | string | Notification ID. |
Responses
204
Notification marked as read.
POST
/api/v1/player/notifications/read-all
Public
expand_more
Mark all notifications as read.
Responses
204
All notifications marked as read.
GET
/api/v1/player/notifications/preferences
Public
expand_more
Get your notification preferences.
Responses
200
Current notification preferences.
PUT
/api/v1/player/notifications/preferences
Public
expand_more
Update your notification preferences.
Request Body
| Property | Type | Description |
|---|---|---|
| battle optional | boolean | |
| guild optional | boolean | |
| progression optional | boolean | |
| marketplace optional | boolean | |
| competitive optional | boolean | |
| education optional | boolean |
Responses
204
Preferences updated.
GET
/api/v1/player/notifications/digest
Beginner
Public
expand_more
Get notification digest (summary grouped by category).
Returns a compact digest of all unread notifications grouped by category,
with counts and the 10 most recent highlights. Use this for a quick status check
instead of paginating through all notifications.
Responses
200
Notification digest with category counts and highlights.
Team
Assemble squads of up to 5 units, assign battle strategies, and prepare for war.
POST
/api/v1/team/configure
Intermediate
Public
expand_more
Create a new team.
Assemble a squad of 1-5 units from your roster and optionally assign a battle strategy.
Teams are your entry ticket to battle — you cannot queue without one.
The strategy object controls how your units behave in combat: formation, target priority,
and conditional ability usage. If omitted, units use default AI behavior.
Request Body
| Property | Type | Description |
|---|---|---|
| name * | string | Display name for this team. 1-100 characters. (min: 1, max: 100 chars) |
| unitIds * | array<string> | IDs of units from your roster to include. 1-5 units required. |
| strategy optional | StrategyConfig ↗ |
Responses
201
Team created with full unit details and strategy.
400
Invalid team size, missing units, or units not in your roster.
Examples
{
"name": "Alpha Strike Force",
"unitIds": [
"d4c3b2a1-8f7e-6d5c-4b3a-2e1f0a9b8c7d",
"e5d4c3b2-9a8f-7e6d-5c4b-3a2e1f0a9b8c",
"f6e5d4c3-ab9a-8f7e-6d5c-4b3a2e1f0a9b"
],
"strategy": {
"formation": "balanced",
"targetPriority": ["healers", "lowest_hp"],
"abilities": {
"Fireball": {
"when": "always",
"target": "priority"
},
"Fortify": {
"when": "ally_hp_below_50",
"target": "self"
}
}
}
}
{
"id": "c8a7b6d5-4e3f-2a1b-9c8d-7e6f5a4b3c2d",
"name": "Alpha Strike Force",
"units": [
{
"id": "d4c3b2a1-8f7e-6d5c-4b3a-2e1f0a9b8c7d",
"name": "Iron Vanguard",
"class": "Warrior",
"level": 1,
"health": 120,
"attack": 25,
"defense": 30,
"speed": 10
}
],
"strategy": {
"formation": "balanced",
"targetPriority": ["healers", "lowest_hp"],
"abilities": {}
},
"createdAt": "2026-02-17T14:30:00Z",
"updatedAt": "2026-02-17T14:30:00Z"
}
GET
/api/v1/team/{teamId}
Beginner
Public
expand_more
Get a specific team by ID.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| teamId * | Path | string | The unique team identifier. |
Responses
200
Team details with units and strategy.
404
Team not found or does not belong to you.
PUT
/api/v1/team/{teamId}
Intermediate
Public
expand_more
Update an existing team.
Replace the team's name, unit composition, and/or strategy. Send the complete desired
state — this is a full replacement, not a partial update.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| teamId * | Path | string | The team to update. |
Request Body
| Property | Type | Description |
|---|---|---|
| name * | string | Display name for this team. 1-100 characters. (min: 1, max: 100 chars) |
| unitIds * | array<string> | IDs of units from your roster to include. 1-5 units required. |
| strategy optional | StrategyConfig ↗ |
Responses
200
Updated team details.
400
Invalid configuration.
404
Team not found or does not belong to you.
DELETE
/api/v1/team/{teamId}
Beginner
Public
expand_more
Delete a team.
Permanently removes a team configuration. The units themselves remain in your roster.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| teamId * | Path | string | The team to delete. |
Responses
204
Team deleted.
404
Team not found or does not belong to you.
GET
/api/v1/team/list
Beginner
Public
expand_more
List all your teams.
Returns every team you have configured, each with full unit details and strategy.
Responses
200
Array of all your teams.
Battle
Enter the arena. Queue for matches, track ongoing battles, and review detailed results.
POST
/api/v1/battle/queue
Intermediate
Public
expand_more
Enter the battle queue.
Submit a team to the matchmaking queue. The system pairs you with an opponent of similar rating.
Battles resolve asynchronously — poll the status endpoint, then fetch results.
Flow: Queue → Poll status → Get results.
Request Body
| Property | Type | Description |
|---|---|---|
| teamId optional | string (uuid) | The team to fight with. Optional — if omitted, your most recently updated team is used. |
| mode optional | string | Battle mode: "ranked" (affects API rating) or "casual" (no rating change). Default: "ranked". (max: 20 chars) |
Responses
201
Queued successfully. Poll the returned battle ID for status updates.
400
Team not found, already in queue, or daily battle limit reached.
Examples
{
"mode": "ranked"
}
{
"battleId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "Queued",
"queuedAt": "2026-02-11T14:30:00Z",
"estimatedWaitSeconds": 12
}
GET
/api/v1/battle/status/{battleId}
Beginner
Public
expand_more
Check the status of a battle.
Poll this endpoint to track your battle from queue to completion.
Status progresses: Queued → InProgress → Completed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| battleId * | Path | string | The battle to check. |
Responses
200
Current battle status with timing information.
404
Battle not found.
GET
/api/v1/battle/results/{battleId}
Beginner
Public
expand_more
Get detailed results of a completed battle.
Returns the full battle outcome: winner, turn count, a turn-by-turn combat log,
and rewards earned. The battle log contains every action taken by every unit on every
turn — perfect for analyzing your strategy's effectiveness.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| battleId * | Path | string | The completed battle. |
Responses
200
Full battle results with combat log and rewards.
404
Battle not found.
409
Battle not yet completed — poll the status endpoint.
GET
/api/v1/battle/history
Beginner
Public
expand_more
Get your recent battle history.
Returns your past battles in reverse chronological order with pagination support.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limit | Query | integer | Maximum battles to return (default 20). (default: 20) |
| offset | Query | integer | Number of battles to skip for pagination (default 0). (default: 0) |
Responses
200
Array of battle results.
Leaderboard
See who dominates the rankings. Global leaderboards sorted by API (Arena Power Index) rating.
GET
/api/v1/leaderboard
Beginner
Public
expand_more
Get the global leaderboard.
Returns the top players ranked by API (Arena Power Index) rating with win/loss statistics.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limit | Query | integer | Number of top players to return (default 100). (default: 100) |
Responses
200
Ranked array of top players with stats.
GET
/api/v1/leaderboard/player/{playerId}
Beginner
Public
expand_more
Get a specific player's ranking.
Look up any player's global rank, rating, and battle statistics.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| playerId * | Path | string | The player to look up. |
Responses
200
Player's rank, rating, and combat statistics.
404
Player not found.
Strategy Marketplace
Browse, upload, purchase, and rate community-created battle strategies.
GET
/api/v1/strategies/browse
Beginner
Public
expand_more
Browse the strategy marketplace.
Explore community-created battle strategies. No authentication required.
Sort options: "popular" (most downloaded), "rating" (highest rated), "newest" (most recent).
Each strategy shows download count, average rating, win rate, and effectiveness multiplier.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| sortBy | Query | string | Sort order: popular, rating, or newest. Default: popular. (default: popular) |
| limit | Query | integer | Results per page (default 20). (default: 20) |
| offset | Query | integer | Pagination offset (default 0). (default: 0) |
Responses
200
Array of marketplace strategy listings.
Examples
GET /api/v1/strategies/browse?sortBy=rating&limit=5&offset=0
[
{
"strategyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Blitz Rush Alpha",
"creatorName": "TacticalMind",
"price": 150,
"downloadCount": 342,
"averageRating": 4.7,
"winRate": 68.5,
"effectivenessMultiplier": 1.15
}
]
POST
/api/v1/strategies/upload
Advanced
Public
expand_more
Publish a strategy to the marketplace.
Share your battle strategy with the community. Set a price in currency (0 for free).
You earn currency each time another player purchases your strategy.
Request Body
| Property | Type | Description |
|---|---|---|
| name * | string | Display name for your strategy. 1-100 characters. (min: 1, max: 100 chars) |
| description optional | string | Describe your strategy's approach and ideal use case. Up to 500 characters. (max: 500 chars) |
| strategyJson * | string | The strategy configuration as a JSON string matching the StrategyConfig schema. (min: 1, max: 51200 chars) |
| price optional | integer (int32) | Price in currency. Set to 0 to share for free. Buyers pay this amount to download. (range: 0-100000) |
Responses
201
Strategy published to the marketplace.
400
Invalid strategy configuration or missing required fields.
Examples
{
"name": "Defensive Turtle",
"description": "Tanky frontline with healer support",
"strategyJson": "{\"formation\":\"defensive\",\"priority\":\"survive\"}",
"price": 0
}
{
"strategyId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"name": "Defensive Turtle",
"description": "Tanky frontline with healer support",
"price": 0,
"createdAt": "2026-02-11T14:30:00Z"
}
POST
/api/v1/strategies/{strategyId}/download
Intermediate
Public
expand_more
Purchase and download a strategy.
Spend currency to acquire a marketplace strategy. The full strategy JSON is returned
and can be used directly in your team configuration.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| strategyId * | Path | string | The strategy to purchase. |
Responses
200
Strategy details including the full JSON configuration.
400
Insufficient currency.
404
Strategy not found.
POST
/api/v1/strategies/{strategyId}/rate
Beginner
Public
expand_more
Rate a marketplace strategy.
Submit a 1-5 star rating with optional comment. You can only rate strategies you have downloaded.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| strategyId * | Path | string | The strategy to rate. |
Request Body
| Property | Type | Description |
|---|---|---|
| rating optional | integer (int32) | Star rating from 1 (poor) to 5 (excellent). (range: 1-5) |
| comment optional | string | Optional review comment. Up to 500 characters. (max: 500 chars) |
Responses
200
Rating submitted.
404
Strategy not found.
Guild
Create and manage guilds. Invite members, assign roles, coordinate via chat, and share strategies.
GET
/api/v1/guild/{guildId}/chat
Beginner
Public
expand_more
Get guild chat messages.
Returns recent chat messages in chronological order. Supports cursor-based pagination
using the before parameter to load older messages.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | The guild chat to read. |
| limit | Query | integer | Maximum messages to return (default 50, max 100). (default: 50) |
| before | Query | string | Message ID cursor — returns messages older than this one. |
Responses
200
Array of chat messages.
POST
/api/v1/guild/{guildId}/chat
Beginner
Public
expand_more
Post a message to guild chat.
Send a text message to your guild's chat channel. Messages are limited to 500 characters.
You must be a member of the guild.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| message * | string | (min: 1, max: 500 chars) |
Responses
201
Message posted.
400
Empty message, too long, or not a guild member.
POST
/api/v1/guild/create
Intermediate
Public
expand_more
Create a new guild.
Founds a new guild with you as the leader. Requires Premium tier or higher.
Guild names and tags must be unique. Tags are automatically uppercased.
You cannot create a guild if you're already in one.
Request Body
| Property | Type | Description |
|---|---|---|
| name * | string | (min: 1, max: 50 chars) |
| tag * | string | (min: 3, max: 5 chars) |
| description optional | string | (max: 500 chars) |
Responses
201
Guild created. You are now the leader.
400
Already in a guild, name/tag taken, or insufficient tier.
Examples
{
"name": "Shadow Wolves",
"tag": "SWLF",
"description": "Elite PvP guild focused on ranked battles"
}
{
"guildId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Shadow Wolves",
"tag": "SWLF",
"description": "Elite PvP guild focused on ranked battles",
"leaderName": "YourUsername",
"level": 1,
"memberCount": 1,
"maxMembers": 20,
"createdAt": "2026-02-11T14:00:00Z"
}
DELETE
/api/v1/guild/{guildId}
Intermediate
Public
expand_more
Delete your guild.
Permanently deletes the guild and removes all members. Only the guild leader can perform this action.
This action is irreversible.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | The guild to delete. |
Responses
204
Guild deleted.
400
You are not the leader.
404
Guild not found.
GET
/api/v1/guild/{guildId}
Beginner
Public
expand_more
Get guild details.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | The guild to view. |
Responses
200
Guild info with member count and level.
404
Guild not found.
GET
/api/v1/guild/mine
Beginner
Public
expand_more
Get your current guild.
Returns guild details for the guild you currently belong to.
Responses
200
Your guild info.
404
You are not in a guild.
GET
/api/v1/guild/{guildId}/members
Beginner
Public
expand_more
List guild members.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | The guild to view members of. |
Responses
200
Array of guild members with roles and contribution points.
404
Guild not found.
POST
/api/v1/guild/{guildId}/invite
Intermediate
Public
expand_more
Invite a player to your guild.
Send a guild invitation to another player by username. Requires Officer or Leader role.
Invites expire after 7 days. The target player must not already be in a guild.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| username * | string | (min: 1 chars) |
Responses
201
Invite sent.
400
Player already in a guild, already invited, or insufficient permissions.
404
Player not found.
Examples
{
"username": "EliteWarrior42"
}
{
"inviteId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"guildId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"guildName": "Shadow Wolves",
"guildTag": "SWLF",
"invitedByUsername": "YourUsername",
"status": "Pending",
"createdAt": "2026-02-11T14:30:00Z",
"expiresAt": "2026-02-18T14:30:00Z"
}
GET
/api/v1/guild/invites
Beginner
Public
expand_more
View your pending guild invites.
Responses
200
Array of pending invites.
POST
/api/v1/guild/invites/{inviteId}/accept
Beginner
Public
expand_more
Accept a guild invite.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| inviteId * | Path | string | The invite to accept. |
Responses
200
Joined the guild.
400
Invite expired, already in a guild, or guild is full.
404
Invite not found.
POST
/api/v1/guild/invites/{inviteId}/decline
Beginner
Public
expand_more
Decline a guild invite.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| inviteId * | Path | string | The invite to decline. |
Responses
200
Invite declined.
400
Invite already responded to.
404
Invite not found.
POST
/api/v1/guild/{guildId}/kick
Intermediate
Public
expand_more
Kick a member from the guild.
Remove a player from your guild. Requires Leader role. You cannot kick members
with equal or higher rank than yourself.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| playerId * | string (uuid) |
Responses
204
Member kicked.
400
Insufficient permissions or cannot kick higher rank.
404
Guild or target member not found.
POST
/api/v1/guild/{guildId}/promote
Intermediate
Public
expand_more
Promote or demote a guild member.
Change a member's role. Only the guild leader can promote/demote.
Promoting to Leader transfers guild ownership — you become an Officer.
Valid roles: Member, Officer, Leader.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| playerId * | string (uuid) | |
| newRole * | string | (min: 1 chars) |
Responses
200
Member role updated.
400
Invalid role or insufficient permissions.
404
Guild or target member not found.
Examples
{
"playerId": "d4c3b2a1-8f7e-6d5c-4b3a-2e1f0a9b8c7d",
"newRole": "Officer"
}
{
"message": "Player promoted to Officer."
}
POST
/api/v1/guild/leave
Beginner
Public
expand_more
Leave your current guild.
Voluntarily leave the guild you belong to. Guild leaders cannot leave —
transfer leadership first or delete the guild.
Responses
204
You have left the guild.
400
Not in a guild, or you are the leader.
GET
/api/v1/guild/{guildId}/strategies
Beginner
Public
expand_more
List guild strategies.
View all battle strategies shared in the guild library. Strategies are sorted by usage count.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | The guild to view strategies of. |
Responses
200
Array of guild strategies.
POST
/api/v1/guild/{guildId}/strategies
Intermediate
Public
expand_more
Publish a strategy to the guild library.
Share a battle strategy with your guild. Requires Officer or Leader role.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| name optional | string | |
| description optional | string | |
| strategy optional | object |
Responses
201
Strategy published.
400
Insufficient permissions or invalid data.
PUT
/api/v1/guild/{guildId}/strategies/{strategyId}
Intermediate
Public
expand_more
Update a guild strategy.
Modify a strategy in the guild library. Only the original creator or the guild leader can update.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
| strategyId * | Path | string | The strategy to update. |
Request Body
| Property | Type | Description |
|---|---|---|
| name optional | string | |
| description optional | string | |
| strategy optional | object |
Responses
200
Strategy updated.
400
Insufficient permissions.
404
Strategy not found.
DELETE
/api/v1/guild/{guildId}/strategies/{strategyId}
Intermediate
Public
expand_more
Delete a guild strategy.
Remove a strategy from the guild library. Only the original creator or guild leader can delete.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
| strategyId * | Path | string | The strategy to delete. |
Responses
204
Strategy deleted.
400
Insufficient permissions.
404
Strategy not found.
GET
/api/v1/guild/{guildId}/treasury
Intermediate
Public
expand_more
View guild treasury and available upgrades.
Shows the guild's gold balance, current upgrade levels, and what upgrades can be purchased.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | The guild to view treasury of. |
Responses
200
Treasury balance with upgrade options.
404
Guild not found.
POST
/api/v1/guild/{guildId}/treasury/spend
Intermediate
Public
expand_more
Purchase a guild upgrade from the treasury.
Spend treasury gold on permanent guild upgrades. Only the guild leader can make purchases.
Available upgrades: max_members_30, max_members_50, gold_bonus_10, gold_bonus_20,
raid_attempts_4, raid_attempts_5.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| upgradeId optional | string |
Responses
200
Upgrade purchased. New treasury state returned.
400
Insufficient funds, already purchased, or not the leader.
404
Guild or upgrade not found.
Examples
{
"upgradeId": "gold_bonus_10"
}
{
"balance": 20000,
"goldBonusPercent": 10,
"maxRaidAttempts": 3,
"maxMembers": 20
}
POST
/api/v1/guild/{guildId}/treasury/deposit
Beginner
Public
expand_more
Deposit personal gold into the guild treasury.
Transfer gold from your personal balance to the guild treasury. This increases your
contribution points. Any guild member can deposit.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| guildId * | Path | string | Your guild ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| amount optional | integer (int32) | (range: 1-1000000) |
Responses
200
Deposit successful. New balances returned.
400
Insufficient personal gold or not a member.
404
Guild not found.
Guild Boss
Cooperative raid encounters. Rally your guild to defeat powerful bosses for shared rewards.
GET
/api/v1/guild/boss/current
Intermediate
Public
expand_more
Get your guild's current boss encounter.
Returns the active raid boss including remaining HP, expiration time, and rewards.
Bosses spawn periodically and must be defeated before they expire.
You must be a member of a guild to access boss encounters.
Responses
200
Active boss details with HP, rewards, and expiration.
404
Not in a guild, or no active boss encounter.
Examples
{
"bossId": "b0a1c2d3-e4f5-6789-0abc-def123456789",
"name": "Shadow Dragon Kaelthos",
"description": "A fearsome dragon that deals AoE fire damage",
"maxHp": 50000,
"currentHp": 32150,
"expiresAt": "2026-02-12T18:00:00Z",
"isDefeated": false,
"rewardCurrency": 1000,
"rewardExperience": 2500
}
POST
/api/v1/guild/boss/attempt
Advanced
Public
expand_more
Attack the guild boss with your team.
Send a team to damage the guild boss. Multiple guild members can attack the same boss —
coordinate for maximum impact. If your attack delivers the killing blow,
wasKillingBlow will be true and bonus rewards may be awarded.
Request Body
| Property | Type | Description |
|---|---|---|
| bossId optional | string (uuid) | The boss encounter to attack. |
| teamId optional | string (uuid) | Your team to send into the raid. |
Responses
200
Attack result with damage dealt.
400
Team not found or boss already defeated.
404
Boss not found or not in a guild.
501
Boss battle resolution is in preview and not yet available.
Examples
{
"bossId": "b0a1c2d3-e4f5-6789-0abc-def123456789",
"teamId": "d4e5f6a7-b8c9-0123-4567-890abcdef012"
}
{
"attemptId": "a1234567-b89c-def0-1234-567890abcdef",
"damageDealt": 4250,
"wasKillingBlow": false,
"attemptedAt": "2026-02-11T15:22:00Z"
}
GET
/api/v1/guild/boss/leaderboard
Beginner
Public
expand_more
Get the boss damage leaderboard.
See which guild members dealt the most damage to a specific boss encounter.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| bossId | Query | string | The boss encounter to view rankings for. |
Responses
200
Damage attempts ranked by damage dealt.
Challenges
Daily personalized objectives that reward currency and experience. Reset every 24 hours.
GET
/api/v1/challenges/daily
Beginner
Public
expand_more
Get your active daily challenges.
Returns your current set of daily challenges with progress tracking.
New challenges generate every 24 hours. Complete them by playing battles
that meet the criteria, then claim rewards before they expire.
Responses
200
Array of active challenges with progress and reward info.
Examples
[
{
"challengeId": "c9a1b2d3-4e5f-6789-abcd-ef0123456789",
"name": "Win 3 Battles",
"description": "Win 3 ranked battles today",
"progress": 1,
"requiredProgress": 3,
"isCompleted": false,
"rewardCurrency": 200,
"rewardExperience": 500,
"expiresAt": "2026-02-12T00:00:00Z"
}
]
POST
/api/v1/challenges/claim
Beginner
Public
expand_more
Claim a completed challenge reward.
Collect currency and experience for a completed challenge. The challenge must show
isCompleted: true before you can claim. Each challenge can only be claimed once.
Request Body
| Property | Type | Description |
|---|---|---|
| challengeId optional | string (uuid) | The ID of the completed challenge to claim. |
Responses
200
Reward claimed successfully.
400
Challenge not yet completed or already claimed.
404
Challenge not found.
POST
/api/v1/challenges/refresh
Beginner
Public
expand_more
Refresh your daily challenges (Premium only).
Replaces all uncompleted challenges with a fresh set. Premium and Premium Plus
subscribers can refresh once per day. Already-completed challenges are kept.
Each refresh generates one easy, one medium, and one hard challenge — giving you
a better shot at rewards that match your skill level.
Responses
200
Challenges refreshed. Fetch `/daily` to see new ones.
400
Not a Premium subscriber or no challenges to refresh.
Mastery
Track unit mastery progression. The more you battle with a unit, the stronger the bond.
GET
/api/v1/mastery/units
Beginner
Public
expand_more
Get mastery levels for all your units.
Returns mastery progression for every unit you have used in battle.
Mastery increases with use — tracks battles fought, wins, and win rate per unit.
Responses
200
Array of mastery records for all units with battle experience.
Examples
[
{
"unitId": "u1a2b3c4-d5e6-7890-abcd-ef1234567890",
"level": 5,
"experiencePoints": 2450,
"battlesUsed": 47,
"winsWithUnit": 31
},
{
"unitId": "u9f8e7d6-c5b4-3210-fedc-ba0987654321",
"level": 3,
"experiencePoints": 1100,
"battlesUsed": 22,
"winsWithUnit": 12
}
]
GET
/api/v1/mastery/unit/{unitId}
Beginner
Public
expand_more
Get mastery for a specific unit.
Returns detailed mastery data for one unit. If you have never used the unit
in battle, returns a default record with Level 1 and zero experience.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| unitId * | Path | string | The unit to check mastery for. |
Responses
200
Unit mastery details including level, XP, battles, and win rate.
Modifiers
Weekly environmental effects that shake up the meta. Adapt or fall behind.
GET
/api/v1/modifiers/current
Beginner
Public
expand_more
Get the active environmental modifier.
Environmental modifiers rotate weekly and change the rules of battle for everyone.
No authentication required. Check this before every battle to adapt your strategy.
Returns a "Normal" placeholder when no modifier is active.
Responses
200
The current modifier with name, description, and active dates.
Examples
{
"modifierId": "m1a2b3c4-d5e6-7890-abcd-ef1234567890",
"name": "Arcane Surge",
"description": "Magic damage increased by 25% for all units",
"startDate": "2026-02-10T00:00:00Z",
"endDate": "2026-02-17T00:00:00Z"
}
GET
/api/v1/modifiers/upcoming
Beginner
Public
expand_more
Preview next week's modifier.
See what environmental effect is coming next. Use this intel to prepare your team
and strategy ahead of the rotation. Not always available.
Responses
200
Upcoming modifier details.
404
No upcoming modifier has been scheduled yet.
Replays
Create and share battle replays. Study your victories and learn from defeats.
POST
/api/v1/replays/create
Beginner
Public
expand_more
Create a shareable battle replay.
Generate a shareable link for a completed battle. The replay can be viewed by anyone
with the link, even without an account. You must be a participant in the battle.
Request Body
| Property | Type | Description |
|---|---|---|
| battleId optional | string (uuid) | The completed battle ID to create a replay for. You must be a participant. |
Responses
201
Replay created with shareable URL.
400
Battle not completed or replay already exists.
404
Battle not found or you are not a participant.
Examples
{
"battleId": "b7e8f9a0-1234-5678-9abc-def012345678"
}
{
"replayId": "r1a2b3c4-d5e6-7890-abcd-ef1234567890",
"battleId": "b7e8f9a0-1234-5678-9abc-def012345678",
"shareUrl": "xK9mPq2v",
"viewCount": 0,
"createdAt": "2026-02-11T16:45:00Z"
}
AI Practice
Fight AI opponents to learn, experiment, and test strategies without risking your rating.
GET
/api/v1/ai/opponents
Beginner
Public
expand_more
List all available AI opponents.
Returns AI opponents across three difficulty tiers: novice, intermediate, and expert.
Each opponent has a fixed team composition and strategy. Practice battles award 50% of
normal gold and XP, never affect your API rating, and don't count against your daily battle limit.
Use AI opponents to learn the combat system, test new team compositions, or experiment
with strategy configurations before risking your rating in ranked matches.
Responses
200
List of AI opponents with difficulty and team information.
Examples
{
"opponents": [
{
"id": "novice-1",
"name": "Training Dummy",
"difficulty": "novice",
"approximateRating": 600,
"teamSize": 3,
"teamClasses": ["Warrior", "Ranger", "Mage"],
"formation": "balanced"
}
],
"rewardMultiplier": 0.5,
"ratingAffected": false,
"countsTowardDailyLimit": false
}
POST
/api/v1/ai/practice
Beginner
Public
expand_more
Fight an AI opponent in a practice battle.
Instantly resolves a battle between your team and the selected AI opponent — no matchmaking
queue or waiting. The full turn-by-turn combat log is returned immediately.
Rewards: 50% of normal gold and XP. No rating change. No daily limit consumed.
Strategy: Your team's strategy configuration is used exactly as configured. The AI uses
a fixed strategy appropriate to its difficulty level. This makes practice battles ideal for
A/B testing strategy changes — fight the same AI opponent with different configs and compare results.
Request Body
| Property | Type | Description |
|---|---|---|
| teamId * | string (uuid) | Your team ID. Must be a team you own with at least one unit. |
| opponentId * | string | AI opponent ID from the GET /api/v1/ai/opponents list (e.g. "novice-1", "expert-3"). (min: 1 chars) |
Responses
200
Complete battle results with turn-by-turn log and rewards.
400
Invalid team or team has no units.
404
AI opponent ID not found.
Examples
{
"teamId": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"opponentId": "novice-1"
}
{
"battleId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "completed",
"winnerId": "your-player-id",
"turns": 8,
"battleLog": [...],
"rewards": {
"currency": 25,
"ratingChange": 0,
"experienceEarned": 50,
"tierMultiplier": 1.0
}
}
POST
/api/v1/ai/batch-practice
Intermediate
Public
expand_more
Run batch practice battles for statistical analysis.
Runs N practice battles server-side and returns aggregate statistics. No gold, XP, or
rating changes — this is a pure simulation for strategy analysis.
Ideal for classrooms: students can test their strategies against AI opponents and compare
win rates without any economy impact. Rate limited to 1 request per minute.
Request Body
| Property | Type | Description |
|---|---|---|
| teamId optional | string (uuid) | |
| opponentId optional | string | (max: 50 chars) |
| count optional | integer (int32) | (range: 1-200) |
Responses
200
Aggregate battle statistics.
400
Invalid team or parameters.
404
AI opponent not found.
Ranked Seasons
Compete in 8-week ranked seasons. Climb from Bronze to Legend and earn exclusive end-of-season rewards.
GET
/api/v1/season/current
Beginner
Public
expand_more
Get the current ranked season and your progress.
Returns the active season details along with your current tier, rating, win/loss record,
and progress toward the next tier. Seasons last 8 weeks. At the end of each season,
your rating soft-resets and you earn rewards based on your peak tier.
Tier Thresholds: Bronze (0) → Silver (1000) → Gold (1200) → Platinum (1400) → Diamond (1600) → Legend (1800)
If no season exists, one is automatically created when you first call this endpoint.
Responses
200
Current season info with your ranking progress.
Examples
{
"seasonId": "...",
"name": "Season 1: Dawn of Battle",
"seasonNumber": 1,
"daysRemaining": 42,
"currentTier": "Silver",
"seasonRating": 1050,
"peakRating": 1120,
"peakTier": "Gold",
"wins": 15,
"losses": 8,
"winRate": 65.2,
"ratingToNextTier": 150,
"nextTier": "Gold"
}
GET
/api/v1/season/leaderboard
Beginner
Public
expand_more
Get the season leaderboard.
Returns ranked players ordered by season rating. Only players with at least one ranked
battle this season appear on the leaderboard. Your own rank is included in the response.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limit | Query | integer | Max entries to return (default 50, max 100). (default: 50) |
| offset | Query | integer | Entries to skip for pagination (default 0). (default: 0) |
Responses
200
Season leaderboard with rankings.
POST
/api/v1/season/rewards/{seasonId}
Beginner
Public
expand_more
Claim end-of-season rewards.
After a season ends, claim your rewards based on your peak tier. Rewards include gold,
XP, and exclusive titles for Gold tier and above. Rewards can only be claimed once per season.
Rewards by Peak Tier:
- Bronze: 100g + 50 XP
- Silver: 250g + 100 XP
- Gold: 500g + 200 XP + "Gold Gladiator" title
- Platinum: 1,000g + 400 XP + "Platinum Warrior" title
- Diamond: 2,000g + 800 XP + "Diamond Champion" title
- Legend: 5,000g + 1,500 XP + "Legendary Conqueror" title
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| seasonId * | Path | string | The ended season to claim rewards for. |
Responses
200
Rewards successfully claimed.
400
Season still active or rewards already claimed.
404
Season or player rank not found.
Examples
{
"seasonName": "Season 1: Dawn of Battle",
"peakTier": "Gold",
"goldReward": 500,
"xpReward": 200,
"exclusiveTitle": "Gold Gladiator",
"claimed": true
}
Loot
Random loot drops from battles. Collect currency packs, XP boosts, rare titles, and critical gold jackpots.
GET
/api/v1/loot/pending
Beginner
Public
expand_more
Get your unclaimed loot drops.
After each battle, you have a chance to receive random loot drops. Base drop chance is 15%,
increasing with win streaks (up to 25% at 3+ wins). Premium players get a guaranteed drop
every 5 battles.
Drop Types:
- CurrencyPack: Random gold (50-800g)
- XpBoost: Bonus XP (50-200)
- CriticalGold: JACKPOT! 3x your base battle reward (5% chance, independent roll)
- RareTitle: An exclusive display title (5% of drops)
Drops accumulate until claimed. Use POST /api/v1/loot/claim to collect everything at once.
Responses
200
List of unclaimed loot drops.
POST
/api/v1/loot/claim
Beginner
Public
expand_more
Claim all pending loot drops.
Claims all unclaimed loot drops, awarding gold, XP, and any titles earned.
Returns a summary of everything claimed.
Responses
200
Loot successfully claimed with totals.
400
No unclaimed loot drops to claim.
Examples
{
"goldAwarded": 750,
"xpAwarded": 150,
"titlesUnlocked": ["Lucky Strike"],
"dropsClaimed": 4
}
Referral
Invite friends and earn rewards. Share your referral code for bonus gold when they sign up.
GET
/api/v1/referral/info
Beginner
Public
expand_more
Get your referral code and stats.
Returns your unique referral code and how many players have signed up using it.
Share your code with friends — when they redeem it, you both get rewarded:
- You (referrer): +500g per successful referral
- Them (new player): +300g bonus starting currency
A new code is automatically generated each time one is redeemed,
so you can always share your latest code.
Responses
200
Your referral code and statistics.
Examples
{
"referralCode": "ABCD1234",
"totalReferrals": 3,
"totalGoldEarned": 1500,
"rewardPerReferral": 500,
"referredPlayerBonus": 300
}
POST
/api/v1/referral/redeem/{code}
Beginner
Public
expand_more
Redeem a referral code.
Redeem a friend's referral code to receive a 300g bonus. You can only redeem one
referral code per account, and you cannot use your own code.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| code * | Path | string | The 8-character referral code to redeem. |
Responses
200
Code redeemed successfully with bonus awarded.
400
Invalid code, self-referral, or code already used.
404
Code not found.
Examples
{
"success": true,
"bonusGoldAwarded": 300,
"referrerUsername": "FriendlyPlayer"
}
GET
/api/v1/referral/leaderboard
Beginner
Public
expand_more
View the referral leaderboard.
See who has referred the most players. Top referrers are driving community growth.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limit | Query | integer | Max entries (default 20, max 50). (default: 20) |
Responses
200
Referral leaderboard with your rank.
Unit Customization
Gold sinks: rename units, reroll stats, and apply permanent golden upgrades.
POST
/api/v1/units/rename
Beginner
Public
expand_more
Rename a unit you own.
Give your unit a custom display name. Costs 200g. The original name is preserved
internally — your custom name appears in battle logs and your roster.
Names must be 3-50 characters. No profanity filter (yet — be nice).
Request Body
| Property | Type | Description |
|---|---|---|
| unitId * | string (uuid) | The unit to rename. |
| newName * | string | New display name for the unit (3-50 characters). (min: 3, max: 50 chars) |
Responses
200
Unit renamed successfully.
400
Insufficient gold, invalid name, or unit not found.
Examples
{
"unitId": "...",
"newName": "Thunderstrike"
}
{
"unitId": "...",
"name": "Bronze Knight",
"customName": "Thunderstrike",
"goldSpent": 200,
"remainingCurrency": 800
}
POST
/api/v1/units/reroll
Intermediate
Public
expand_more
Reroll a unit's stats.
Randomizes one stat within the unit's class range. Costs 500g per reroll.
The stat chosen and new value are random — you might get a better roll or a worse one.
Each subsequent reroll on the same unit costs 500g.
Stat ranges vary by class — Warriors have higher base health, Mages have higher attack, etc.
The reroll respects these class boundaries.
Request Body
| Property | Type | Description |
|---|---|---|
| unitId * | string (uuid) | The unit to reroll. |
Responses
200
Stat rerolled with new values.
400
Insufficient gold or unit not found.
POST
/api/v1/units/golden-upgrade
Intermediate
Public
expand_more
Apply golden upgrade to a unit.
Permanently boosts ALL stats by 5%. Costs 2000g and can only be applied once per unit.
Golden units get a special designation visible in battle logs and your roster.
This is the ultimate investment — make sure you're upgrading a unit you'll keep in your
main team long-term.
Request Body
| Property | Type | Description |
|---|---|---|
| unitId * | string (uuid) | The unit to upgrade. |
Responses
200
Unit upgraded to golden status.
400
Already golden, insufficient gold, or unit not found.
Examples
{
"unitId": "..."
}
{
"unitId": "...",
"name": "Archmage",
"isGolden": true,
"health": 105,
"attack": 47,
"defense": 15,
"speed": 21,
"goldSpent": 2000,
"remainingCurrency": 3000
}
Rival
Auto-assigned rivals for competitive motivation. Beat your nemesis for bonus gold.
GET
/api/v1/rival/current
Beginner
Public
expand_more
Get your current rival.
Every player is automatically assigned a rival — someone at a similar rating level.
Rivals rotate weekly. When you beat your rival in a ranked battle, you earn a +100g bonus
on top of normal rewards.
The rival system creates a personal nemesis to drive competitive motivation. Track your
head-to-head record and prove you're the better player.
Responses
200
Your current rival info, or hasRival=false if no suitable rival found.
Examples
{
"rivalId": "...",
"rivalUsername": "ShadowBlade42",
"rivalRating": 1050,
"rivalLevel": 5,
"winsAgainstRival": 2,
"lossesAgainstRival": 1,
"bonusGoldEarned": 200,
"bonusPerWin": 100,
"hasRival": true
}
Battle Pass
Seasonal 30-level progression with free and premium reward tracks. Earn XP from battles, challenges, and daily play.
GET
/api/v1/battlepass/progress
Beginner
Public
expand_more
Get your current battle pass progress.
Returns your current level, XP progress, and all rewards (claimed and unclaimed).
Each season has a 30-level battle pass. Free-track rewards are available to everyone.
Premium-track rewards unlock with Premium Plus subscription.
XP sources: battles (+100 win / +25 loss), daily challenges (+50-200), daily login (+25).
Premium Plus players earn 25% bonus battle pass XP.
Responses
200
Your battle pass progress with all reward details.
Examples
{
"passName": "Season 1 Battle Pass",
"currentLevel": 12,
"currentXp": 450,
"xpToNextLevel": 550,
"maxLevel": 30,
"overallProgressPercent": 41.5,
"hasPremium": false,
"rewards": [...],
"daysRemaining": 34
}
POST
/api/v1/battlepass/claim/{level}
Beginner
Public
expand_more
Claim a battle pass level reward.
Claims the reward at the specified level. You must have reached that level to claim.
Free-track rewards are available to all players. Premium-track rewards require
Premium Plus subscription.
Each level has both a free and premium reward. Claiming checks free first, then premium.
Rewards are granted immediately — currency goes to your balance, XP to your profile,
titles to your collection.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| level * | Path | integer | The level number to claim (1-30). |
Responses
200
Reward successfully claimed.
400
Level not reached or reward already claimed.
Examples
{
"success": true,
"level": 5,
"track": "free",
"rewardType": "currency",
"rewardValue": 275,
"description": "Level 5 Milestone: 250g",
"message": "Claimed Level 5 Milestone: 250g!"
}
Guild Wars
Weekly guild vs guild matchups. Your ranked wins earn points — the winning guild gets a treasury bonus.
GET
/api/v1/guildwar/status
Beginner
Public
expand_more
Get your guild's current war status.
Shows your guild's active war matchup, including scores, opponent info, and
top contributors. Wars are matched weekly between guilds of similar level.
Every ranked battle win during a war earns 10 points for your guild. The winning
guild gets a treasury bonus at the end of the week. In a draw, the reward is split.
Responses
200
Current war status, or isAtWar=false if not matched.
Examples
{
"isAtWar": true,
"warId": "...",
"yourGuild": "Shadow Legion",
"yourScore": 150,
"opponentGuild": "Storm Riders",
"opponentScore": 120,
"daysRemaining": 4,
"treasuryReward": 750,
"topContributors": [...]
}
GET
/api/v1/guildwar/history
Beginner
Public
expand_more
Get your guild's war history.
Returns past guild wars with results. Track your guild's competitive record
and see how much treasury gold you've earned from victories.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limit | Query | integer | Maximum results to return (default 10). (default: 10) |
Responses
200
List of past wars with scores and results.
Tournament
Weekly single-elimination tournaments. Pay entry fee, compete in brackets, win big prizes.
GET
/api/v1/tournament/current
Beginner
Public
expand_more
Get the current or most recent tournament.
Returns tournament info including registration status, participants, prize pool,
and your entry status. Tournaments run weekly: registration opens, then brackets
are generated and matches play out automatically.
Entry fee is 100g. Top 4 finishers win prizes (1st: 5000g + title, 2nd: 2500g, 3rd/4th: 1000g).
Brackets are seeded by API rating — higher rated players face lower seeds first.
Responses
200
Tournament info with your registration status.
Examples
{
"tournamentId": "...",
"name": "Weekly Tournament #20260212",
"status": "registration",
"maxParticipants": 16,
"currentParticipants": 7,
"entryFee": 100,
"prizes": [...],
"isRegistered": false
}
POST
/api/v1/tournament/enter
Beginner
Public
expand_more
Enter the current tournament.
Register for the active tournament with your team. Costs the entry fee (100g).
You can only enter once per tournament. Registration closes when the tournament starts
or when max participants is reached.
Request Body
| Property | Type | Description |
|---|---|---|
| teamId optional | string (uuid) | The team to compete with. |
Responses
200
Successfully registered. Returns updated tournament info.
400
Not enough currency, already registered, or tournament full/closed.
GET
/api/v1/tournament/bracket/{tournamentId}
Beginner
Public
expand_more
View a tournament bracket.
Returns the full bracket with match results for each round. Shows all matchups,
who won, and who's advancing. Use this to track the tournament's progress.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| tournamentId * | Path | string | The tournament ID to view. |
Responses
200
Full bracket with all rounds and matches.
404
Tournament not found.
Cosmetics
Premium cosmetic shop. Customize your profile, units, and battle effects with gems or gold.
GET
/api/v1/cosmetics/shop
Beginner
Public
expand_more
Browse the cosmetic shop.
Shows all available cosmetics with prices in gems and gold. Includes your current
balance and whether you already own each item.
Categories: unit_skin, profile_border, card_back, battle_effect.
Rarities: common, rare, epic, legendary (legendary items are gems-only).
Gems are earned from tournaments, battle pass milestones, and special events.
Responses
200
Shop listing with your balance and ownership status.
GET
/api/v1/cosmetics/owned
Beginner
Public
expand_more
View your owned cosmetics.
Responses
200
List of cosmetics you own with equipped status.
POST
/api/v1/cosmetics/purchase/{cosmeticId}
Beginner
Public
expand_more
Purchase a cosmetic item.
Buy a cosmetic from the shop using gems or gold. Each item shows available
payment options — legendary items are gems-only (goldPrice = 0).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| cosmeticId * | Path | string | The cosmetic item to purchase. |
Request Body
| Property | Type | Description |
|---|---|---|
| paymentMethod optional | string | "gems" or "gold" |
Responses
200
Purchase successful.
400
Insufficient funds or already owned.
POST
/api/v1/cosmetics/equip/{cosmeticId}
Beginner
Public
expand_more
Equip a cosmetic item.
Set a cosmetic as active. Only one cosmetic per category can be equipped at a time.
Equipping a new profile_border unequips the previous one automatically.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| cosmeticId * | Path | string | The cosmetic to equip. |
Responses
200
Cosmetic equipped.
400
You don't own this cosmetic.
GET
/api/v1/cosmetics/balance
Beginner
Public
expand_more
Check your gem and gold balance.
Responses
200
Your current balance and lifetime gem stats.
Activity Feed
Your game journey in a timeline. Track battles, achievements, level-ups, and view other players' activity.
GET
/api/v1/activity/feed
Beginner
Public
expand_more
Get your activity feed.
Returns a chronological feed of your recent game activities — battles fought,
achievements unlocked, level-ups, and more. Paginated for easy consumption.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| page | Query | integer | Page number (default 1). (default: 1) |
| pageSize | Query | integer | Items per page (default 20, max 50). (default: 20) |
Responses
200
Paginated list of your activities.
GET
/api/v1/activity/feed/{username}
Beginner
Public
expand_more
Get another player's public activity feed.
View the public activity feed for any player by username. Only public activities
are shown — private events are hidden.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| username * | Path | string | The player's username. |
| page | Query | integer | Page number (default 1). (default: 1) |
| pageSize | Query | integer | Items per page (default 20, max 50). (default: 20) |
Responses
200
Public activity feed.
404
Player not found.
GET
/api/v1/activity/stats
Beginner
Public
expand_more
Get your lifetime stats (sunk cost profile).
A comprehensive breakdown of everything you've invested in the game:
total battles, gold earned, win rate, achievements, time played, and more.
See the full picture of your gaming journey.
Responses
200
Complete lifetime stats breakdown.
Examples
{
"username": "DragonSlayer",
"level": 42,
"rating": 1850,
"totalBattlesPlayed": 347,
"totalBattlesWon": 198,
"winRate": 57.1,
"highestRating": 1923,
"totalGoldEarned": 125000,
"achievementsUnlocked": 28,
"daysPlayed": 65,
"investmentSummary": "347 battles fought | 125,000g earned | reached level 42 | playing for 65 days"
}
GET
/api/v1/activity/stats/{username}
Beginner
Public
expand_more
Get another player's public lifetime stats.
View the lifetime stats for any player by username. Compare your progress
against rivals and friends.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| username * | Path | string | The player's username. |
Responses
200
Player's lifetime stats.
404
Player not found.
Education
Learn API concepts through guided gameplay. Create curricula, enroll students, and track progress.
GET
/api/v1/education/modules
Beginner
Public
expand_more
Browse published curriculum modules.
Lists all published educational modules, sorted by popularity. Each module
teaches API concepts through guided game challenges — from basic REST to
advanced strategies.
Responses
200
List of published modules.
POST
/api/v1/education/modules
Intermediate
Public
expand_more
Create a curriculum module (instructor).
Requires educator access: a verified .edu email address or admin-granted educator status.
Define lessons that guide students through specific API endpoints. The module starts
as unpublished — publish it when you're ready for students to enroll.
Request Body
| Property | Type | Description |
|---|---|---|
| title * | string | (min: 1, max: 100 chars) |
| description optional | string | (max: 500 chars) |
| difficulty optional | string | (max: 20 chars) |
| lessons optional | array<CreateLessonRequest> ↗ |
Responses
201
Module created. Use the join code or publish it for public access.
400
Invalid module data.
403
Not an educator. Requires verified .edu email or admin-granted educator status.
Examples
{
"title": "API Basics 101",
"description": "Learn REST fundamentals through combat",
"difficulty": "beginner",
"lessons": [
{ "title": "Register", "objective": "Create your first account", "endpoint": "POST /api/v1/auth/register", "hint": "Use a unique username and valid email" },
{ "title": "Login", "objective": "Get your JWT token", "endpoint": "POST /api/v1/auth/login", "hint": "Save the token for future requests" }
]
}
GET
/api/v1/education/modules/{moduleId}
Beginner
Public
expand_more
Get detailed module info and your progress.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID. |
Responses
200
Module details with lessons and your progress.
404
Module not found.
POST
/api/v1/education/modules/{moduleId}/publish
Beginner
Public
expand_more
Publish a module for public access.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID to publish. |
Responses
200
Module published.
403
Not an educator.
404
Module not found or you are not the instructor.
POST
/api/v1/education/enroll/{moduleId}
Beginner
Public
expand_more
Enroll in a module.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID to enroll in. |
Responses
200
Enrolled successfully.
400
Already enrolled or module not published.
404
Module not found.
DELETE
/api/v1/education/enroll/{moduleId}
Beginner
Public
expand_more
Unenroll from a module.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID to unenroll from. |
Responses
200
Unenrolled successfully.
404
Not enrolled.
POST
/api/v1/education/enroll/code/{code}
Beginner
Public
expand_more
Enroll using a join code.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| code * | Path | string | The instructor's join code. |
Responses
200
Enrolled successfully.
404
Invalid join code.
POST
/api/v1/education/modules/{moduleId}/lessons/{lessonIndex}/complete
Beginner
Public
expand_more
Mark a lesson as complete.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID. |
| lessonIndex * | Path | integer | 0-based lesson index. |
Responses
200
Lesson completed. Progress updated.
400
Lesson already completed or invalid index.
404
Not enrolled.
GET
/api/v1/education/my-progress
Beginner
Public
expand_more
Get your enrolled modules and progress.
Responses
200
List of enrollments with progress.
GET
/api/v1/education/modules/{moduleId}/leaderboard
Beginner
Public
expand_more
View the class leaderboard for a module.
Shows enrolled students ranked by rating with win/loss stats and lesson progress.
Only accessible to enrolled students and the module instructor.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID. |
Responses
200
Class leaderboard.
400
Not enrolled or not the instructor.
404
Module not found.
POST
/api/v1/education/modules/{moduleId}/tournament
Intermediate
Public
expand_more
Create a class tournament for enrolled students.
Instructor-only. Creates a tournament restricted to students enrolled in the module.
Entry fee is optional (defaults to 0 for classroom use).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID. |
Request Body
| Property | Type | Description |
|---|---|---|
| entryFee optional | integer (int32) | (range: 0-10000) |
| maxParticipants optional | integer (int32) | (range: 2-128) |
Responses
201
Class tournament created.
403
Not an educator.
404
Module not found or not the instructor.
GET
/api/v1/education/instructor/dashboard
Intermediate
Public
expand_more
Instructor dashboard with student analytics.
View stats for all modules you've created: enrollment counts, completion rates,
and average student progress. Use this data to improve your curriculum.
Responses
200
Dashboard with module stats.
403
Not an educator.
GET
/api/v1/education/modules/{moduleId}/students
Intermediate
Public
expand_more
View per-student progress for a module (instructor only).
Returns a class roster showing each enrolled student's lesson completion,
progress percentage, and enrollment/completion timestamps.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| moduleId * | Path | string | Module ID. |
Responses
200
List of student progress entries.
403
Not an educator.
404
Module not found or not the instructor.
SDK
Developer tools: quick-start guide, endpoint catalog, code snippets, and game status. No auth required.
GET
/api/v1/sdk/quickstart
Beginner
Public
expand_more
Quick-start guide for new API consumers.
Returns a structured quick-start guide with step-by-step instructions,
authentication details, and example code snippets in multiple languages.
Use this to bootstrap your client application.
Responses
200
Quick-start guide with steps and code examples.
GET
/api/v1/sdk/endpoints
Beginner
Public
expand_more
Full endpoint catalog organized by category.
Lists all available API endpoints grouped by feature category.
Use this to discover endpoints and plan your client integration.
Responses
200
Categorized endpoint catalog.
GET
/api/v1/sdk/status
Beginner
Public
expand_more
Game status and public metrics.
Returns server health status and public game metrics — total players,
active seasons, running tournaments, and completed battles. Useful for
monitoring dashboards and bot status checks.
Responses
200
Game status with public metrics.
Discord
Link your Discord account, register webhooks for game events, and enable bot commands.
POST
/api/v1/discord/link
Beginner
Public
expand_more
Link your Discord account.
Initiates the Discord linking process. You'll receive a 6-digit verification code.
Use the verify endpoint with this code to complete the link. Once linked,
Discord bots can look up your game profile and send notifications.
Request Body
| Property | Type | Description |
|---|---|---|
| discordUserId optional | string | |
| discordUsername optional | string |
Responses
200
Link initiated. Use the verification code to complete.
400
Already linked or Discord ID in use.
GET
/api/v1/discord/link
Beginner
Public
expand_more
Get your Discord link status.
Responses
200
Link status (or null if not linked).
DELETE
/api/v1/discord/link
Beginner
Public
expand_more
Unlink your Discord account.
Responses
200
Discord account unlinked.
404
No link found.
POST
/api/v1/discord/verify
Beginner
Public
expand_more
Verify Discord link with code.
Request Body
| Property | Type | Description |
|---|---|---|
| verificationCode optional | string |
Responses
200
Discord account verified and linked.
400
Invalid code.
POST
/api/v1/discord/webhooks
Intermediate
Public
expand_more
Register a webhook for game event notifications.
Register a Discord webhook URL to receive game events (battle results, level-ups, etc.).
Maximum 5 webhooks per player. Specify which event types you want to receive.
Request Body
| Property | Type | Description |
|---|---|---|
| webhookUrl optional | string | |
| label optional | string | |
| eventTypes optional | array<string> |
Responses
201
Webhook registered.
400
Invalid URL or limit reached.
Examples
{
"webhookUrl": "https://discord.com/api/webhooks/...",
"label": "Battle Alerts",
"eventTypes": ["battle_won", "battle_lost", "level_up"]
}
GET
/api/v1/discord/webhooks
Beginner
Public
expand_more
List your registered webhooks.
Responses
200
List of webhooks.
GET
/api/v1/discord/lookup/{discordUserId}
Beginner
Public
expand_more
Look up a player by Discord user ID (for bots).
Discord bots can use this endpoint to look up a player's game profile
by their Discord user ID. Only returns data for verified links.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| discordUserId * | Path | string | Discord user ID. |
Responses
200
Player profile.
404
No verified link found for this Discord ID.
Creators
Content creator program. Apply, get verified, track content performance, and earn gem revenue share.
POST
/api/v1/creators/apply
Beginner
Public
expand_more
Apply to become a content creator.
Submit your application to join the content creator program. Once verified by admins,
you'll earn gems from strategy downloads, get a "creator" badge, and be eligible
for the monthly spotlight.
Request Body
| Property | Type | Description |
|---|---|---|
| creatorName optional | string | |
| bio optional | string |
Responses
201
Application submitted.
400
Already applied or invalid data.
Examples
{
"creatorName": "StrategyKing",
"bio": "I create advanced team compositions and publish educational guides."
}
GET
/api/v1/creators/me
Beginner
Public
expand_more
Get your creator profile.
Responses
200
Creator profile (or null if not applied).
GET
/api/v1/creators/stats
Beginner
Public
expand_more
Get your detailed creator stats.
View your content performance: strategy download counts, ratings,
educational module enrollments, and gem earnings.
Responses
200
Detailed creator statistics.
404
No creator profile found.
GET
/api/v1/creators/verified
Beginner
Public
expand_more
Browse verified content creators.
Lists all verified creators, sorted by total downloads. Verified creators
have been reviewed and approved by admins.
Responses
200
List of verified creators.
GET
/api/v1/creators/spotlight
Beginner
Public
expand_more
Get this month's creator spotlight.
View the featured creators for the current month. Spotlighted creators
are selected based on content quality, download volume, and community impact.
Responses
200
Monthly spotlight with featured creators.
Admin
GET
/api/v1/admin/diagnostics
Public
expand_more
Get environment diagnostics snapshot.
Responses
200
Diagnostics including uptime, DB connectivity, and runtime info.
EasterEgg
GET
/api/eggs/check
Public
expand_more
Check if there's a hidden egg on the current page.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| page | Query | string |
Responses
200
Success
POST
/api/eggs/redeem
Public
expand_more
Redeem an egg code to claim your loot reward.
Request Body
| Property | Type | Description |
|---|---|---|
| code optional | string |
Responses
200
Success
GET
/api/eggs/stats
Public
expand_more
Get your egg hunt stats for the current week.
Responses
200
Success
System
GET
/api/v1/version
Public
expand_more
Get application version information.
Responses
200
Version information including build hash.
Models
object AbilityCondition 2 properties expand_more
Conditional rule defining when and how a specific ability should be used.
| Property | Type | Description |
|---|---|---|
| when optional | AbilityWhen ↗ | |
| target optional | AbilityTarget ↗ |
object AchievementResponse 11 properties expand_more
An achievement with progress tracking and unlock status.
| Property | Type | Description |
|---|---|---|
| achievementId optional | string (uuid) | Unique achievement identifier. |
| name optional | string | Achievement title (e.g., "First Blood", "Strategist Supreme"). |
| description optional | string | What you need to do to unlock this achievement. |
| iconUrl optional | string | URL to the achievement's badge icon. |
| category optional | string | Achievement category (e.g., "Combat", "Collection", "Social"). |
| points optional | integer (int32) | Point value contributing to your achievement score. |
| progress optional | integer (int32) | Current progress toward unlocking. |
| requiredProgress optional | integer (int32) | Progress needed to unlock the achievement. |
| isUnlocked optional | boolean | Whether you have earned this achievement. |
| isSecret optional | boolean | Secret achievements have hidden descriptions until unlocked. |
| unlockedAt optional | string (date-time) | UTC timestamp when you unlocked this achievement. Null if locked. |
object ActivityFeedItem 6 properties expand_more
A single activity in the feed.
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| activityType optional | string | |
| description optional | string | |
| relatedEntityId optional | string (uuid) | |
| metadataJson optional | string | |
| createdAt optional | string (date-time) |
object ActivityFeedResponse 5 properties expand_more
Activity feed response with pagination.
| Property | Type | Description |
|---|---|---|
| username optional | string | |
| activities optional | array<ActivityFeedItem> ↗ | |
| totalCount optional | integer (int32) | |
| page optional | integer (int32) | |
| pageSize optional | integer (int32) |
object AiOpponentListResponse 4 properties expand_more
Full list of available AI opponents grouped by difficulty.
| Property | Type | Description |
|---|---|---|
| opponents optional | array<AiOpponentResponse> ↗ | Available AI opponents. |
| rewardMultiplier optional | number (double) | Reward modifier for practice battles (0.5 = 50% of normal rewards). |
| ratingAffected optional | boolean | Practice battles never affect your API rating. |
| countsTowardDailyLimit optional | boolean | Practice battles do not count against your daily battle limit. |
object AiOpponentResponse 8 properties expand_more
An AI opponent available for practice battles.
| Property | Type | Description |
|---|---|---|
| id optional | string | Unique identifier for this AI opponent preset. |
| name optional | string | Display name of the AI opponent. |
| description optional | string | Flavor text describing this opponent's personality and fighting style. |
| difficulty optional | string | Difficulty level: "novice", "intermediate", or "expert". |
| approximateRating optional | integer (int32) | Approximate API rating of this AI opponent. Compare against your own to gauge difficulty. |
| teamSize optional | integer (int32) | Number of units in the AI's team. |
| teamClasses optional | array<string> | Unit classes in the AI team (e.g. ["Warrior", "Mage", "Healer"]). |
| formation optional | string | The formation the AI uses: "balanced", "aggressive", or "defensive". |
object ApiLink 3 properties expand_more
A hypermedia link to a related API resource. Every response includes `_links` so you can navigate the API without memorizing URLs.
| Property | Type | Description |
|---|---|---|
| href optional | string | Relative URL of the linked resource. |
| method optional | string | HTTP method to use: GET, POST, PUT, DELETE. |
| title optional | string | Optional human-readable hint about what this link does. |
object ApplyCreatorRequest 2 properties expand_more
| Property | Type | Description |
|---|---|---|
| creatorName optional | string | |
| bio optional | string |
object AuthGuide 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| tokenType optional | string | |
| headerName optional | string | |
| headerFormat optional | string | |
| tokenExpiryMinutes optional | integer (int32) | |
| loginEndpoint optional | string | |
| refreshEndpoint optional | string |
object AuthResponse 4 properties expand_more
Authentication result containing a JWT token for API access.
| Property | Type | Description |
|---|---|---|
| playerId optional | string (uuid) | Your unique player identifier. Used in leaderboard lookups and battle references. |
| token optional | string | JWT Bearer token. Include as `Authorization: Bearer <token>` in all authenticated requests. |
| expiresAt optional | string (date-time) | UTC timestamp when this token expires. Refresh before this time to maintain your session. |
| _links optional | map<string, ApiLink> | Navigation links to get started. |
object BadgeResponse 2 properties expand_more
Response after setting a badge.
| Property | Type | Description |
|---|---|---|
| badge optional | string | |
| message optional | string |
object BatchPracticeRequest 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| teamId optional | string (uuid) | |
| opponentId optional | string | (max: 50 chars) |
| count optional | integer (int32) | (range: 1-200) |
object BatchPracticeResponse 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| totalBattles optional | integer (int32) | |
| wins optional | integer (int32) | |
| losses optional | integer (int32) | |
| winRate optional | number (double) | |
| avgTurns optional | number (double) | |
| opponentName optional | string |
object BattleLogEntry 8 properties expand_more
Represents a single entry in the battle log.
| Property | Type | Description |
|---|---|---|
| turn optional | integer (int32) | The turn number (1-based) when this action occurred. |
| actor optional | string | Name of the unit performing the action. |
| action optional | string | The ability or action used (e.g., "Fireball", "Shield Wall", "Basic Attack"). |
| target optional | string | Name of the target unit. |
| damage optional | integer (int32) | Damage dealt to the target. 0 for non-offensive actions. |
| healing optional | integer (int32) | HP restored to the target. 0 for non-healing actions. |
| effects optional | array<string> | Status effects applied (e.g., "Stunned", "Defense Up"). |
| targetHpRemaining optional | integer (int32) | The target's remaining HP after this action resolved. |
object BattlePassLevelReward 7 properties expand_more
A single level's reward info.
| Property | Type | Description |
|---|---|---|
| level optional | integer (int32) | The level number (1-30). |
| track optional | string | "free" or "premium". |
| rewardType optional | string | Type of reward: "currency", "xp", "title", "loot_box". |
| rewardValue optional | integer (int32) | Numeric value (gold amount, XP amount, etc.). |
| description optional | string | Human-readable description. |
| claimed optional | boolean | Whether this reward has been claimed. |
| canClaim optional | boolean | Whether the player can claim this (level reached + track access). |
object BattlePassProgressResponse 10 properties expand_more
Player's current battle pass progress.
| Property | Type | Description |
|---|---|---|
| passName optional | string | Name of the current battle pass. |
| currentLevel optional | integer (int32) | Current level (0-30). |
| currentXp optional | integer (int32) | XP accumulated toward the next level. |
| xpToNextLevel optional | integer (int32) | XP needed to reach the next level. |
| maxLevel optional | integer (int32) | Maximum level in this pass. |
| overallProgressPercent optional | number (double) | Overall XP progress as a percentage (0-100). |
| hasPremium optional | boolean | Whether the player has premium track access. |
| rewards optional | array<BattlePassLevelReward> ↗ | All rewards with claim status. |
| endsAt optional | string (date-time) | When the pass expires. |
| daysRemaining optional | integer (int32) | Days remaining before the pass resets. |
object BattleQueueRequest 2 properties expand_more
Request to enter the battle matchmaking queue.
| Property | Type | Description |
|---|---|---|
| teamId optional | string (uuid) | The team to fight with. Optional — if omitted, your most recently updated team is used. |
| mode optional | string | Battle mode: "ranked" (affects API rating) or "casual" (no rating change). Default: "ranked". (max: 20 chars) |
object BattleResultResponse 9 properties expand_more
Detailed outcome of a completed battle, including the full combat log.
| Property | Type | Description |
|---|---|---|
| _links optional | map<string, ApiLink> | Hypermedia links to related resources (replay, player profiles, queue again). |
| battleId optional | string (uuid) | Unique battle identifier. |
| status optional | string | Final battle state. "Completed" for finished battles. |
| winnerId optional | string (uuid) | Player ID of the winner. Null for draws. |
| loserId optional | string (uuid) | Player ID of the loser. Null for draws. |
| turns optional | integer (int32) | Total number of turns the battle lasted (max 50). |
| battleLog optional | array<BattleLogEntry> ↗ | Turn-by-turn combat log. Each entry records one action by one unit. |
| rewards optional | BattleRewards ↗ | |
| completedAt optional | string (date-time) | UTC timestamp when the battle finished. |
object BattleRewards 7 properties expand_more
Rewards earned from a completed battle.
| Property | Type | Description |
|---|---|---|
| currency optional | integer (int32) | In-game currency earned. Winners earn more than losers. |
| ratingChange optional | integer (int32) | API rating change. Positive for wins, negative for losses. Zero in casual mode. |
| experienceEarned optional | integer (int32) | Experience points earned from this battle. |
| winStreak optional | integer (int32) | Current win streak count after this battle. |
| firstBattleBonus optional | boolean | Whether the first-battle-of-day bonus was applied. |
| newLevel optional | integer (int32) | New player level after this battle, if a level-up occurred. |
| tierMultiplier optional | number (double) | Tier-based gold multiplier applied (1.0x Free, 1.5x Premium, 2.0x Premium+). |
object BattleStatusResponse 8 properties expand_more
Real-time status of a battle from queue to completion.
| Property | Type | Description |
|---|---|---|
| _links optional | map<string, ApiLink> | Hypermedia links to related resources. |
| battleId optional | string (uuid) | Unique battle identifier. Use this to poll for updates and retrieve results. |
| status optional | string | Current state: Queued, InProgress, Completed, or Cancelled. |
| queuePosition optional | integer (int32) | Your position in the matchmaking queue. Null once matched. |
| estimatedWaitSeconds optional | integer (int32) | Estimated seconds until a match is found. Null once matched. |
| queuedAt optional | string (date-time) | UTC timestamp when the battle was queued. |
| startedAt optional | string (date-time) | UTC timestamp when the battle began. Null if still queued. |
| completedAt optional | string (date-time) | UTC timestamp when the battle concluded. Null if not yet finished. |
object BossAttemptRequest 2 properties expand_more
Request to attack a guild boss with a specific team.
| Property | Type | Description |
|---|---|---|
| bossId optional | string (uuid) | The boss encounter to attack. |
| teamId optional | string (uuid) | Your team to send into the raid. |
object BossAttemptResponse 5 properties expand_more
Result of a guild boss attack attempt.
| Property | Type | Description |
|---|---|---|
| attemptId optional | string (uuid) | Unique attempt identifier for this attack. |
| playerName optional | string | Name of the attacking player. |
| damageDealt optional | integer (int32) | Total damage dealt to the boss in this attempt. |
| wasKillingBlow optional | boolean | Whether this attack delivered the final killing blow. |
| attemptedAt optional | string (date-time) | UTC timestamp of the attack. |
object BracketMatch 5 properties expand_more
| Property | Type | Description |
|---|---|---|
| matchNumber optional | integer (int32) | |
| player1Username optional | string | |
| player2Username optional | string | |
| winnerUsername optional | string | |
| status optional | string |
object BracketRound 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| roundNumber optional | integer (int32) | |
| roundName optional | string | |
| matches optional | array<BracketMatch> ↗ |
object ChallengeResponse 13 properties expand_more
A daily challenge objective with progress tracking and rewards.
| Property | Type | Description |
|---|---|---|
| _links optional | map<string, ApiLink> | Hypermedia links to related resources (claim reward when completed). |
| challengeId optional | string (uuid) | Unique challenge identifier. |
| name optional | string | Challenge title (e.g., "Warrior's Path", "Healing Hands"). |
| description optional | string | What you need to do to complete this challenge. |
| difficulty optional | string | Difficulty tier: "easy", "medium", or "hard". Harder = better rewards. |
| battlePassXp optional | integer (int32) | Battle pass XP awarded on completion. |
| progress optional | integer (int32) | Current progress toward completion. |
| requiredProgress optional | integer (int32) | Progress value needed to complete the challenge. |
| progressPercentage optional | number (double) | Completion percentage (0-100). Computed from progress / requiredProgress. |
| isCompleted optional | boolean | Whether the challenge objective has been met. Claim your reward when true. |
| rewardCurrency optional | integer (int32) | Currency reward for completing this challenge. |
| rewardExperience optional | integer (int32) | Experience points reward for completing this challenge. |
| expiresAt optional | string (date-time) | UTC timestamp when this challenge expires. Unclaimed rewards are forfeited. |
object ChatMessageResponse 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| messageId optional | string (uuid) | |
| playerId optional | string (uuid) | |
| username optional | string | |
| message optional | string | |
| messageType optional | string | |
| createdAt optional | string (date-time) |
object ClaimLootResponse 4 properties expand_more
Result of claiming loot drops.
| Property | Type | Description |
|---|---|---|
| goldAwarded optional | integer (int32) | Total gold awarded from claimed drops. |
| xpAwarded optional | integer (int32) | Total XP awarded from claimed drops. |
| titlesUnlocked optional | array<string> | Titles unlocked (if any). |
| dropsClaimed optional | integer (int32) | Number of drops claimed. |
object ClaimRequest 1 properties expand_more
Request to claim a completed challenge reward.
| Property | Type | Description |
|---|---|---|
| challengeId optional | string (uuid) | The ID of the completed challenge to claim. |
object ClaimRewardResponse 7 properties expand_more
Response after claiming a reward.
| Property | Type | Description |
|---|---|---|
| success optional | boolean | |
| level optional | integer (int32) | |
| track optional | string | |
| rewardType optional | string | |
| rewardValue optional | integer (int32) | |
| description optional | string | |
| message optional | string |
object ClassLeaderboardEntry 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| rank optional | integer (int32) | |
| username optional | string | |
| rating optional | integer (int32) | |
| wins optional | integer (int32) | |
| losses optional | integer (int32) | |
| winRate optional | number (double) | |
| lessonsCompleted optional | integer (int32) |
object CosmeticShopItem 11 properties expand_more
A cosmetic item in the shop.
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| name optional | string | |
| description optional | string | |
| category optional | string | |
| rarity optional | string | |
| gemPrice optional | integer (int32) | |
| goldPrice optional | integer (int32) | |
| isLimited optional | boolean | |
| requiredTier optional | string | |
| locked optional | boolean | |
| owned optional | boolean |
object CosmeticShopResponse 3 properties expand_more
Shop listing with player balance.
| Property | Type | Description |
|---|---|---|
| playerGems optional | integer (int32) | |
| playerGold optional | integer (int32) | |
| items optional | array<CosmeticShopItem> ↗ |
object CreateClassTournamentRequest 2 properties expand_more
| Property | Type | Description |
|---|---|---|
| entryFee optional | integer (int32) | (range: 0-10000) |
| maxParticipants optional | integer (int32) | (range: 2-128) |
object CreateGuildRequest 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| name * | string | (min: 1, max: 50 chars) |
| tag * | string | (min: 3, max: 5 chars) |
| description optional | string | (max: 500 chars) |
object CreateLessonRequest 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| title * | string | (min: 1, max: 100 chars) |
| objective * | string | (min: 1, max: 500 chars) |
| endpoint * | string | (min: 1, max: 200 chars) |
| hint optional | string | (max: 500 chars) |
| verificationEndpoint optional | string | If set, calling this endpoint successfully auto-completes the lesson. (max: 200 chars) |
| verificationMethod optional | string | HTTP method for verification (GET, POST, PUT, DELETE). Defaults to the endpoint's method. (max: 10 chars) |
object CreateModuleRequest 4 properties expand_more
| Property | Type | Description |
|---|---|---|
| title * | string | (min: 1, max: 100 chars) |
| description optional | string | (max: 500 chars) |
| difficulty optional | string | (max: 20 chars) |
| lessons optional | array<CreateLessonRequest> ↗ |
object CreateReplayRequest 1 properties expand_more
Request to generate a shareable replay from a completed battle.
| Property | Type | Description |
|---|---|---|
| battleId optional | string (uuid) | The completed battle ID to create a replay for. You must be a participant. |
object CreatorProfileResponse 10 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| creatorName optional | string | |
| username optional | string | |
| bio optional | string | |
| isVerified optional | boolean | |
| gemsEarned optional | integer (int32) | |
| totalDownloads optional | integer (int32) | |
| modulesCreated optional | integer (int32) | |
| isSpotlighted optional | boolean | |
| appliedAt optional | string (date-time) |
object CreatorStatsResponse 8 properties expand_more
| Property | Type | Description |
|---|---|---|
| creatorName optional | string | |
| totalStrategiesUploaded optional | integer (int32) | |
| totalStrategyDownloads optional | integer (int32) | |
| averageStrategyRating optional | number (double) | |
| modulesCreated optional | integer (int32) | |
| studentsEnrolled optional | integer (int32) | |
| gemsEarned optional | integer (int32) | |
| isVerified optional | boolean |
object CurrentSeasonResponse 17 properties expand_more
Information about the current ranked season.
| Property | Type | Description |
|---|---|---|
| seasonId optional | string (uuid) | Unique season identifier. |
| name optional | string | Display name of the season (e.g. "Season 1: Dawn of Battle"). |
| seasonNumber optional | integer (int32) | Season number (1, 2, 3...). |
| startDate optional | string (date-time) | UTC start date of this season. |
| endDate optional | string (date-time) | UTC end date of this season. |
| daysRemaining optional | integer (int32) | Days remaining in this season. |
| currentTier optional | string | Your current ranked tier this season (Bronze through Legend). |
| seasonRating optional | integer (int32) | Your current season API rating. |
| peakRating optional | integer (int32) | Your peak rating achieved this season. |
| peakTier optional | string | Your highest tier achieved this season (for end-of-season rewards). |
| wins optional | integer (int32) | Wins this season. |
| losses optional | integer (int32) | Losses this season. |
| draws optional | integer (int32) | Draws this season. |
| winRate optional | number (double) | Win rate percentage this season. |
| ratingToNextTier optional | integer (int32) | Rating needed to reach the next tier. Null if already Legend. |
| nextTier optional | string | Name of the next tier. Null if already Legend. |
| tierThresholds optional | map<string, integer> | Rating thresholds for each tier this season. |
object CurriculumModuleResponse 10 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| instructorUsername optional | string | |
| title optional | string | |
| description optional | string | |
| difficulty optional | string | |
| lessonCount optional | integer (int32) | |
| enrolledCount optional | integer (int32) | |
| isPublished optional | boolean | |
| joinCode optional | string | |
| createdAt optional | string (date-time) |
object DiagnosticsResponse 11 properties expand_more
| Property | Type | Description |
|---|---|---|
| version optional | string | |
| environment optional | string | |
| uptime optional | TimeSpan ↗ | |
| serverTimeUtc optional | string (date-time) | |
| runtime optional | string | |
| osPlatform optional | string | |
| processMemoryMb optional | number (double) | |
| databaseHealthy optional | boolean | |
| playerCount optional | integer (int32) | |
| hostedServicesConfigured optional | integer (int32) | |
| smtpConfigured optional | boolean |
object DigestCategory 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| category optional | string | |
| unreadCount optional | integer (int32) | |
| latestAt optional | string (date-time) |
object DigestItem 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| type optional | string | |
| title optional | string | |
| message optional | string | |
| actionUrl optional | string | |
| createdAt optional | string (date-time) |
object DiscordLinkResponse 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| discordUserId optional | string | |
| discordUsername optional | string | |
| isVerified optional | boolean | |
| notificationsEnabled optional | boolean | |
| verificationCode optional | string | |
| linkedAt optional | string (date-time) |
object DiscordProfileResponse 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| username optional | string | |
| level optional | integer (int32) | |
| rating optional | integer (int32) | |
| winStreak optional | integer (int32) | |
| currentTier optional | string | |
| badge optional | string | |
| guildName optional | string |
object EggCheckResponse 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| hasEgg optional | boolean | |
| selector optional | string | |
| offsetX optional | number (double) | |
| offsetY optional | number (double) | |
| icon optional | string | |
| code optional | string | |
| alreadyClaimed optional | boolean |
object EggHuntStatsResponse 4 properties expand_more
| Property | Type | Description |
|---|---|---|
| totalEggsThisWeek optional | integer (int32) | |
| eggsFoundThisWeek optional | integer (int32) | |
| totalLootEarned optional | integer (int32) | |
| allTimeEggsFound optional | integer (int32) |
object EggRedeemRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| code optional | string |
object EggRedeemResponse 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| success optional | boolean | |
| error optional | string | |
| lootType optional | string | |
| lootDescription optional | string | |
| lootAmount optional | integer (int32) | |
| code optional | string |
object EndpointCatalogResponse 2 properties expand_more
Full API endpoint catalog.
| Property | Type | Description |
|---|---|---|
| totalEndpoints optional | integer (int32) | |
| categories optional | array<EndpointCategoryDto> ↗ |
object EndpointCategoryDto 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| tag optional | string | |
| description optional | string | |
| endpoints optional | array<EndpointDto> ↗ |
object EndpointDto 4 properties expand_more
| Property | Type | Description |
|---|---|---|
| method optional | string | |
| path optional | string | |
| summary optional | string | |
| requiresAuth optional | boolean |
object EnrollmentProgressDto 5 properties expand_more
| Property | Type | Description |
|---|---|---|
| currentLesson optional | integer (int32) | |
| lessonsCompleted optional | integer (int32) | |
| totalLessons optional | integer (int32) | |
| progressPercent optional | number (double) | |
| isCompleted optional | boolean |
object GameMetrics 4 properties expand_more
| Property | Type | Description |
|---|---|---|
| totalPlayers optional | integer (int32) | |
| activeSeason optional | integer (int32) | |
| activeTournaments optional | integer (int32) | |
| totalBattlesCompleted optional | integer (int32) |
object GameStatusResponse 4 properties expand_more
Game status/health for external monitoring.
| Property | Type | Description |
|---|---|---|
| status optional | string | |
| version optional | string | |
| serverTime optional | string (date-time) | |
| metrics optional | GameMetrics ↗ |
object GemBalanceResponse 4 properties expand_more
Gem balance info.
| Property | Type | Description |
|---|---|---|
| gems optional | integer (int32) | |
| gold optional | integer (int32) | |
| gemsEarnedTotal optional | integer (int32) | |
| gemsSpentTotal optional | integer (int32) |
object GemStipendClaimResponse 3 properties expand_more
Response after claiming monthly gem stipend.
| Property | Type | Description |
|---|---|---|
| gemsAwarded optional | integer (int32) | |
| totalGems optional | integer (int32) | |
| nextClaimAvailable optional | string (date-time) |
object GoldenUpgradeRequest 1 properties expand_more
Request to apply golden upgrade.
| Property | Type | Description |
|---|---|---|
| unitId * | string (uuid) | The unit to upgrade. |
object GuildBossResponse 11 properties expand_more
Current state of a guild's raid boss encounter.
| Property | Type | Description |
|---|---|---|
| _links optional | map<string, ApiLink> | Hypermedia links to related resources (attack, leaderboard). |
| bossId optional | string (uuid) | Unique boss encounter identifier. |
| name optional | string | Boss name (e.g., "Infernal Titan", "Void Reaper"). |
| description optional | string | Flavor text describing the boss and its abilities. |
| maxHp optional | integer (int32) | Boss's maximum hit points at full health. |
| currentHp optional | integer (int32) | Boss's remaining hit points. Reduced by guild member attacks. |
| hpPercentage optional | number (double) | Remaining HP as a percentage (0-100). Computed from currentHp / maxHp. |
| expiresAt optional | string (date-time) | UTC timestamp when this boss encounter expires. Defeat it before time runs out. |
| isDefeated optional | boolean | Whether the boss has been defeated by the guild. |
| rewardCurrency optional | integer (int32) | Currency reward distributed to participants when the boss is defeated. |
| rewardExperience optional | integer (int32) | Experience reward distributed to participants when the boss is defeated. |
object GuildInviteResponse 8 properties expand_more
| Property | Type | Description |
|---|---|---|
| inviteId optional | string (uuid) | |
| guildId optional | string (uuid) | |
| guildName optional | string | |
| guildTag optional | string | |
| invitedByUsername optional | string | |
| status optional | string | |
| createdAt optional | string (date-time) | |
| expiresAt optional | string (date-time) |
object GuildMemberDto 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| playerId optional | string (uuid) | |
| username optional | string | |
| role optional | string | |
| joinedAt optional | string (date-time) | |
| contributionPoints optional | integer (int32) | |
| rating optional | integer (int32) | |
| level optional | integer (int32) |
object GuildResponse 10 properties expand_more
Guild information and membership details.
| Property | Type | Description |
|---|---|---|
| _links optional | map<string, ApiLink> | Hypermedia links to related resources (members, boss, treasury, strategies). |
| guildId optional | string (uuid) | Unique guild identifier. |
| name optional | string | Guild name. |
| tag optional | string | Short guild tag shown next to member names (3-5 characters). |
| description optional | string | Guild's public description and recruitment message. |
| leaderName optional | string | Username of the guild leader. |
| level optional | integer (int32) | Guild level. Higher levels unlock more member slots and boss encounters. |
| memberCount optional | integer (int32) | Current number of guild members. |
| maxMembers optional | integer (int32) | Maximum members allowed at the guild's current level. |
| createdAt optional | string (date-time) | When the guild was founded. |
object GuildStrategyResponse 8 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| name optional | string | |
| description optional | string | |
| creatorUsername optional | string | |
| strategy optional | object | |
| usageCount optional | integer (int32) | |
| createdAt optional | string (date-time) | |
| updatedAt optional | string (date-time) |
object GuildUpgradeOption 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string | |
| name optional | string | |
| description optional | string | |
| cost optional | integer (int32) | |
| canAfford optional | boolean | |
| alreadyPurchased optional | boolean |
object GuildWarHistoryResponse 7 properties expand_more
Guild war history entry.
| Property | Type | Description |
|---|---|---|
| warId optional | string (uuid) | |
| opponentGuild optional | string | |
| yourScore optional | integer (int32) | |
| opponentScore optional | integer (int32) | |
| result optional | string | |
| treasuryReward optional | integer (int32) | |
| endsAt optional | string (date-time) |
object GuildWarStatusResponse 10 properties expand_more
Current guild war status.
| Property | Type | Description |
|---|---|---|
| isAtWar optional | boolean | Whether your guild is currently in a war. |
| warId optional | string (uuid) | |
| yourGuild optional | string | Your guild's name and score. |
| yourScore optional | integer (int32) | |
| opponentGuild optional | string | Opposing guild's name and score. |
| opponentScore optional | integer (int32) | |
| endsAt optional | string (date-time) | When the war ends. |
| daysRemaining optional | integer (int32) | |
| treasuryReward optional | integer (int32) | Treasury bonus for winning. |
| topContributors optional | array<WarContributorDto> ↗ | Top contributors from your guild. |
object InstructorDashboardResponse 5 properties expand_more
| Property | Type | Description |
|---|---|---|
| totalModules optional | integer (int32) | |
| publishedModules optional | integer (int32) | |
| totalStudents optional | integer (int32) | |
| studentsCompleted optional | integer (int32) | |
| modules optional | array<ModuleStatsDto> ↗ |
object InvitePlayerRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| username * | string | (min: 1 chars) |
object KickMemberRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| playerId * | string (uuid) |
object LessonDto 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| index optional | integer (int32) | |
| title optional | string | |
| objective optional | string | |
| endpoint optional | string | |
| hint optional | string | |
| verificationEndpoint optional | string | |
| verificationMethod optional | string |
object LessonStatsDto 4 properties expand_more
| Property | Type | Description |
|---|---|---|
| lessonIndex optional | integer (int32) | |
| title optional | string | |
| completedCount optional | integer (int32) | |
| completionPercent optional | number (double) |
object LinkDiscordRequest 2 properties expand_more
| Property | Type | Description |
|---|---|---|
| discordUserId optional | string | |
| discordUsername optional | string |
object LoginRequest 2 properties expand_more
Credentials for authenticating an existing player.
| Property | Type | Description |
|---|---|---|
| email * | string (email) | Your registered email address. (min: 1 chars) |
| password * | string | Your account password. (min: 1 chars) |
object LootDropResponse 6 properties expand_more
A loot drop earned from a battle.
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | Unique drop ID. |
| dropType optional | string | Drop type: "CurrencyPack", "XpBoost", "RareTitle", or "CriticalGold". |
| description optional | string | Human-readable description of what you received. |
| value optional | integer (int32) | Numeric value of the reward (gold, XP, etc). |
| battleId optional | string (uuid) | The battle that triggered this drop. |
| droppedAt optional | string (date-time) | When the drop occurred. |
object MasteryResponse 6 properties expand_more
A player's mastery progression with a specific unit.
| Property | Type | Description |
|---|---|---|
| unitId optional | string (uuid) | The unit this mastery record belongs to. |
| level optional | integer (int32) | Current mastery level. Increases with experience. |
| experiencePoints optional | integer (int32) | Total experience points earned with this unit. |
| battlesUsed optional | integer (int32) | Total number of battles this unit has participated in. |
| winsWithUnit optional | integer (int32) | Number of battles won while using this unit. |
| winRate optional | number (double) | Win rate percentage (0-100) with this unit. Computed from wins / battles. |
object ModifierResponse 5 properties expand_more
An environmental modifier that affects all battles during its active period.
| Property | Type | Description |
|---|---|---|
| modifierId optional | string (uuid) | Modifier identifier. Null when returning the "Normal" placeholder. |
| name optional | string | Modifier name (e.g., "Healing Surge", "Glass Cannon", "Normal"). |
| description optional | string | Description of the modifier's effect on battle mechanics. |
| startDate optional | string (date-time) | UTC start of this modifier's active period. Null for the "Normal" placeholder. |
| endDate optional | string (date-time) | UTC end of this modifier's active period. Null for the "Normal" placeholder. |
object ModuleDetailResponse 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| title optional | string | |
| description optional | string | |
| difficulty optional | string | |
| lessons optional | array<LessonDto> ↗ | |
| myProgress optional | EnrollmentProgressDto ↗ |
object ModuleStatsDto 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| title optional | string | |
| enrolledCount optional | integer (int32) | |
| completedCount optional | integer (int32) | |
| averageProgress optional | number (double) | |
| lessonStats optional | array<LessonStatsDto> ↗ | |
| recentCompletions optional | array<RecentCompletionDto> ↗ |
object NotificationDigestResponse 3 properties expand_more
Summarized notification digest grouped by category.
| Property | Type | Description |
|---|---|---|
| totalUnread optional | integer (int32) | |
| categories optional | array<DigestCategory> ↗ | |
| recentHighlights optional | array<DigestItem> ↗ |
object NotificationPreferences 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| battle optional | boolean | |
| guild optional | boolean | |
| progression optional | boolean | |
| marketplace optional | boolean | |
| competitive optional | boolean | |
| education optional | boolean |
object PendingLootResponse 2 properties expand_more
Pending loot drops waiting to be claimed.
| Property | Type | Description |
|---|---|---|
| drops optional | array<LootDropResponse> ↗ | Unclaimed loot drops. |
| totalUnclaimed optional | integer (int32) | Total unclaimed drops. |
object PlayerCosmeticResponse 5 properties expand_more
Player's owned cosmetics.
| Property | Type | Description |
|---|---|---|
| cosmeticId optional | string (uuid) | |
| name optional | string | |
| category optional | string | |
| rarity optional | string | |
| isEquipped optional | boolean |
object PlayerLifetimeStatsResponse 26 properties expand_more
Lifetime stats for a player (sunk cost investment).
| Property | Type | Description |
|---|---|---|
| username optional | string | |
| level optional | integer (int32) | |
| rating optional | integer (int32) | |
| currentTier optional | string | |
| badge optional | string | |
| totalBattlesPlayed optional | integer (int32) | |
| totalBattlesWon optional | integer (int32) | |
| totalBattlesLost optional | integer (int32) | |
| winRate optional | number (double) | |
| currentWinStreak optional | integer (int32) | |
| highestWinStreak optional | integer (int32) | |
| highestRating optional | integer (int32) | |
| totalGoldEarned optional | integer (int64) | |
| currentGold optional | integer (int32) | |
| totalXpEarned optional | integer (int64) | |
| gemsEarnedTotal optional | integer (int32) | |
| gemsSpentTotal optional | integer (int32) | |
| unitsUnlocked optional | integer (int32) | |
| teamsCreated optional | integer (int32) | |
| achievementsUnlocked optional | integer (int32) | |
| achievementPoints optional | integer (int32) | |
| cosmeticsOwned optional | integer (int32) | |
| loginStreak optional | integer (int32) | |
| daysPlayed optional | integer (int32) | |
| memberSince optional | string (date-time) | |
| investmentSummary optional | string |
object PostChatRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| message * | string | (min: 1, max: 500 chars) |
object PracticeBattleRequest 2 properties expand_more
Request to fight an AI opponent in a practice battle.
| Property | Type | Description |
|---|---|---|
| teamId * | string (uuid) | Your team ID. Must be a team you own with at least one unit. |
| opponentId * | string | AI opponent ID from the GET /api/v1/ai/opponents list (e.g. "novice-1", "expert-3"). (min: 1 chars) |
object PremiumPerksResponse 16 properties expand_more
All active perks for the player's current subscription tier.
| Property | Type | Description |
|---|---|---|
| currentTier optional | string | |
| goldMultiplier optional | number (double) | |
| xpMultiplier optional | number (double) | |
| battlePassXpBonus optional | number (double) | |
| dailyBattleLimit optional | integer (int32) | |
| maxTeamSlots optional | integer (int32) | |
| canCreateGuild optional | boolean | |
| canRefreshChallenges optional | boolean | |
| guaranteedLootEveryNBattles optional | integer (int32) | |
| hasPremiumBattlePassTrack optional | boolean | |
| monthlyGemStipend optional | integer (int32) | |
| hasCreatorBadge optional | boolean | |
| hasExclusiveCosmetics optional | boolean | |
| lootRarityBoost optional | number (double) | |
| badge optional | string | |
| nextGemStipendAvailable optional | string (date-time) |
object ProblemDetails 5 properties expand_more
| Property | Type | Description |
|---|---|---|
| type optional | string | |
| title optional | string | |
| status optional | integer (int32) | |
| detail optional | string | |
| instance optional | string |
object PromoteMemberRequest 2 properties expand_more
| Property | Type | Description |
|---|---|---|
| playerId * | string (uuid) | |
| newRole * | string | (min: 1 chars) |
object PublishGuildStrategyRequest 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| name optional | string | |
| description optional | string | |
| strategy optional | object |
object PurchaseCosmeticRequest 1 properties expand_more
Purchase request.
| Property | Type | Description |
|---|---|---|
| paymentMethod optional | string | "gems" or "gold" |
object QuickStartResponse 8 properties expand_more
Quick-start guide for new API consumers.
| Property | Type | Description |
|---|---|---|
| gameTitle optional | string | |
| baseUrl optional | string | |
| version optional | string | |
| openApiSpecUrl optional | string | |
| steps optional | array<QuickStartStep> ↗ | |
| auth optional | AuthGuide ↗ | |
| tips optional | array<string> | |
| exampleSnippets optional | array<SdkSnippet> ↗ |
object QuickStartStep 6 properties expand_more
| Property | Type | Description |
|---|---|---|
| order optional | integer (int32) | |
| action optional | string | |
| method optional | string | |
| endpoint optional | string | |
| description optional | string | |
| exampleBody optional | string |
object RecentCompletionDto 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| username optional | string | |
| lessonTitle optional | string | |
| completedAt optional | string (date-time) |
object RedeemReferralResponse 3 properties expand_more
Result of redeeming a referral code during registration.
| Property | Type | Description |
|---|---|---|
| success optional | boolean | |
| bonusGoldAwarded optional | integer (int32) | |
| referrerUsername optional | string |
object ReferralInfoResponse 5 properties expand_more
Your referral code and stats.
| Property | Type | Description |
|---|---|---|
| referralCode optional | string | Your unique referral code. Share this with friends. |
| totalReferrals optional | integer (int32) | Total players who signed up using your code. |
| totalGoldEarned optional | integer (int32) | Gold earned from referral rewards so far. |
| rewardPerReferral optional | integer (int32) | Gold reward per successful referral. |
| referredPlayerBonus optional | integer (int32) | Bonus gold the referred player receives. |
object ReferralLeaderboardEntry 3 properties expand_more
A leaderboard entry for the referral program.
| Property | Type | Description |
|---|---|---|
| rank optional | integer (int32) | |
| username optional | string | |
| totalReferrals optional | integer (int32) |
object ReferralLeaderboardResponse 3 properties expand_more
Referral leaderboard response.
| Property | Type | Description |
|---|---|---|
| rankings optional | array<ReferralLeaderboardEntry> ↗ | |
| yourRank optional | integer (int32) | |
| yourReferrals optional | integer (int32) |
object RegisterRequest 3 properties expand_more
Credentials for creating a new player account.
| Property | Type | Description |
|---|---|---|
| username * | string | Your unique display name, visible to other players. 3-50 characters. (min: 3, max: 50 chars) |
| email * | string (email) | Email address for account recovery. Must be unique across all accounts. (min: 1, max: 100 chars) |
| password * | string | Account password. Minimum 8 characters. (min: 8, max: 100 chars) |
object RegisterWebhookRequest 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| webhookUrl optional | string | |
| label optional | string | |
| eventTypes optional | array<string> |
object RenameUnitRequest 2 properties expand_more
Request to rename a unit.
| Property | Type | Description |
|---|---|---|
| unitId * | string (uuid) | The unit to rename. |
| newName * | string | New display name for the unit (3-50 characters). (min: 3, max: 50 chars) |
object ReplayResponse 8 properties expand_more
Battle replay data with shareable link and viewer statistics.
| Property | Type | Description |
|---|---|---|
| replayId optional | string (uuid) | Unique replay identifier. |
| battleId optional | string (uuid) | The battle this replay captures. |
| shareUrl optional | string | Unique shareable URL identifier. Append to /api/v1/replays/ to view. |
| viewCount optional | integer (int32) | Number of times this replay has been viewed. |
| isFeatured optional | boolean | Whether this replay has been featured for exceptional gameplay. |
| createdAt optional | string (date-time) | When this replay was created. |
| player1Name optional | string | Username of Player 1 in the battle. |
| player2Name optional | string | Username of Player 2 in the battle. |
object RerollStatsRequest 1 properties expand_more
Request to reroll a unit's stats.
| Property | Type | Description |
|---|---|---|
| unitId * | string (uuid) | The unit to reroll. |
object RivalInfoResponse 10 properties expand_more
Your current rival assignment.
| Property | Type | Description |
|---|---|---|
| rivalId optional | string (uuid) | Your rival's player ID. |
| rivalUsername optional | string | Your rival's username. |
| rivalRating optional | integer (int32) | Your rival's current API rating. |
| rivalLevel optional | integer (int32) | Your rival's level. |
| winsAgainstRival optional | integer (int32) | Wins you've scored against this rival. |
| lossesAgainstRival optional | integer (int32) | Losses against this rival. |
| bonusGoldEarned optional | integer (int32) | Bonus gold earned from rival victories so far. |
| bonusPerWin optional | integer (int32) | Bonus gold awarded per win against your rival. |
| expiresAt optional | string (date-time) | When this rival assignment expires and a new one is assigned. |
| hasRival optional | boolean | Whether you currently have a rival assigned. |
object SdkSnippet 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| language optional | string | |
| label optional | string | |
| code optional | string |
object SeasonLeaderboardEntry 8 properties expand_more
A player's ranking in the seasonal leaderboard.
| Property | Type | Description |
|---|---|---|
| rank optional | integer (int32) | Leaderboard position (1-based). |
| playerId optional | string (uuid) | Player ID. |
| username optional | string | Player display name. |
| tier optional | string | Current season tier. |
| rating optional | integer (int32) | Current season API rating. |
| wins optional | integer (int32) | Total wins this season. |
| losses optional | integer (int32) | Total losses this season. |
| winRate optional | number (double) | Win rate percentage. |
object SeasonLeaderboardResponse 4 properties expand_more
Response containing the seasonal leaderboard.
| Property | Type | Description |
|---|---|---|
| seasonName optional | string | Season name. |
| rankings optional | array<SeasonLeaderboardEntry> ↗ | Ranked players ordered by rating. |
| totalPlayers optional | integer (int32) | Total players ranked this season. |
| yourRank optional | integer (int32) | Your position on the leaderboard. Null if not ranked. |
object SeasonRewardsResponse 6 properties expand_more
Rewards earned at the end of a season based on peak tier achieved.
| Property | Type | Description |
|---|---|---|
| seasonName optional | string | Season this reward is from. |
| peakTier optional | string | Peak tier achieved during this season. |
| goldReward optional | integer (int32) | Gold reward earned. |
| xpReward optional | integer (int32) | XP reward earned. |
| exclusiveTitle optional | string | Exclusive title earned (if any). |
| claimed optional | boolean | Whether rewards were successfully claimed. |
object SetBadgeRequest 1 properties expand_more
Request to set a profile badge.
| Property | Type | Description |
|---|---|---|
| badge optional | string | Badge name to equip, or null to remove. |
object SpotlightResponse 2 properties expand_more
| Property | Type | Description |
|---|---|---|
| featuredCreators optional | array<CreatorProfileResponse> ↗ | |
| month optional | string |
object StrategyConfig 3 properties expand_more
Declarative battle strategy that controls how your team's AI behaves in combat. Assign this to a team to automate tactical decisions.
| Property | Type | Description |
|---|---|---|
| formation optional | Formation ↗ | |
| targetPriority optional | array<TargetPriority> ↗ | Ordered list of target selection priorities evaluated top-to-bottom. |
| abilities optional | map<string, AbilityCondition> | Conditional ability rules keyed by ability name. Controls when and how each ability is used during battle. |
object StrategyDownloadResponse 3 properties expand_more
Full strategy data returned after purchase, including the JSON configuration.
| Property | Type | Description |
|---|---|---|
| strategyId optional | string (uuid) | Unique strategy identifier. |
| name optional | string | Strategy display name. |
| strategyJson optional | string | The full strategy JSON. Use directly as the strategy field in team configuration. |
object StrategyRatingRequest 2 properties expand_more
Request to rate a marketplace strategy.
| Property | Type | Description |
|---|---|---|
| rating optional | integer (int32) | Star rating from 1 (poor) to 5 (excellent). (range: 1-5) |
| comment optional | string | Optional review comment. Up to 500 characters. (max: 500 chars) |
object StrategyResponse 10 properties expand_more
A strategy listing in the marketplace.
| Property | Type | Description |
|---|---|---|
| strategyId optional | string (uuid) | Unique strategy identifier. |
| name optional | string | Strategy display name chosen by the creator. |
| description optional | string | Creator's description of the strategy and its intended playstyle. |
| creatorName optional | string | Username of the player who published this strategy. |
| price optional | integer (int32) | Cost in currency to purchase. 0 means free. |
| downloadCount optional | integer (int32) | Number of times this strategy has been downloaded. |
| averageRating optional | number (double) | Community rating average (1.0-5.0 scale). |
| winRate optional | number (double) | Historical win rate percentage of battles using this strategy (0-100). |
| effectivenessMultiplier optional | number (double) | Anti-meta decay multiplier (0.5-1.0). Strategies lose effectiveness over time to prevent stagnation. |
| createdAt optional | string (date-time) | When this strategy was published. |
object StrategyUploadRequest 4 properties expand_more
Request to publish a new strategy to the marketplace.
| Property | Type | Description |
|---|---|---|
| name * | string | Display name for your strategy. 1-100 characters. (min: 1, max: 100 chars) |
| description optional | string | Describe your strategy's approach and ideal use case. Up to 500 characters. (max: 500 chars) |
| strategyJson * | string | The strategy configuration as a JSON string matching the StrategyConfig schema. (min: 1, max: 51200 chars) |
| price optional | integer (int32) | Price in currency. Set to 0 to share for free. Buyers pay this amount to download. (range: 0-100000) |
object StudentProgressDto 7 properties expand_more
| Property | Type | Description |
|---|---|---|
| username optional | string | |
| lessonsCompleted optional | integer (int32) | |
| totalLessons optional | integer (int32) | |
| progressPercent optional | number (double) | |
| isCompleted optional | boolean | |
| enrolledAt optional | string (date-time) | |
| completedAt optional | string (date-time) |
object TeamConfigRequest 3 properties expand_more
Configuration for creating or updating a team of combat units.
| Property | Type | Description |
|---|---|---|
| name * | string | Display name for this team. 1-100 characters. (min: 1, max: 100 chars) |
| unitIds * | array<string> | IDs of units from your roster to include. 1-5 units required. |
| strategy optional | StrategyConfig ↗ |
object TeamResponse 7 properties expand_more
A configured team with its units and battle strategy.
| Property | Type | Description |
|---|---|---|
| _links optional | map<string, ApiLink> | Hypermedia links to related resources (queue battle, delete team). |
| id optional | string (uuid) | Unique team identifier. |
| name optional | string | Team display name. |
| units optional | array<UnitSummary> ↗ | The units assigned to this team with their current stats. |
| strategy optional | StrategyConfig ↗ | |
| createdAt optional | string (date-time) | When this team was first created. |
| updatedAt optional | string (date-time) | When this team was last modified. |
object TimeSpan 15 properties expand_more
| Property | Type | Description |
|---|---|---|
| ticks optional | integer (int64) | |
| days optional | integer (int32) | |
| hours optional | integer (int32) | |
| milliseconds optional | integer (int32) | |
| microseconds optional | integer (int32) | |
| nanoseconds optional | integer (int32) | |
| minutes optional | integer (int32) | |
| seconds optional | integer (int32) | |
| totalDays optional | number (double) | |
| totalHours optional | number (double) | |
| totalMilliseconds optional | number (double) | |
| totalMicroseconds optional | number (double) | |
| totalNanoseconds optional | number (double) | |
| totalMinutes optional | number (double) | |
| totalSeconds optional | number (double) |
object TournamentBracketResponse 5 properties expand_more
Tournament bracket view.
| Property | Type | Description |
|---|---|---|
| tournamentId optional | string (uuid) | |
| name optional | string | |
| totalRounds optional | integer (int32) | |
| rounds optional | array<BracketRound> ↗ | |
| winnerUsername optional | string |
object TournamentEntryRequest 1 properties expand_more
Request to enter a tournament.
| Property | Type | Description |
|---|---|---|
| teamId optional | string (uuid) | The team to compete with. |
object TournamentInfoResponse 12 properties expand_more
Tournament information with your entry status.
| Property | Type | Description |
|---|---|---|
| tournamentId optional | string (uuid) | |
| name optional | string | |
| status optional | string | |
| maxParticipants optional | integer (int32) | |
| currentParticipants optional | integer (int32) | |
| entryFee optional | integer (int32) | |
| prizes optional | array<TournamentPrize> ↗ | |
| startsAt optional | string (date-time) | |
| completedAt optional | string (date-time) | |
| isRegistered optional | boolean | Whether you are registered in this tournament. |
| yourSeed optional | integer (int32) | |
| isEliminated optional | boolean |
object TournamentPrize 4 properties expand_more
| Property | Type | Description |
|---|---|---|
| place optional | integer (int32) | |
| currency optional | integer (int32) | |
| xp optional | integer (int32) | |
| title optional | string |
object TreasuryDepositRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| amount optional | integer (int32) | (range: 1-1000000) |
object TreasuryResponse 5 properties expand_more
| Property | Type | Description |
|---|---|---|
| balance optional | integer (int32) | |
| goldBonusPercent optional | integer (int32) | |
| maxRaidAttempts optional | integer (int32) | |
| maxMembers optional | integer (int32) | |
| availableUpgrades optional | array<GuildUpgradeOption> ↗ |
object TreasurySpendRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| upgradeId optional | string |
object UnitCustomizationResponse 11 properties expand_more
Result of a customization action.
| Property | Type | Description |
|---|---|---|
| unitId optional | string (uuid) | Updated unit details. |
| name optional | string | |
| customName optional | string | |
| isGolden optional | boolean | |
| rerollCount optional | integer (int32) | |
| health optional | integer (int32) | Current stats after any changes. |
| attack optional | integer (int32) | |
| defense optional | integer (int32) | |
| speed optional | integer (int32) | |
| goldSpent optional | integer (int32) | Gold spent on this action. |
| remainingCurrency optional | integer (int32) | Player's remaining currency. |
object UnitSummary 8 properties expand_more
Compact view of a unit's identity and combat stats.
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | Unique unit identifier. |
| name optional | string | Unit display name (e.g., "Shadow Mage", "Iron Guardian"). |
| class optional | string | Combat class: Warrior, Mage, Ranger, Healer, or Tank. |
| level optional | integer (int32) | Current unit level. Higher levels have better stats. |
| health optional | integer (int32) | Maximum hit points. When reduced to 0, the unit is eliminated. |
| attack optional | integer (int32) | Offensive power. Increases damage dealt by abilities. |
| defense optional | integer (int32) | Damage mitigation. Reduces incoming damage. |
| speed optional | integer (int32) | Turn order priority. Faster units act first each turn. |
object UnlockUnitRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| templateUnitId optional | string (uuid) |
object UpdateGuildStrategyRequest 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| name optional | string | |
| description optional | string | |
| strategy optional | object |
object VerifyDiscordRequest 1 properties expand_more
| Property | Type | Description |
|---|---|---|
| verificationCode optional | string |
object VersionResponse 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| version optional | string | |
| buildDate optional | string (date-time) | |
| environment optional | string |
object WarContributorDto 3 properties expand_more
| Property | Type | Description |
|---|---|---|
| username optional | string | |
| points optional | integer (int32) | |
| wins optional | integer (int32) |
object WebhookResponse 5 properties expand_more
| Property | Type | Description |
|---|---|---|
| id optional | string (uuid) | |
| label optional | string | |
| eventTypes optional | string | |
| isActive optional | boolean | |
| createdAt optional | string (date-time) |