Enka.Network - API

July 30, 2025 ยท View on GitHub

Daftar Isi

Memulai

Kamu bisa memanfaatkan beberapa wrapper yang sudah dibuat oleh orang lain, atau menggunakan API langsung. Ini sangat sederhana, jadi tidak perlu membuat sendiri logika pengolahan data berdasarkan responsnya. Tantangan terbesarnya adalah saat menavigasi data game yang ditambang (mining) lalu menggabungkannya dengan data yang dikembalikan.

Cek Wrappers untuk bahasa pemrograman pilihanmu.

Sebelum Kamu Melakukan Request

Beberapa aturan ketika menggunakan API:

  1. Diharapkan untuk tidak mengenumerasi UID atau mencoba melakukan query besar-besaran dengan tujuan untuk mengisi database. Ada ratusan juta UID dan kamu tentu tidak akan bisa melakukannya dengan API ini. Kami dapat memberikan data batch di kemudian hari.

  2. Dimohon untuk mengatur custom User-Agent header ke dalam request-mu agar kami dapat melacaknya dengan lebih baik sehingga dapat membantumu ketika dibutuhkan.

  3. Ada rate-limit pada endpoint UID. Kalau kamu melakukan request terlalu cepat, maka waktu respons akan mulai melambat dan langsung mendapat kode error 429. Maka solusinya antara kamu mulai melakukan request dengan lebih pelan atau hubungi developer untuk melihat apakah memungkinkan bagimu untuk mendapat peningkatan rate-limit. Dalam kebanyakan kasus ini tidak dibutuhkan dan hanya menghasilkan kode yang tidak teroptimasi.

  4. Sebagai catatan, semua request UID mengembalikan field ttl. field ini adalah "detik hingga permintaan Showcase selanjutnya akan dibuat untuk UID ini". Hingga ttl habis, endpoint akan mengembalikan data cache, tapi kamu masih bisa menggunakan rate-limit-mu jika kamu berulang kali melakukan hit ke endpoint-nya. Cobalah untuk menyimpan data pada cache dengan batas waktu ttl berdasarkan request, atau cegah request ke UID sampai ttl-nya habis. Kami merekomendasikan Redis untuk kasus ini.

Apabila kamu mengalami kendala selama bekerja dengan data, silakan bergabung ke server Discord untuk bantuan.

Daftar API

Endpoint UID

Mengambil data Showcase beserta semua info player

https://enka.network/api/uid/618285856/

Responsnya akan mengandung playerInfo dan avatarInfoList. playerInfo adalah data dasar tekait akun game. Jika avatarInfoList tidak ditemukan, itu artinya Showcase dari akun ini antara ditutup atau tidak ada karakter game yang mengisi Showcase tersebut.

Hanya mengambil info player

https://enka.network/api/uid/618285856/?info

Dengan melampirkan ?info ke request, kamu sedang sedang meminta data playerInfo saja. Request utama selalu mencoba untuk mengambil avatarInfoList juga; Jika kamu hanya butuh playerInfo saja, mohon untuk menggunakan endpoint ini karena akan lebih cepat untuk mendapatkan keseluruhan data tersebut.

Sebagai tambahan, kedua respons akan mengandung sebuah objek owner jika:

  1. Pengguna memiliki sebuah akun di situs web
  2. Pengguna menambahkan UID-nya ke profil
  3. Pengguna memverifikasinya
  4. Pengguna mengatur visibilitasnya ke "public"

Info lebih lanjut terkait akun pengguna ada di bawah.

Kode respons HTTP

Mohon pastikan untuk menanganinya dengan benar di dalam aplikasimu.

400 = Kesalahan format UID
404 = Pemain tidak ditemukan (Server MiHoYo yang mengatakannya)
424 = Game maintenance / ada kendala setelah pembaruan game
429 = Terkena Rate-limit (antara dari server EnkaNetwork atau dari server MiHoYo-nya)
500 = EnkaNetwork mengalami server error
503 = EnkaNetwork sedang mengalami kendala

Endpoint Profil

