Enka Network Python

July 13, 2023 · View on GitHub

EN | TH | JA

Library for API wrapper data from site https://enka.network/

🏓 Table of content

Installation

pip install enkanetwork.py

Usage

import asyncio

from enkanetwork import EnkaNetworkAPI

client = EnkaNetworkAPI()

async def main():
    async with client:
        data = await client.fetch_user(843715177)
        print("=== Player Info ===")
        print(f"Nickname: {data.player.nickname}")
        print(f"Level: {data.player.level}")
        print(f"Icon: {data.player.avatar.icon.url}")
        print(f"Signature: {data.player.signature}")
        print(f"Achievement: {data.player.achievement}")
        print(f"Abyss floor: {data.player.abyss_floor} - {data.player.abyss_room}")
        print(f"Cache timeout: {data.ttl}")

asyncio.run(main())

Preview

=== Player Info ===
Nickname: mrwan2546
Level: 55
Icon: https://enka.network/ui/UI_AvatarIcon_Kazuha.png
Signature: K A Z U H A M U C H <3
Achievement: 396
Abyss floor: 8 - 3
Cache timeout: 300

Example

Please refer in example folder.

Class Methods

NameDescription
fetch_user(uid)Fetch user data (UID) (Will be depercated soon)
fetch_user_by_uid(uid)Fetch user data (UID)
fetch_user_by_username(profile_id)Fetch user data (Profile ID) (For subscriptions in Enka.Network)
fetch_hoyos_by_username(profile_id)Fetch user hoyo(s) data (Profile ID) (For subscriptions in Enka.Network)
fetch_builds(profile_id, metaname)Fetch build data (Profile ID) (For subscriptions in Enka.Network)
set_language(lang)Set new language
Please refer Languages Supported
update_assets()Update new assets from repo Enkanetwork.py Data

Return data

UID

Return type: EnkaNetworkResponse

WrapperAPINotes
playerplayerInfoPlease refer Player
charactersavatarInfoListPlease refer Characters
profile-Please refer Profile Info
ownerownerPlease refer Player Owner
ttlttl
uiduid

Profile

Return type: EnkaNetworkProfileResponse

WrapperAPINotes
usernameplayerInfoPlease refer Player
profileprofilePlease refer in Profile patreon
hoyoshoyosPlease refer Profile hoyos

Structure

Player owner

WrapperAPINotes
hashhash
usernameusernamePlease refer Tier
profileprofilePlease refer in Profile patreon
builds-Please refer Build(s) info

Profile Patreon

WrapperAPINotes
biobio
levellevelPlease refer Tier
profileworldLevel
signup_statesignup_state
image_urlimage_url

Profile Hoyos

WrapperAPINotes
uid_publicuid_public
publicpublic
verifiedverified
player_infoplayer_infoPlease refer Profile Patreon
signup_statesignup_state
signup_statesignup_state

Avatar build(s) info

WrapperAPINotes
idid
namename
avatar_idavatar_id
avatar_dataavatar_dataPlease refer Characters
orderorder
livelive
settingssettings
publicpublic

Profile Info

WrapperAPINotes
uid-UID in-game
url-URL to enter Enka.Network site
path-Path URL

Player

WrapperAPINotes
nicknamenicknamePlease refer Namecard
signaturesignature
world_levelworldLevel
achievementfinishAchievementNum
namecardnamecardId
namecardsshowNameCardIdList -> idPlease refer Namecard
abyss_floortowerFloorIndex
abyss_roomtowerLevelIndex
characters_previewshowAvatarInfoListPlease refer Character Preview
avatarprofilePicturePlease refer Avatar Icon

Avatar icon

WrapperAPINotes
idavatarId
iconPlease refer Icon Data

Namecard

WrapperAPINotes
id-Namecard ID
name-Namecard name
icon-Namecard icon, Please refer Icon Data
banner-Namecard banner, Please refer Icon Data
navbar-Namecard navbar (Alpha), Please refer Icon Data

Character preview

WrapperAPINotes
id-Avatar ID
name-Avatar Name
level-Avatar Level
icon-Avatar Icon, Please refer Icon Data

Characters

WrapperAPINotes
idavatarId
name-Avatar Name
element-Please refer Element Type
rarity-Rarity
image-Please refer Icon
xppropMap -> 1001
ascensionpropMap -> 1002
levelpropMap -> 4001
max_level-Avatar max level (Like 50/60)
friendship_levelfetterInfo.level
equipmentsequipListPlease refer Equipments
statsfightPropMapPlease refer FIGHT_PROP Data
constellationstalentIdListPlease refer Constellation
constellations_unlocked-Constellation unlocked
skill_datainherentProudSkillList
skill_idskillDepotId
skills-Please refer Skill

