Skip to main content

Endfield

A Python library for fetching and parsing player data from the Enka Network API for Endfield.

PyPI version License

Overview

Endfield is an async Python library that provides easy access to player game data from the Enka Network API. It allows developers to retrieve comprehensive information about players, their characters, weapons, equipment, and computed statistics.

Features

  • Async Support: Built with asyncio for efficient concurrent requests
  • Complete Data Models: Pydantic-based models for type-safe data handling
  • Player Showcase Data: Fetch player profiles and their character showcases
  • Character Information: Get detailed character data including skills, talents, and stats
  • Equipment & Weapons: Access equipment and weapon information
  • Stat Computation: Calculate final character statistics with modifiers
  • Asset Resolution: Built-in asset resolution with local JSON data
  • Update Checking: Check for and download library updates
  • Session Management: Flexible session handling with context managers

Installation

From PyPI

pip install endfield-py

From GitHub

pip install git+https://github.com/MR-LORD-REX/endfield.git

Manual Installation

git clone https://github.com/MR-LORD-REX/endfield.git
cd endfield
pip install -e .

Requirements

  • Python 3.8+
  • aiohttp >= 3.8.0
  • pydantic >= 2.0.0

Quick Start

Basic Usage

import asyncio
from endfield import Endfield

async def main():
    async with Endfield() as client:
        await client.update_assets()
        showcase = await client.get_showcase(uid=4225399080)
        print(showcase)

asyncio.run(main())

Enable Debug Logging

async with Endfield(debug=True) as client:
    showcase = await client.get_showcase(uid=4225399080)

API Reference

Endfield Client

Constructor

Endfield(
    session: Optional[aiohttp.ClientSession] = None,
    debug: bool = False
)

Parameters:

  • session: Optional external aiohttp session
  • debug: Enable debug logging (default: False)

Methods

get_showcase(uid: int | str)

Fetch complete player showcase data including all characters, equipment, and weapons.

showcase = await client.get_showcase(uid=4225399080)

Returns: ShowcaseData - Complete player showcase information with all characters

get_character_showcase(uid: int | str, index: int = 0)

Fetch detailed data for a specific character in the player's showcase.

char_data = await client.get_character_showcase(uid=4225399080, index=0)

Parameters:

  • uid: Player UID
  • index: Character index (0-based, default: 0)

Returns: CharacterData - Detailed character data including skills, talents, and computed statistics

get_profile(uid: int | str)

Fetch player profile information only.

profile = await client.get_profile(uid=4225399080)

Returns: PlayerProfile - Player account and character list information

check_for_updates()

Check for library updates.

await client.check_for_updates()
close()

Close the client session.

await client.close()

Data Models

The library provides comprehensive Pydantic models for type-safe data handling:

  • ShowcaseData: Complete player showcase information
  • PlayerProfile: Player account information
  • ProfileCharacter: Character showcase data
  • CharacterData: Detailed character information including skills and talents
  • WeaponData: Weapon information and skills
  • EquipData: Equipment data with stat modifiers
  • ComputedStats: Final calculated character statistics

Examples

Fetch Player Profile

async with Endfield() as client:
    showcase = await client.get_showcase(uid="your_uid_here")
    profile = showcase.player_info
    print(f"Player: {profile.player_name}")
    print(f"Level: {profile.level}")

Get Character Information

async with Endfield() as client:
    showcase = await client.get_showcase(uid="your_uid_here")
    for char in showcase.characters:
        print(f"Character: {char.name}")
        print(f"Level: {char.level}")
        print(f"Stats: {char.stats}")

Check Weapon Information

async with Endfield() as client:
    showcase = await client.get_showcase(uid="your_uid_here")
    for char in showcase.characters:
        if char.weapon:
            print(f"{char.name}'s Weapon: {char.weapon.name}")
            print(f"Level: {char.weapon.level}")

get live in game stats

async with Endfield() as ef:
    stats = await ef.get_game_stats(token="your_token_here")
    if stats:
        print(stats.sanity_point.model_dump_json(indent=2))
        print(stats.battle_pass.model_dump_json(indent=2))
        print(stats.daily_points.model_dump_json(indent=2))
        print(stats.weekly_points.model_dump_json(indent=2))
    else:
        print("Failed to fetch game stats.")

Perform daily sign-in rewards collection

async with Endfield() as ef:
    msg = await ef.perform_daily_sign(token="your_token_here")
    print(msg)

Fetch factory blueprints

async with Endfield() as ef:
    blueprints = await ef.get_factory_blueprints(
        region='Asia',
        item='xiranite',
        start=0,
        end=10
    )
    print(blueprints.model_dump_json(indent=2))

How to get the token?

  • Open the skport website (official endfield website) and log in with game account
  • Then go to THIS API endpoint (official internal API) to get the token

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues on the GitHub repository.

Development Setup

git clone https://github.com/MR-LORD-REX/endfield.git
cd endfield
pip install -e .

License

This project is licensed under the MIT License - see the LICENSE.txt file for details.

Disclaimer

This is an unofficial library. Endfield is a trademark of their respective owners. This library is not affiliated with or endorsed by the game developers. Use this library responsibly and in accordance with the Enka Network API terms of service.

Support

For issues, questions, or suggestions, please open an issue on the GitHub repository.

Credits

Changelog

Version 1.1.3

  • game V1.3 asset update
  • Fixed issue where stats were not being computed correctly
  • folder structure changed
  • older versions " before v1.1.1 " will not support auto update anymore, you will have to manually update the library to get the latest assets or just update the library to the latest version
  • added proxies

NOTE

  • Computation of final character stats are done by the currently known formulas, some of them might be inaccurate , feel free to contribute if you encounter any discrepancies or have suggestions for improvement.

Happy Endfielding

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endfield_py-1.1.4.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

endfield_py-1.1.4-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file endfield_py-1.1.4.tar.gz.

File metadata

  • Download URL: endfield_py-1.1.4.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for endfield_py-1.1.4.tar.gz
Algorithm Hash digest
SHA256 37920f309dbab23550c0290864af5513f265464e5d213b6a990e2eb06c0ede58
MD5 3f789f7c2760d3abcd0ffc83233fa7db
BLAKE2b-256 3c717dded8d04b2633f40c6755629c2a88f5a6a941195cb234cdac1fba0d5237

See more details on using hashes here.

File details

Details for the file endfield_py-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: endfield_py-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for endfield_py-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 63076850db78ac514fd1fb36ccd07fa10e550a642356869ba6f02fc07871ce02
MD5 f78fa60cc7f4a61b6de5d2c3258cfce2
BLAKE2b-256 02f3a6599da93ec2f4eb12e70963fabab02369eb07d8610ef4327cb45ef65326

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.0

2 files

This release

1.1.4 This release

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page