Dimungkinkan untuk membuat akun (profil) di situs web dan melampirkan beberapa akun game ke dalamnya. Pengguna kemudian diminta untuk memverifikasi bahwa akun tersebut adalah milik mereka melalui kode verifikasi yang ditempatkan di signature mereka. Dengan cara ini kami dapat memastikan bahwa akun tersebut milik mereka.

Pengguna dapat melakukan "snapshot" build dengan nama khusus, yang disebut sebagai "saved build".

https://enka.network/api/profile/Algoinde/

Mengambil info pengguna.

https://enka.network/api/profile/Algoinde/hoyos/

Mengambil daftar "hoyos" alias akun genshin dan metadata-nya. Ini hanya mengembalikan akun yang terverifikasi dan bersifat public (pengguna dapat menyembunyikan akunnya; akun yang tidak terverifikasi sudah disembunyikan secara default). Setiap key di dalam respons adalah sebuah identifier unik dari MiHoYo yang perlu kamu gunakan untuk request berikutnya guna benar-benar mendapatkan informasi karakter/build.

https://enka.network/api/profile/Algoinde/hoyos/4Wjv2e/

Mengembalikan metadata untuk satu akun game.

https://enka.network/api/profile/Algoinde/hoyos/4Wjv2e/builds/

Mengembalikan build tersimpan untuk akun game. Ini adalah array objek, dimana key-nya adalah avatarId dari karakter dan objek di dalam array adalah beberapa build yang berbeda-beda untuk tiap-tiap karakter. Array ini tidak memiliki urutan tertentu (tapi memiliki sebuah field order yang perlu kamu urutkan ketika ingin menampilkan isi array).

Apabila sebuah build memiliki sebuah field live: true, itu artinya build tersebut bukanlah sebuah "saved build", tetapi merupakan sebuah build yang di-fetch dari Showcase ketika pengguna menekan "refresh". Ketika sudah di-refresh, semua build live yang lama akan hilang dan akan dibuatkan yang baru. Hanya penggunalah yang dapat memutuskan kapan harus melakukan refresh ini. Data ini TIDAK akan menjadi up-to-date.

Sebagaimana telah diuraikan di Endpoint UID, ketika membuat sebuah request UID, kamu bisa mendapatkan sebuah objek owner. Kamu bisa membangun URL-nya dengan menggunakan field berikut di dalam objeknya:

https://enka.network/api/profile/{owner.username}/hoyos/{owner.hash}/builds/

Info Struktur Data

NamaDeskripsi
playerInfoInfo Profil
avatarInfoListDaftar informasi mendetail untuk semua karakter yang ada di dalam Showcase

playerInfo

Untuk data dasar dari karakter berdasarkan ID, silakan menuju store/characters.json.
Untuk info tambahan, silakan cek Characters Data.

NamaDeskripsi
nicknameNickname pemain
signatureSignature profil
worldLevelWorld Level pemain
namecardIdID namecard profil
finishAchievementNumJumlah achievement yang diselesaikan
towerFloorIndexAbyss Floor
towerLevelIndexAbyss Floor's Chamber
showAvatarInfoListDaftar ID karakter dan levelnya
showNameCardIdListDaftar ID namecard
profilePicture.avatarIdID karakter dari Profile Picture

showAvatarInfoList

NamaDeskripsi
avatarIdID karakter
levelLevel karakter
costumeIdID dari skin yang dimiliki karakter. Cek "Costumes" di store/characters.json

avatarInfoList

Untuk data dasar dari karakter berdasarkan ID, silakan menuju store/characters.json.
Untuk info tambahan, silakan cek Characters Data.

NamaDeskripsi
avatarIDID karakter
talentIdListDaftar ID konstelasi
Tidak akan ada data jika konstelasi bernilai 0 (C0)
propMapDaftar properti info karakter
fightPropMap -> {id: value}Pemetaan dari properti Character's Combat.
Cek Definisi untuk setiap ID
skillDepotIdID dari Skill Set milik karakter
Skills Data -> "id"
inherentProudSkillListDaftar ID skill yang telah terbuka
Skills Data -> "inherentProudSkillOpens"
skillLevelMap -> {skill_id: level}Pemetaan dari level skill
Skills Data -> "inherentProudSkillOpens"
equipListDaftar Equipment: Senjata, Artefak
fetterInfo.expLevelFriendship Level milik karakter

