wow-api-encounters

Encounters API (Retail — Patch 12.0.0)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wow-api-encounters" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-encounters

Encounters API (Retail — Patch 12.0.0)

Comprehensive reference for encounter journal, mythic+, instances, scenarios, raid locks, and seasons.

Source: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API Current as of: Patch 12.0.0 (Build 65655) — January 28, 2026 Scope: Retail only.

Scope

  • Encounter Journal — Boss database, loot tables, abilities

  • C_ChallengeMode — M+ keystones, affixes, timers

  • C_MythicPlus — Weekly M+ runs, rating, seasonal

  • ScenarioInfo — Scenarios, delves, stages

  • InstanceLeaverInfo — Deserter/leaver info

  • Raid Locks — Saved instance lockouts

  • C_SeasonInfo — Seasonal content

Encounter Journal

Instance Navigation

Function Returns Description

EJ_GetNumTiers()

numTiers

Number of expansion tiers

EJ_GetTierInfo(tierIndex)

name, link

Tier name and link

EJ_SelectTier(tierIndex)

— Select expansion tier

EJ_GetCurrentTier()

tierIndex

Current selected tier

EJ_GetInstanceByIndex(index, isRaid)

instanceID, name, description, bgImage, buttonImage1, loreImage, buttonImage2, dungeonAreaMapID, link, shouldDisplayDifficulty

Instance at index

EJ_GetNumInstances()

— Not a function; iterate EJ_GetInstanceByIndex until nil

EJ_SelectInstance(instanceID)

— Select instance

EJ_GetInstanceInfo(instanceID)

name, description, bgImage, ...

Instance info

EJ_InstanceIsRaid()

isRaid

Selected is raid?

Encounter (Boss) Data

Function Returns Description

EJ_GetEncounterInfoByIndex(index)

name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, instanceID

Boss at index

EJ_GetEncounterInfo(encounterID)

name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, instanceID

Boss info

EJ_SelectEncounter(encounterID)

— Select encounter

EJ_GetNumEncountersForLootByIndex(index)

numEncounters

Bosses with loot

EJ_GetCreatureInfo(index, encounterID)

id, name, description, displayInfo, iconImage, ...

Creature info

Section (Ability) Data

Function Returns Description

EJ_GetSectionInfo(sectionID)

info

Section/ability info

EJ_GetNumSectionsForEncounter(encounterID)

numSections

Number of sections

Section Info Fields

  • title — Section title

  • description — Section text

  • headerType — Header type enum

  • abilityIcon — Icon texture

  • creatureDisplayID — Display ID

  • siblingSectionID — Next sibling

  • firstChildSectionID — First child

  • filteredByDifficulty — Hidden by difficulty filter?

  • link — Journal link

  • startsOpen — Default expanded?

Loot

Function Returns Description

EJ_GetLootInfoByIndex(index)

name, icon, slotFilter, armorType, itemID, link, encounterID

Loot at index

EJ_GetNumLoot()

numLoot

Number of loot items

EJ_SetLootFilter(classID, specID)

— Filter by class/spec

EJ_GetLootFilter()

classID, specID

Current filter

EJ_SetSlotFilter(slotFilter)

— Filter by slot

EJ_GetSlotFilter()

slotFilter

Current slot filter

EJ_ResetLootFilter()

— Clear all filters

EJ_IsLootListOutOfDate()

isOutOfDate

Needs refresh?

Difficulty

Function Returns Description

EJ_SetDifficulty(difficultyID)

— Set EJ difficulty

EJ_GetDifficulty()

difficultyID

Current EJ difficulty

EJ_GetNumEncountersByDifficulty(difficultyID)

numEncounters

Bosses at difficulty

Search

Function Returns Description

EJ_SetSearch(text)

— Set search text

EJ_GetSearchResult(index)

resultInfo

Search result

EJ_GetNumSearchResults()

numResults

Num results

EJ_IsSearchFinished()

isFinished

Search done?

EJ_ClearSearch()

— Clear search

C_ChallengeMode — Mythic+ Keystones

Keystone Info

Function Returns Description

C_ChallengeMode.GetActiveKeystoneInfo()

activeKeystoneLevel, activeAffixIDs, wasActiveKeystoneCharged

Active keystone

C_ChallengeMode.GetActiveChallengeMapID()

mapID

Active M+ map

C_ChallengeMode.GetActiveKeystoneLink()

link

Keystone hyperlink

C_ChallengeMode.GetSlottedKeystoneInfo()

mapID, affixIDs, keystoneLevel

Slotted keystone

C_ChallengeMode.HasSlottedKeystone()

hasKeystone

Keystone slotted?

C_ChallengeMode.SlotKeystone()

slotted

Slot keystone

C_ChallengeMode.RemoveKeystone()

removed

Remove keystone

