wow-api-achievements

Achievements 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-achievements" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-achievements

Achievements API (Retail — Patch 12.0.0)

Comprehensive reference for achievements, statistics, and criteria APIs.

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

  • Achievement Functions — GetAchievementInfo, criteria, categories

  • Statistics — GetStatistic, comparison

  • Tracking — Tracked achievements

  • Guild Achievements — Guild-specific achievements

Achievement Info

Core Functions

Function Returns Description

GetAchievementInfo(achievementID)

id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuild, wasEarnedByMe, earnedBy, isStatistic

Achievement details

GetAchievementInfoFromCriteria(criteriaID)

id, name, points, completed, ...

Achievement from criteria

GetAchievementLink(achievementID)

link

Achievement hyperlink

GetAchievementNumRewards(achievementID)

numRewards

Reward count

GetAchievementReward(achievementID, rewardIndex)

text, type, ...

Reward info

GetPreviousAchievement(achievementID)

prevAchievementID

Achievement chain prev

GetNextAchievement(achievementID)

nextAchievementID

Achievement chain next

GetTotalAchievementPoints([isGuild])

points

Total achievement points

GetComparisonAchievementPoints()

points

Compared player's points

SetAchievementSearchString(searchText)

numResults

Search achievements

GetAchievementSearchSize()

numResults

Search result count

GetAchievementSearchProgress()

progress

Search progress

GetFilteredAchievementID(index)

achievementID

Filtered result at index

Achievement Criteria

Function Returns Description

GetAchievementNumCriteria(achievementID)

numCriteria

Number of criteria

GetAchievementCriteriaInfo(achievementID, criteriaIndex)

criteriaString, criteriaType, completed, quantity, reqQuantity, charName, flags, assetID, quantityString, criteriaID, eligible, duration, elapsed

Criteria details

GetAchievementCriteriaInfoByID(achievementID, criteriaID)

criteriaString, criteriaType, completed, quantity, reqQuantity, charName, flags, assetID, quantityString, criteriaID, eligible

Criteria by ID

Achievement Categories

Function Returns Description

GetCategoryList()

categoryIDs

All achievement categories

GetCategoryInfo(categoryID)

title, parentCategoryID, flags

Category info

GetCategoryNumAchievements(categoryID [, includeAll])

numAchievements, numCompleted, numIncomplete

Category stats

GetAchievementCategory(achievementID)

categoryID

Achievement's category

Achievement Comparison (Inspect)

Function Returns Description

GetComparisonStatistic(achievementID)

value

Compared player's statistic

ClearAchievementComparisonUnit()

— Clear comparison

SetAchievementComparisonUnit(unit)

success

Set comparison target

Statistics

Function Returns Description

GetStatistic(achievementID)

value

Statistic value (string)

GetStatisticsCategoryList()

categoryIDs

Statistic categories

GetCategoryAchievementPoints(categoryID, includeAll)

points, completedPoints

Category points

Achievement Tracking

Function Returns Description

GetTrackedAchievements()

... (achievementIDs)

All tracked achievements

GetNumTrackedAchievements()

numTracked

Tracked count

AddTrackedAchievement(achievementID)

— Track achievement

RemoveTrackedAchievement(achievementID)

— Untrack achievement

IsTrackedAchievement(achievementID)

isTracked

Is tracked?

Common Patterns

Check Achievement Completion

local function IsAchievementDone(achievementID) local _, _, _, completed = GetAchievementInfo(achievementID) return completed end

Display Achievement Criteria Progress

local function PrintCriteriaProgress(achievementID) local _, name = GetAchievementInfo(achievementID) print("Achievement:", name) local numCriteria = GetAchievementNumCriteria(achievementID) for i = 1, numCriteria do local criteriaString, _, completed, quantity, reqQuantity = GetAchievementCriteriaInfo(achievementID, i) local status = completed and "DONE" or (quantity .. "/" .. reqQuantity) print(" ", criteriaString, status) end end

Search Achievements

local function SearchAchievements(text) local numResults = SetAchievementSearchString(text) local results = {} for i = 1, GetAchievementSearchSize() do local achievementID = GetFilteredAchievementID(i) local _, name, points, completed = GetAchievementInfo(achievementID) table.insert(results, {id = achievementID, name = name, points = points, done = completed}) end return results end

Key Events

Event Payload Description

ACHIEVEMENT_EARNED

achievementID, alreadyEarned Achievement completed

CRITERIA_EARNED

achievementID, criteriaString Criteria completed

CRITERIA_UPDATE

— Criteria progress updated

CRITERIA_COMPLETE

— All criteria complete

TRACKED_ACHIEVEMENT_LIST_CHANGED

achievementID, added Tracking changed

TRACKED_ACHIEVEMENT_UPDATE

achievementID Tracked achievement updated

ACHIEVEMENT_SEARCH_UPDATED

— Search results ready

INSPECT_ACHIEVEMENT_READY

guid Inspect achievement data ready

RECEIVED_ACHIEVEMENT_MEMBER_LIST

achievementID Member list received

Gotchas & Restrictions

  • GetAchievementInfo returns 15 values — Destructure carefully. The completed boolean is the 4th return.

  • Guild vs personal — Pass true as isGuild to GetCategoryNumAchievements() for guild achievements.

  • Statistics are strings — GetStatistic() returns a formatted string, not a number. Parse with tonumber() if needed.

  • Criteria index is 1-based — Criteria indices start at 1, up to GetAchievementNumCriteria() .

  • Achievement chains — Some achievements are chained (10/25/50 kills etc.). Use GetPreviousAchievement() /GetNextAchievement() .

  • Search is async — SetAchievementSearchString() may not return all results immediately. Wait for ACHIEVEMENT_SEARCH_UPDATED .

  • Tracking limit — There's a maximum number of tracked achievements.

  • Inspect data — Achievement comparison requires SetAchievementComparisonUnit() and waiting for INSPECT_ACHIEVEMENT_READY .

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