propMap

NamaDeskripsi
typeID dari Property Type, Cek Definisi untuk setiap ID
ivalAbaikan ini
valValue dari Property

equipList

NamaDeskripsi
itemIdID equipment
Artifacts Data -> "id"
Weapons Data -> "id"
weapon [Weapon Only]Info dasar senjata
reliquary [Artifact Only]Info dasar artefak
flatInfo lengkap equipment

weapon

Untuk info tambahan terkait senjata, cek Weapons Data

NamaDeskripsi
levelLevel senjata
promoteLevelLevel ascension senjata
affixMapLevel refinement senjata [0-4]

reliquary

Untuk info tambahan terkait artefak, cek Artifacts Data

NamaDeskripsi
levelLevel artefak [1-21]
mainPropIdID Main Stat artefak
MainProps Data
appendPropIdListDaftar ID subtat artefak
AppendProp Data

flat

NamaDeskripsi
nameTextHashMapHash untuk nama equipment
Cek Localizations
setNameTextHashMap [Artifact Only]Hash untuk nama set artefak
Cek Localizations
rankLevelLevel rarity dari sebuah equipment
reliquaryMainstat [Artifact Only]Artifact Main Stat
reliquarySubstats [Artifact Only]Daftar Artifact Substats
weaponStats [Weapon Only]Daftar Weapon Stat: Base ATK, Substat
itemTypeTipe Equipment: Senjata atau Artefak
iconNama ikon equipment
Icon name usage
equipType [Artifact Only]Tipe artefak

reliquaryMainstat, reliquarySubstats, weaponStats

NamaDeskripsi
mainPropId / appendPropIDNama Equipment Append Property. Cek Definisi untuk setiap nama
propValueNilai properti

Definisi

Prop

TipeDeskripsi
1001XP
1002Ascension
4001Level

FightProp

TipeDeskripsi
1Base HP
2HP
3HP%
4Base ATK
5ATK
6ATK%
7Base DEF
8DEF
9DEF%
10Base SPD
11SPD%
20CRIT Rate
22CRIT DMG
23Energy Recharge
26Healing Bonus
27Incoming Healing Bonus
28Elemental Mastery
29Physical RES
30Physical DMG Bonus
40Pyro DMG Bonus
41Electro DMG Bonus
42Hydro DMG Bonus
43Dendro DMG Bonus
44Anemo DMG Bonus
45Geo DMG Bonus
46Cryo DMG Bonus
50Pyro RES
51Electro RES
52Hydro RES
53Dendro RES
54Anemo RES
55Geo RES
56Cryo RES
70Pyro Enegry Cost
71Electro Energy Cost
72Hydro Energy Cost
73Dendro Energy Cost
74Anemo Energy Cost
75Cryo Energy Cost
76Geo Energy Cost
80Cooldown reduction
81Shield Strength
1000Current Pyro Energy
1001Current Electro Energy
1002Current Hydro Energy
1003Current Dendro Energy
1004Current Anemo Energy
1005Current Cryo Energy
1006Current Geo Energy
1010Current HP
2000Max HP
2001ATK
2002DEF
2003SPD
3025Elemental reaction CRIT Rate
3026Elemental reaction CRIT DMG
3027Elemental reaction (Overloaded) CRIT Rate
3028Elemental reaction (Overloaded) CRIT DMG
3029Elemental reaction (Swirl) CRIT Rate
3030Elemental reaction (Swirl) CRIT DMG
3031Elemental reaction (Electro-Charged) CRIT Rate
3032Elemental reaction (Electro-Charged) CRIT DMG
3033Elemental reaction (Superconduct) CRIT Rate
3034Elemental reaction (Superconduct) CRIT DMG
3035Elemental reaction (Burn) CRIT Rate
3036Elemental reaction (Burn) CRIT DMG
3037Elemental reaction (Frozen (Shattered)) CRIT Rate
3038Elemental reaction (Frozen (Shattered)) CRIT DMG
3039Elemental reaction (Bloom) CRIT Rate
3040Elemental reaction (Bloom) CRIT DMG
3041Elemental reaction (Burgeon) CRIT Rate
3042Elemental reaction (Burgeon) CRIT DMG
3043Elemental reaction (Hyperbloom) CRIT Rate
3044Elemental reaction (Hyperbloom) CRIT DMG
3045Base Elemental reaction CRIT Rate
3046Base Elemental reaction CRIT DMG