Map & Affix Data

Function Returns Description

C_ChallengeMode.GetMapTable()

mapIDs

All M+ maps

C_ChallengeMode.GetMapUIInfo(mapID)

name, id, timeLimit, texture, backgroundTexture

Map info

C_ChallengeMode.GetAffixInfo(affixID)

name, description, filedataid

Affix info

C_ChallengeMode.GetCurrentAffixes()

affixes

This week's affixes

Completion & Records

Function Returns Description

C_ChallengeMode.GetMapPlayerStats(mapID)

durationSec, ...

Personal best

C_ChallengeMode.GetGuildLeaders()

guildLeaders

Guild best runs

C_ChallengeMode.GetCompletionInfo()

mapID, level, time, onTime, keystoneUpgradeLevels, practiceRun, oldOverallDungeonScore, newOverallDungeonScore, IsMapRecord, IsAffixRecord, PrimaryAffix, isEligibleForScore, members

Run completion data

C_ChallengeMode.IsChallengeModeActive()

isActive

In active M+?

C_ChallengeMode.GetDeathCount()

numDeaths, timeLost

Deaths and penalty

C_ChallengeMode.GetActiveChallengeModeLevel()

level

Current key level

Rewards

Function Returns Description

C_ChallengeMode.GetChallengeMapInfo(mapID, keystoneLevel)

rewardInfo

Rewards for key level

C_MythicPlus — Seasonal M+ Data

Function Returns Description

C_MythicPlus.GetCurrentSeason()

seasonID

Current season

C_MythicPlus.GetRunHistory(includePreviousWeeks, includeIncompleteRuns)

runs

Run history

C_MythicPlus.GetRewardLevelFromKeystoneLevel(keystoneLevel)

rewardLevel

Reward item level

C_MythicPlus.GetOwnedKeystoneLevel()

level

Owned key level

C_MythicPlus.GetOwnedKeystoneChallengeMapID()

mapID

Owned key dungeon

C_MythicPlus.GetOwnedKeystoneMapID()

mapID

Owned key map

C_MythicPlus.GetCurrentAffixes()

affixIDs

Current affixes

C_MythicPlus.GetWeeklyChestRewardLevel()

rewardLevel

Vault reward level

C_MythicPlus.GetSeasonBestAffixScoreInfoForMap(mapID)

bestScoreInfo

Best scores by affix

C_MythicPlus.GetSeasonBestForMap(mapID)

intimeInfo, overtimeInfo

Season best runs

C_MythicPlus.GetOverallDungeonScore()

score

Overall M+ rating

C_MythicPlus.RequestCurrentAffixes()

— Request affix data

C_MythicPlus.RequestMapInfo()

— Request map data

C_MythicPlus.RequestRewards()

— Request reward data

C_MythicPlus.IsDungeonScorable(mapID)

isScorable

Awards score?

ScenarioInfo — Scenarios & Delves

Function Returns Description

C_ScenarioInfo.GetScenarioInfo()

scenarioInfo

Current scenario

C_ScenarioInfo.GetScenarioStepInfo()

stepInfo

Current step

C_ScenarioInfo.GetCriteriaInfo(criteriaIndex)

criteriaInfo

Criteria at index

C_ScenarioInfo.GetCriteriaInfoByStep(stepIndex, criteriaIndex)

criteriaInfo

Step criteria

C_ScenarioInfo.GetScenarioStepByIndex(index)

stepInfo

Step at index

Scenario Info Fields

  • name — Scenario name

  • currentStage — Current stage

  • numStages — Total stages

  • flags — Scenario flags

  • isComplete — Completed?

  • xp — XP reward

  • money — Gold reward

  • type — Scenario type

  • area — Area name

  • uiTextureKit — UI texture kit

Step Info Fields

  • title — Step title

  • description — Step description

  • numCriteria — Criteria count

  • isComplete — Step complete?

  • isBonusObjective — Bonus objective?

  • isFinal — Final step?

  • weightedProgress — Progress percentage

Raid Locks (Saved Instances)

Function Returns Description

GetNumSavedInstances()

numInstances

Saved instance count

GetSavedInstanceInfo(index)

name, id, reset, difficulty, locked, extended, instanceIDMostSig, isRaid, maxPlayers, difficultyName, numEncounters, encounterProgress, extendDisabled

Saved instance info

GetSavedInstanceEncounterInfo(index, encounterIndex)

bossName, fileDataID, isKilled, isIneligible

Boss kill status

SetSavedInstanceExtend(index, extend)

— Extend lockout

GetNumSavedWorldBosses()

count

World boss locks

GetSavedWorldBossInfo(index)

name, id, reset

World boss info

RequestRaidInfo()

— Request lock data

InstanceLeaverInfo — Deserter

Function Returns Description

