user-cowboyCharacter

Character - API Reference

Overview

Base URL: https://api.idosgames.com

HTTP Method: POST

Route: /api/v2/{TitleTemplateId}/{TitleId}/Client/Character/{Action}/{UserID}

Actions (CharacterAction):

  • GetCharacterDefinitions

  • GetUserCharacters

  • UpgradeStatLevel

  • UpgradeCharacterLevel

  • EquipItems

  • UnequipItems

Authentication

Required Headers

  • Authorization: Bearer <SessionTicket>

  • Content-Type: application/json

Unauthorized (401)

Returned when:

  • Authorization header is missing

  • Bearer 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>)


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": use CurrencyID, Amount

  • When Type = "Item": use Catalog, ItemID, Amount

  • Name and ImagePath are optional UI helpers (may be null)

UpgradeStatLevelResponse

UpgradeCharacterLevelResponse

SuccessResponse


A) Bootstrap (Open Character Screen)

  1. GetCharacterDefinitions

  2. GetUserCharacters

B) Unlock / Rank Up

  1. UpgradeCharacterLevel (CharacterID)

  2. GetUserCharacters

C) Upgrade Stat

  1. UpgradeStatLevel (CharacterID, StatID)

  2. GetUserCharacters

D) Equip / Unequip

  1. EquipItems / UnequipItems

  2. GetUserCharacters


Config Usage Guide (Client)

Stat Resolution (Custom → Global)

When rendering or calculating a stat:

  1. If CustomStatDefinitions contains CharacterID and has matching StatID, use that StatDefinition.

  2. Otherwise use the matching entry from StatDefinitions.

Level Resolution (Custom → Global)

When resolving upgrade cost or multipliers for a character level:

  1. Try CustomLevelDefinitions[CharacterID] for the target Level.

  2. Otherwise use LevelDefinitions.

Effective Max Stat Level

To display the true stat cap for a character:

  • BaseMaxLevel = StatDefinition.MaxLevel

  • Multiplier = CharacterLevelDefinition.StatMaxLevelMultiplier for current character Level

  • EffectiveMaxLevel = floor(BaseMaxLevel * Multiplier)


Examples (cURL)

GetCharacterDefinitions

GetUserCharacters

UpgradeStatLevel

UpgradeCharacterLevel

EquipItems

UnequipItems

Last updated