ItemType

NamaDeskripsi
ITEM_WEAPONSenjata
ITEM_RELIQUARYArtefak

EquipType

NamaDeskripsi
EQUIP_BRACERFlower
EQUIP_NECKLACEFeather
EQUIP_SHOESSands
EQUIP_RINGGoblet
EQUIP_DRESSCirclet

AppendProp

NamaDeskripsi
FIGHT_PROP_BASE_ATTACK [Weapon]Base ATK
FIGHT_PROP_HPFlat HP
FIGHT_PROP_ATTACKFlat ATK
FIGHT_PROP_DEFENSEFlat DEF
FIGHT_PROP_HP_PERCENTHP%
FIGHT_PROP_ATTACK_PERCENTATK%
FIGHT_PROP_DEFENSE_PERCENTDEF%
FIGHT_PROP_CRITICALCrit RATE
FIGHT_PROP_CRITICAL_HURTCrit DMG
FIGHT_PROP_CHARGE_EFFICIENCYEnergy Recharge
FIGHT_PROP_HEAL_ADDHealing Bonus
FIGHT_PROP_ELEMENT_MASTERYElemental Mastery
FIGHT_PROP_PHYSICAL_ADD_HURTPhysical DMG Bonus
FIGHT_PROP_FIRE_ADD_HURTPyro DMG Bonus
FIGHT_PROP_ELEC_ADD_HURTElectro DMG Bonus
FIGHT_PROP_WATER_ADD_HURTHydro DMG Bonus
FIGHT_PROP_WIND_ADD_HURTAnemo DMG Bonus
FIGHT_PROP_ICE_ADD_HURTCryo DMG Bonus
FIGHT_PROP_ROCK_ADD_HURTGeo DMG Bonus
FIGHT_PROP_GRASS_ADD_HURTDendro DMG Bonus

Ikon dan Gambar

Kamu bisa memperoleh ikon karakter, senjata, dan artefak melalui Enka lewat URL https://enka.network/ui/[icon_name].png.
Biasanya nama ikon dimulai dengan "UI_" atau "Skill_" untuk talent karakter.
Sebagai contoh https://enka.network/ui/UI_AvatarIcon_Side_Ambor.png.

Senjata dan Artefak

Pergi ke flat dan cari icon.

Karakter, Talent, dan Konstelasi

Pergi ke store/characters.json dan cari apapun yang terkait dengan "UI_XXXXXX" atau "Skill_XXXXXX" berdasarkan ID karakter.

Localizations

Kamu mungkin sadar "NameTextMapHash" di store/characters.json, "nameTextHashMap" dan "setNameTextHashMap" di flat bisa juga digunakan sebagai key untuk mendapatkan data localization dasar milik karakter, senjata, dan artefak dari store/loc.json.
Kamu juga bisa mendapatkan data localization milik AppendProp dengan menggunakan nama properti sebagai key seperti "FIGHT_PROP_HP", "FIGHT_PROP_HEAL_ADD" dan lain-lain.

Untuk info tambahan tentang nama-nama, deskripsi, dan lain-lain, silakan cek TextMap Data. Data ini hanya mencakup bahasa yang didukung oleh game.

Wrappers

TS/JS - https://www.npmjs.com/package/enkanetwork.js - Jelosus1

TS/JS - https://github.com/yuko1101/enka-network-api - yuko1101

Rust - https://github.com/eratou/enkanetwork-rs - eratou

Python - https://github.com/mrwan200/enkanetwork.py - mrwan200

Python - https://github.com/seriaati/enka-py - seriaati

Java - https://github.com/kazuryyx/EnkaNetworkAPI - kazury

C# - https://github.com/aliafuji/EnkaDotnet - aliafuji

C# - https://github.com/Carried520/EnkaSharp - Carried520

Go - https://github.com/kirinyoku/enkanetwork-go - kirinyoku