C_InstanceLeaverInfo.GetLeaverInfo()

leaverInfo

Leaver/deserter info

C_InstanceLeaverInfo.HasLeaverPenalty()

hasPenalty

Has deserter?

C_InstanceLeaverInfo.GetLeaverPenaltyTimeRemaining()

seconds

Time remaining

C_SeasonInfo — Seasonal Content

Function Returns Description

C_SeasonInfo.GetCurrentDisplaySeasonID()

seasonID

Current display season

C_SeasonInfo.GetCurrentSeason()

seasonID

Current season

C_SeasonInfo.GetSeasonInfo(seasonID)

seasonInfo

Season data

Common Patterns

List Encounter Journal Bosses

-- Select an instance and list its bosses EJ_SelectTier(EJ_GetCurrentTier()) EJ_SelectInstance(instanceID)

local index = 1 while true do local name, description, encounterID, rootSectionID = EJ_GetEncounterInfoByIndex(index) if not name then break end print(index, name, "- EncounterID:", encounterID) index = index + 1 end

Show M+ Keystone Info

local function ShowKeystoneInfo() local level = C_MythicPlus.GetOwnedKeystoneLevel() local mapID = C_MythicPlus.GetOwnedKeystoneChallengeMapID() if level and mapID then local name = C_ChallengeMode.GetMapUIInfo(mapID) print("Keystone:", name, "+", level) else print("No keystone") end

local score = C_MythicPlus.GetOverallDungeonScore()
print("M+ Rating:", score or 0)

end

Check Active M+ Progress

local function ShowMythicPlusProgress() if not C_ChallengeMode.IsChallengeModeActive() then print("Not in an active M+") return end

local level = C_ChallengeMode.GetActiveChallengeModeLevel()
local mapID = C_ChallengeMode.GetActiveChallengeMapID()
local name = C_ChallengeMode.GetMapUIInfo(mapID)
local deaths, timeLost = C_ChallengeMode.GetDeathCount()

print(name, "+", level)
print("Deaths:", deaths, "Time lost:", timeLost, "sec")

end

List Saved Instances

RequestRaidInfo() -- Wait for UPDATE_INSTANCE_INFO event, then: local numSaved = GetNumSavedInstances() for i = 1, numSaved do local name, id, reset, difficulty, locked, extended, _, isRaid, maxPlayers, diffName, numEncounters, progress = GetSavedInstanceInfo(i) if locked then print(name, diffName, progress .. "/" .. numEncounters, "Reset:", SecondsToTime(reset)) end end

Key Events

Event Payload Description

EJ_LOOT_DATA_RECIEVED

itemID Loot data loaded

EJ_DIFFICULTY_UPDATE

difficultyID EJ difficulty changed

CHALLENGE_MODE_START

mapID M+ started

CHALLENGE_MODE_COMPLETED

mapID M+ completed

CHALLENGE_MODE_RESET

mapID M+ reset

CHALLENGE_MODE_DEATH_COUNT_UPDATED

— Death count changed

CHALLENGE_MODE_KEYSTONE_RECEPTABLE_OPEN

— Font of Power opened

CHALLENGE_MODE_KEYSTONE_SLOTTED

— Keystone slotted

MYTHIC_PLUS_CURRENT_AFFIX_UPDATE

— Affixes updated

MYTHIC_PLUS_NEW_WEEKLY_RECORD

mapID New weekly best

MYTHIC_PLUS_NEW_SEASON_RECORD

mapID New season best

SCENARIO_UPDATE

— Scenario state changed

SCENARIO_CRITERIA_UPDATE

— Criteria updated

SCENARIO_COMPLETED

— Scenario completed

UPDATE_INSTANCE_INFO

— Saved instance data

INSTANCE_LOCK_START

— Lockout acquired

INSTANCE_LOCK_STOP

— Lockout released

INSTANCE_LOCK_WARNING

— Lockout warning

Gotchas & Restrictions

  • EJ data is async — Loot data loads asynchronously. Wait for EJ_LOOT_DATA_RECIEVED before reading loot.

  • Tier selection matters — EJ functions operate on the currently selected tier. Always set tier first.

  • M+ completion data is temporary — GetCompletionInfo() only returns data immediately after a run.

  • Keystone slotting requires hardware event — Players must manually interact with the Font of Power.

  • Raid lock extensions — SetSavedInstanceExtend() must be called during the lock's active period.

  • Scenario types vary — Delves, island expeditions, and scenarios all use ScenarioInfo with different type flags.

  • M+ rating is per-season — GetOverallDungeonScore() resets each season.

  • RequestRaidInfo() is async — Wait for UPDATE_INSTANCE_INFO before reading saved instances.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

wow-addon-structure

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-lua-api

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-settings-system

No summary provided by upstream source.

Repository SourceNeeds Review