Character
Character - API Reference
Overview
Base URL: https://api.idosgames.com
HTTP Method: POST
Route: /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/{Action}/{UserID}
Documentation: LiveOps Configuration & Logic
Actions (CharacterAction):
GetCharacterDefinitionsGetUserCharactersUpgradeStatLevelUpgradeCharacterLevelEquipItemsUnequipItemsUnequipAllCharacters
Authentication
Required Headers
Authorization: Bearer <SessionTicket>Content-Type: application/json
Unauthorized (401)
Returned when:
Authorizationheader is missingBearer token is missing/invalid
Session validation failed
Response Envelope (Server Standard)
All responses are wrapped with OperationResult<T>:
Success
Failure
SuccessResponse
Used by operations like Equip/Unequip:
Quick Reference (Action Table)
Request body can be
{}for actions without arguments.
Endpoints
1) GetCharacterDefinitions
Returns CharacterDefinitions.
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/GetCharacterDefinitions/{UserID}
Body
Response (OperationResult<CharacterDefinitions>)
Common Errors
2) GetUserCharacters
Returns player characters dictionary.
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/GetUserCharacters/{UserID}
Body
Response (OperationResult<GetCharactersResponse>)
Empty State
3) UpgradeStatLevel
Upgrades a stat by +1 and consumes required resource.
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/UpgradeStatLevel/{UserID}
Body
Response (OperationResult<UpgradeStatLevelResponse>)
Common Errors
Missing StatID
Stat Not Found
Character Locked
Requirements Not Met
Max Reached
Fail / Not Enough Resource
4) UpgradeCharacterLevel
Upgrades character rank/level by +1 (including unlock 0 → 1).
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/UpgradeCharacterLevel/{UserID}
Body
Response (OperationResult<UpgradeCharacterLevelResponse>)
Common Errors
Not Allowed
Next Level Config Missing
Not Enough Currency
Not Enough Items
Resource Revocation Failed
Database Error (Refunded)
5) EquipItems
Equips items to specified slots.
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/EquipItems/{UserID}
Body
Response (OperationResult<SuccessResponse>)
6) UnequipItems
Unequips items from specified slots.
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/UnequipItems/{UserID}
Body
Response (OperationResult<SuccessResponse>)
7) UnequipAllCharacters
Unequips items from all characters (clears equipment slots everywhere).
Request
Route POST /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/UnequipAllCharacters/{UserID}
Body
Response (OperationResult<SuccessResponse>)
Models (Contracts)
CharacterRequest
EquipSlotPair
GetCharactersResponse
CharacterModel
Represents a single owned character (stored inside GetCharactersResponse.Characters).
EquippedItem
Equipment entry in CharacterModel.Equipment.
ItemOrCurrency
Universal representation of currency or item costs/rewards.
ItemType
Notes
When
Type = "VirtualCurrency": useCurrencyID,AmountWhen
Type = "Item": useCatalog,ItemID,AmountNameandImagePathare optional UI helpers (may be null)
UpgradeStatLevelResponse
UpgradeCharacterLevelResponse
SuccessResponse
Client Flow (Recommended)
A) Bootstrap (Open Character Screen)
GetCharacterDefinitionsGetUserCharacters
B) Unlock / Rank Up
UpgradeCharacterLevel(CharacterID)GetUserCharacters
C) Upgrade Stat
UpgradeStatLevel(CharacterID,StatID)GetUserCharacters
D) Equip / Unequip
EquipItems/UnequipItemsGetUserCharacters
Config Usage Guide (Client)
Stat Resolution (Custom → Global)
When rendering or calculating a stat:
If
CustomStatDefinitionscontainsCharacterIDand has matchingStatID, use thatStatDefinition.Otherwise use the matching entry from
StatDefinitions.
Level Resolution (Custom → Global)
When resolving upgrade cost or multipliers for a character level:
Try
CustomLevelDefinitions[CharacterID]for the targetLevel.Otherwise use
LevelDefinitions.
Effective Max Stat Level
To display the true stat cap for a character:
BaseMaxLevel = StatDefinition.MaxLevelMultiplier = CharacterLevelDefinition.StatMaxLevelMultiplierfor current characterLevelEffectiveMaxLevel = floor(BaseMaxLevel * Multiplier)
Examples (cURL)
GetCharacterDefinitions
GetUserCharacters
UpgradeStatLevel
UpgradeCharacterLevel
EquipItems
UnequipItems
Last updated