Icon

WrapperAPINotes
icon-Avatar icon, Please refer Icon Data
side-Avatar side icon, Please refer Icon Data
banner-Avatar wish banner, Please refer Icon Data

Constellation

WrapperAPINotes
id-Constellation ID
name-Constellation Name
icon-Constellation Icon (URL)
unlocked-Constellation has unlocked

Skill

WrapperAPINotes
id-Skill ID
name-Skill Name
icon-Skill Icon (URL)
level-Skill Level
is_boosted-Skill level has boosted

Equipments (Artifact, Weapon)

WrapperAPINotes
iditemId
levelreliquary -> level, weapon -> level
type-Type of equipment (Artifact or Weapon)
refinementweapon -> affixMap
ascensionweapon -> promoteLevel
detailflatPlease refer Equipments Info

Equipments Info

WrapperAPINotes
name-Equipment Name (Artifact name or Weapon name)
iconiconPlease refer Icon Data
artifact_type-Please refer Artifact Type
rarityrankLevel
mainstatsreliquaryMainstat, weaponStats -> 0Please refer Equipments Stats
substatsreliquarySubstats, weaponStats -> 1Please refer Equipments Stats

Equipments Stats

WrapperAPINotes
prop_idprop_id
type-Value type (NUMBER or PERCENT)
name-Name of FIGHT_PROP
valuevalue

FIGHT_PROP Data

In FIGHT_PROP data. You can get the value from 4 methods.

ChoiceExampleOutput
Get raw valuestats.FIGHT_PROP_HP.value15552.306640625
Get rounded valuestats.FIGHT_PROP_ATTACK.to_rounded()344
Get percentagestats.FIGHT_PROP_FIRE_ADD_HURT.to_percentage()61.5
Get percentage and symbolstats.FIGHT_PROP_FIRE_ADD_HURT.to_percentage_symbol()61.5%

Build

In this Builds It's not pretty data. You can use this method to get data. Or if you want get full, You can use raw argument

ChoiceExampleOutput
Get avatar ID listbuilds.get_avatar_list()[10000021,10000037,10000025, ...]
Get character buildbuilds.get_character(10000021)List of Build info
Get build info by avatar idbuilds.get_character(10000021, 11111111)Build info

Icon Data

In icon data. You can get the value from 2 methods.

ChoiceExampleOutput
Get filenameicon.filenameUI_AvatarIcon_Kazuha_Card.png
Get URLicon.urlhttps://enka.network/ui/UI_AvatarIcon_Kazuha_Card.png

Artifact Type

KeyValue
FlowerEQUIP_BRACER
FeatherEQUIP_NECKLACE
SandsEQUIP_SHOES
GobletEQUIP_RING
CircletEQUIP_DRESS

Element Type

KeyValue
CryoIce
HydroWater
AnemoWind
PyroFire
GeoRock
ElectroElectric

Assets

Assets character, constellations, skills, namecards

You can use avatarId to get the character, constellations, skills, namecards from assets.

import asyncio

from enkanetwork import Assets

assets = Assets()

async def main():
    # Character
    assets.character(10000046)
    # Constellations
    assets.constellations(2081199193)
    # Skills
    assets.constellations(10462)
    # Namecards
    assets.namecards(210059)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Assets NameTextMapHash

The NameTextMapHash is a hash map that contains the name text of the assets. You can get NameTextMapHash from hash_id like this:

import asyncio

from enkanetwork import Assets

assets = Assets(lang="en") # Set languege before get name (Ex. English)

async def main():
    print(assets.get_hash_map(1940919994)) # Hu tao
    # OR you can get FIGHT_PROP name
    print(assets.get_hash_map("FIGHT_PROP_BASE_ATTACK")) # Base ATK

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Languages Supported

LanguegeCode
Englishen
русскийru
Tiếng Việtvi
ไทยth
portuguêspt
한국어kr
日本語jp
中文zh
Indonesianid
françaisfr
españoles
deutschde
Taiwancht
Chinesechs

If you want full docs for the API, visit EnkaNetwork API Docs

Support & Question

If you need support or some question about EnkaNetwokt.py. You can feel free contact to me in Enka.network discord server in 𝖯𝖸┃enkanetwork․py channel and mention (Ping) to @M-307 for support and help

LICENSE

MIT License

Keqing

Picture by KKOMDASTRO