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.
Beberapa aturan ketika menggunakan API:
-
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.
-
Dimohon untuk mengatur custom
User-Agent
header ke dalam request-mu agar kami dapat melacaknya dengan lebih baik sehingga dapat membantumu ketika dibutuhkan. -
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.
-
Sebagai catatan, semua request UID mengembalikan field
ttl
. field ini adalah "detik hingga permintaan Showcase selanjutnya akan dibuat untuk UID ini". Hinggattl
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 waktuttl
berdasarkan request, atau cegah request ke UID sampaittl
-nya habis. Kami merekomendasikan Redis untuk kasus ini.
Apabila kamu mengalami kendala selama bekerja dengan data, silakan bergabung ke server Discord untuk bantuan.
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.
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:
- Pengguna memiliki sebuah akun di situs web
- Pengguna menambahkan UID-nya ke profil
- Pengguna memverifikasinya
- Pengguna mengatur visibilitasnya ke "public"
Info lebih lanjut terkait akun pengguna ada di bawah.
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
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".
Mengambil info pengguna.
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.
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/
Nama | Deskripsi |
---|---|
playerInfo | Info Profil |
avatarInfoList | Daftar informasi mendetail untuk semua karakter yang ada di dalam Showcase |
Untuk data dasar dari karakter berdasarkan ID, silakan menuju store/characters.json.
Untuk info tambahan, silakan cek Characters Data.
Nama | Deskripsi |
---|---|
nickname | Nickname pemain |
signature | Signature profil |
worldLevel | World Level pemain |
namecardId | ID namecard profil |
finishAchievementNum | Jumlah achievement yang diselesaikan |
towerFloorIndex | Abyss Floor |
towerLevelIndex | Abyss Floor's Chamber |
showAvatarInfoList | Daftar ID karakter dan levelnya |
showNameCardIdList | Daftar ID namecard |
profilePicture.avatarId | ID karakter dari Profile Picture |
Nama | Deskripsi |
---|---|
avatarId | ID karakter |
level | Level karakter |
costumeId | ID dari skin yang dimiliki karakter. Cek "Costumes" di store/characters.json |
Untuk data dasar dari karakter berdasarkan ID, silakan menuju store/characters.json.
Untuk info tambahan, silakan cek Characters Data.
Nama | Deskripsi |
---|---|
avatarID | ID karakter |
talentIdList | Daftar ID konstelasi Tidak akan ada data jika konstelasi bernilai 0 (C0) |
propMap | Daftar properti info karakter |
fightPropMap -> {id: value} |
Pemetaan dari properti Character's Combat. Cek Definisi untuk setiap ID |
skillDepotId | ID dari Skill Set milik karakter Skills Data -> "id" |
inherentProudSkillList | Daftar ID skill yang telah terbuka Skills Data -> "inherentProudSkillOpens" |
skillLevelMap -> {skill_id: level} |
Pemetaan dari level skill Skills Data -> "inherentProudSkillOpens" |
equipList | Daftar Equipment: Senjata, Artefak |
fetterInfo.expLevel | Friendship Level milik karakter |
Nama | Deskripsi |
---|---|
type | ID dari Property Type, Cek Definisi untuk setiap ID |
ival | Abaikan ini |
val | Value dari Property |
Nama | Deskripsi |
---|---|
itemId | ID equipment Artifacts Data -> "id" Weapons Data -> "id" |
weapon [Weapon Only] |
Info dasar senjata |
reliquary [Artifact Only] |
Info dasar artefak |
flat | Info lengkap equipment |
Untuk info tambahan terkait senjata, cek Weapons Data
Nama | Deskripsi |
---|---|
level | Level senjata |
promoteLevel | Level ascension senjata |
affixMap | Level refinement senjata [0-4] |
Untuk info tambahan terkait artefak, cek Artifacts Data
Nama | Deskripsi |
---|---|
level | Level artefak [1-21] |
mainPropId | ID Main Stat artefak MainProps Data |
appendPropIdList | Daftar ID subtat artefak AppendProp Data |
Nama | Deskripsi |
---|---|
nameTextHashMap | Hash untuk nama equipment Cek Localizations |
setNameTextHashMap [Artifact Only] |
Hash untuk nama set artefak Cek Localizations |
rankLevel | Level 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 |
itemType | Tipe Equipment: Senjata atau Artefak |
icon | Nama ikon equipment Icon name usage |
equipType [Artifact Only] |
Tipe artefak |
Nama | Deskripsi |
---|---|
mainPropId / appendPropID | Nama Equipment Append Property. Cek Definisi untuk setiap nama |
propValue | Nilai properti |
Tipe | Deskripsi |
---|---|
1001 | XP |
1002 | Ascension |
4001 | Level |
Tipe | Deskripsi |
---|---|
1 | Base HP |
2 | HP |
3 | HP% |
4 | Base ATK |
5 | ATK |
6 | ATK% |
7 | Base DEF |
8 | DEF |
9 | DEF% |
10 | Base SPD |
11 | SPD% |
20 | CRIT Rate |
22 | CRIT DMG |
23 | Energy Recharge |
26 | Healing Bonus |
27 | Incoming Healing Bonus |
28 | Elemental Mastery |
29 | Physical RES |
30 | Physical DMG Bonus |
40 | Pyro DMG Bonus |
41 | Electro DMG Bonus |
42 | Hydro DMG Bonus |
43 | Dendro DMG Bonus |
44 | Anemo DMG Bonus |
45 | Geo DMG Bonus |
46 | Cryo DMG Bonus |
50 | Pyro RES |
51 | Electro RES |
52 | Hydro RES |
53 | Dendro RES |
54 | Anemo RES |
55 | Geo RES |
56 | Cryo RES |
70 | Pyro Enegry Cost |
71 | Electro Energy Cost |
72 | Hydro Energy Cost |
73 | Dendro Energy Cost |
74 | Anemo Energy Cost |
75 | Cryo Energy Cost |
76 | Geo Energy Cost |
80 | Cooldown reduction |
81 | Shield Strength |
1000 | Current Pyro Energy |
1001 | Current Electro Energy |
1002 | Current Hydro Energy |
1003 | Current Dendro Energy |
1004 | Current Anemo Energy |
1005 | Current Cryo Energy |
1006 | Current Geo Energy |
1010 | Current HP |
2000 | Max HP |
2001 | ATK |
2002 | DEF |
2003 | SPD |
3025 | Elemental reaction CRIT Rate |
3026 | Elemental reaction CRIT DMG |
3027 | Elemental reaction (Overloaded) CRIT Rate |
3028 | Elemental reaction (Overloaded) CRIT DMG |
3029 | Elemental reaction (Swirl) CRIT Rate |
3030 | Elemental reaction (Swirl) CRIT DMG |
3031 | Elemental reaction (Electro-Charged) CRIT Rate |
3032 | Elemental reaction (Electro-Charged) CRIT DMG |
3033 | Elemental reaction (Superconduct) CRIT Rate |
3034 | Elemental reaction (Superconduct) CRIT DMG |
3035 | Elemental reaction (Burn) CRIT Rate |
3036 | Elemental reaction (Burn) CRIT DMG |
3037 | Elemental reaction (Frozen (Shattered)) CRIT Rate |
3038 | Elemental reaction (Frozen (Shattered)) CRIT DMG |
3039 | Elemental reaction (Bloom) CRIT Rate |
3040 | Elemental reaction (Bloom) CRIT DMG |
3041 | Elemental reaction (Burgeon) CRIT Rate |
3042 | Elemental reaction (Burgeon) CRIT DMG |
3043 | Elemental reaction (Hyperbloom) CRIT Rate |
3044 | Elemental reaction (Hyperbloom) CRIT DMG |
3045 | Base Elemental reaction CRIT Rate |
3046 | Base Elemental reaction CRIT DMG |
Nama | Deskripsi |
---|---|
ITEM_WEAPON | Senjata |
ITEM_RELIQUARY | Artefak |
Nama | Deskripsi |
---|---|
EQUIP_BRACER | Flower |
EQUIP_NECKLACE | Feather |
EQUIP_SHOES | Sands |
EQUIP_RING | Goblet |
EQUIP_DRESS | Circlet |
Nama | Deskripsi |
---|---|
FIGHT_PROP_BASE_ATTACK [Weapon] |
Base ATK |
FIGHT_PROP_HP | Flat HP |
FIGHT_PROP_ATTACK | Flat ATK |
FIGHT_PROP_DEFENSE | Flat DEF |
FIGHT_PROP_HP_PERCENT | HP% |
FIGHT_PROP_ATTACK_PERCENT | ATK% |
FIGHT_PROP_DEFENSE_PERCENT | DEF% |
FIGHT_PROP_CRITICAL | Crit RATE |
FIGHT_PROP_CRITICAL_HURT | Crit DMG |
FIGHT_PROP_CHARGE_EFFICIENCY | Energy Recharge |
FIGHT_PROP_HEAL_ADD | Healing Bonus |
FIGHT_PROP_ELEMENT_MASTERY | Elemental Mastery |
FIGHT_PROP_PHYSICAL_ADD_HURT | Physical DMG Bonus |
FIGHT_PROP_FIRE_ADD_HURT | Pyro DMG Bonus |
FIGHT_PROP_ELEC_ADD_HURT | Electro DMG Bonus |
FIGHT_PROP_WATER_ADD_HURT | Hydro DMG Bonus |
FIGHT_PROP_WIND_ADD_HURT | Anemo DMG Bonus |
FIGHT_PROP_ICE_ADD_HURT | Cryo DMG Bonus |
FIGHT_PROP_ROCK_ADD_HURT | Geo DMG Bonus |
FIGHT_PROP_GRASS_ADD_HURT | Dendro DMG Bonus |
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.
Pergi ke flat dan cari icon
.
Pergi ke store/characters.json dan cari apapun yang terkait dengan "UI_XXXXXX" atau "Skill_XXXXXX" berdasarkan ID karakter.
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.
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