🎮 Client

Contents

🎮 Client#

Base#

class SharedBaseClient(*, base_url='http://eapi.stalcraft.net', json=False, region=None)[source]#

Bases: ABC, APIClient

Abstract Base API client for shared endpoints.

async regions()[source]#

Retrieve available game server regions.

Return type:

list[RegionInfo]

Returns:

List of regions.

async emission(region=None)[source]#

Get current emission state.

Parameters:

region (optional) – Game server region. Defaults to ru.

Return type:

EmissionState

Returns:

Emission state.

async profile(username, region=None)[source]#

Retrieve public character profile including alliance, stats, and clan affiliation.

Parameters:
  • username (str) – Character name.

  • region (optional) – Game server region. Defaults to ru.

Return type:

CharacterProfile

Returns:

Public character profile data.

async clans(limit=None, offset=None, region=None)[source]#

List all registered clans.

Parameters:
  • limit (optional) – Amount of clans to return, starting from offset, (0-100). Defaults to 20.

  • offset (optional) – Amount of clans to skip. Defaults to 0.

  • region (optional) – Game server region. Defaults to ru.

Return type:

Listing[ClanInfo]

Returns:

Paginated clan listing.

async operations_sessions(limit=None, offset=None, sort=None, order=None, map=None, username=None, before=None, after=None, region=None)[source]#

Returns list of operation sessions.

Parameters:
  • limit (optional) – Amount of sessions to return, starting from offset, (0-100). Defaults to 20.

  • offset (optional) – Amount of sessions to skip. Defaults to 0.

  • sort (optional) – Sorting field. Defaults to date_finish.

  • order (optional) – Sorting direction. Defaults to descending.

  • map (optional) – Filter by operations map name.

  • username (optional) – Filter by character name.

  • before (optional) – Filter sessions finished before ISO date (%Y-%m-%dT%H:%M:%SZ).

  • after (optional) – Filter sessions finished after ISO date (%Y-%m-%dT%H:%M:%SZ).

  • region (optional) – Game server region. Defaults to ru.

Return type:

Listing[OperationSession]

Returns:

Paginated operations sessions listing.

auction(item_id, region=None)[source]#

Factory method for auction endpoint.

Parameters:
  • item_id (str) – Item identifier.

  • region (optional) – Game server region. Defaults to ru.

Return type:

AuctionEndpoint

Returns:

Auction endpoint instance.

App#

class AppClient(*, token=None, client_id=None, client_secret=None, base_url='http://eapi.stalcraft.net', timeout=60, json=False, region=None)[source]#

Bases: SharedBaseClient

API Client for application specific endpoints.

clan(clan_id, region=None)[source]#

Factory method for clan endpoint.

Parameters:
  • clan_id (str) – Clan identifier.

  • region (optional) – Game server region. Defaults to ru.

Return type:

ClanEndpoint

Returns:

Clan endpoint instance.

User#

class UserClient(*, token, base_url='http://eapi.stalcraft.net', timeout=60, json=False, region=None)[source]#

Bases: SharedBaseClient

API Client for user specific endpoints.

async characters(region=None)[source]#

Retrieve user characters.

Parameters:

region (optional) – Game server region. Defaults to ru.

Return type:

List[Character]

Returns:

List of user characters.

async friends(character, region=None)[source]#

Retrieve user character friends list.

Parameters:
  • character (str) – User character name.

  • region (optional) – Game server region. Defaults to ru.

Return type:

List[str]

Returns:

List of user friends character names.

clan(clan_id, region=None)[source]#

Factory method for user specific clan endpoint.

Parameters:
  • clan_id (str) – Clan identifier.

  • region (optional) – Default game server region. Defaults to ru.

Return type:

UserClanEndpoint

Returns:

User clan endpoint instance.

Models#

class ClientModel(**data)[source]#

Bases: BaseModel

Base model for API response.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class RegionInfo(**data)[source]#

Bases: ClientModel

Game server region information.

Endpoint: https://eapi.stalcraft.net/reference#/paths/regions/get

id: str#
name: str#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class EmissionState(**data)[source]#

Bases: ClientModel

Current and previous emission status.

Reference: https://eapi.stalcraft.net/reference#/schemas/EmissionResponse

current_start: Optional[datetime]#
previous_start: Optional[datetime]#
previous_end: Optional[datetime]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ClanInfo(**data)[source]#

Bases: ClientModel

Clan details and statistics.

Reference: https://eapi.stalcraft.net/reference#/schemas/ClanInfo

name: str#
uuid: str#
tag: str#
level: int#
level_points: int#
registration_time: datetime#
alliance: Optional[Alliance]#
description: str#
leader: str#
member_count: int#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ClanMember(**data)[source]#

Bases: ClientModel

Clan member details.

Reference: https://eapi.stalcraft.net/reference#/schemas/ClanMember

name: str#
rank: ClanRank#
join_time: datetime#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ClanAffiliation(**data)[source]#

Bases: ClientModel

Character clan affiliation.

Reference: https://eapi.stalcraft.net/reference#/schemas/CharacterClanInfo

info: ClanInfo#
member: ClanMember#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class CharacterInfo(**data)[source]#

Bases: ClientModel

Basic character metadata.

name: str#
uuid: str#
creation_time: datetime#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class Character(**data)[source]#

Bases: ClientModel

User Character details.

Endpoint: https://eapi.stalcraft.net/reference#/paths/region–characters/get

info: CharacterInfo#
clan: Optional[ClanAffiliation]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class Statistic(**data)[source]#

Bases: ClientModel

Character statistic.

Reference: https://eapi.stalcraft.net/reference#/schemas/CharacterStatValue

id: str#
type: StatType#
value: Any#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class CharacterProfile(**data)[source]#

Bases: ClientModel

Public character profile.

Reference: https://eapi.stalcraft.net/reference#/schemas/CharacterProfileData

name: str#
uuid: str#
status: str#
alliance: Optional[Alliance]#
last_login: Optional[datetime]#
displayed_achievements: list[str]#
clan: Optional[ClanAffiliation]#
stats: list[Statistic]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class AuctionLot(**data)[source]#

Bases: ClientModel

Actual auction item lot.

Reference: https://eapi.stalcraft.net/reference#/schemas/Lot

item_id: str#
amount: int#
start_price: int#
current_price: Optional[int]#
buyout_price: int#
start_time: datetime#
end_time: datetime#
additional: Optional[Dict[str, Any]]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class AuctionPrice(**data)[source]#

Bases: ClientModel

Historical auction price entry.

Reference: https://eapi.stalcraft.net/reference#/schemas/PriceEntry

amount: int#
price: int#
time: datetime#
additional: Optional[Dict[str, Any]]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class OperationParticipant(**data)[source]#

Bases: ClientModel

Player statistics in an operation session.

Reference: https://eapi.stalcraft.net/reference#/schemas/OperationSessionParticipant

username: str#
death: int#
mob_kills: int#
damage_received: float#
damage_dealt: float#
armor_class: str#
armor_item_id: Optional[str]#
armor_level: int#
primary_weapon_item_id: Optional[str]#
primary_weapon_level: int#
secondary_weapon_item_id: Optional[str]#
secondary_weapon_level: int#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class OperationSession(**data)[source]#

Bases: ClientModel

Operation session details.

Reference: https://eapi.stalcraft.net/reference#/schemas/OperationSession

id: int#
map: str#
start_time: datetime#
end_time: datetime#
difficulty: int#
duration_seconds: float#
reward: int#
participants: list[OperationParticipant]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].