wow-api-group-lfg

Group & LFG 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-group-lfg" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-group-lfg

Group & LFG API (Retail — Patch 12.0.0)

Comprehensive reference for party/raid management, dungeon finder, premade groups, and related 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

  • C_PartyInfo — Party management, invites, conversion

  • C_LFGInfo — Dungeon Finder queue system

  • C_LFGList — Premade Groups (Group Finder)

  • C_SocialQueue — Social queue tracking

  • C_LobbyMatchmakerInfo — Lobby matchmaker

  • Raid Markers — World and target markers

  • Group utility — Ready check, countdown, roles

C_PartyInfo — Party Management

Core Functions

Function Returns Description

C_PartyInfo.InviteUnit(name)

— Invite player to group

C_PartyInfo.UninviteUnit(name [, reason])

— Kick player from group

C_PartyInfo.LeaveParty([category])

— Leave group

C_PartyInfo.ConvertToParty()

— Convert raid to party

C_PartyInfo.ConvertToRaid()

— Convert party to raid

C_PartyInfo.CanInvite()

canInvite

Can invite to group?

C_PartyInfo.IsPartyFull([category])

isFull

Is group full?

C_PartyInfo.IsPartyInJailersTower()

isInTorghast

In Torghast?

C_PartyInfo.GetActiveCategories()

categories

Active party categories

C_PartyInfo.GetMinLevel([category])

minLevel

Minimum level requirement

C_PartyInfo.GetInviteReferralInfo(inviteGUID)

referredByGUID, referredByName, ...

Invite referral info

C_PartyInfo.GetInviteConfirmationInvalidQueues(inviteGUID)

queues

Invalid queues for invite

C_PartyInfo.ConfirmInviteUnit(name)

— Confirm pending invite

C_PartyInfo.DoCountdown(seconds)

— Start raid countdown

C_PartyInfo.DoReadyCheck()

— Initiate ready check

C_PartyInfo.GetRestrictPingsTo()

restrictTo

Ping restriction setting

C_PartyInfo.SetRestrictPingsTo(restrictTo)

— Set ping restriction

C_PartyInfo.AllowIncomingDelves(allow)

— Allow incoming Delve invites

C_PartyInfo.IsCrossFactionParty([category])

isCrossFaction

Is cross-faction group?

Group Query Functions (Global)

Function Returns Description

IsInGroup([category])

inGroup

In any group?

IsInRaid([category])

inRaid

In a raid?

GetNumGroupMembers([category])

numMembers

Group member count

GetNumSubgroupMembers([category])

numSubMembers

Party-size count

UnitInParty(unit)

inParty

Is unit in party?

UnitInRaid(unit)

inRaid

Is unit in raid?

GetRaidRosterInfo(raidIndex)

name, rank, subgroup, level, class, fileName, zone, online, isDead, role, isML, combatRole

Raid roster info

IsPartyLFG()

isLFG

In LFG group?

IsInInstance()

inInstance, instanceType

In instance?

GetInstanceInfo()

name, instanceType, difficultyID, difficultyName, maxPlayers, dynamicDifficulty, isDynamic, instanceID, instanceGroupSize, LfgDungeonID

Instance info

SetRaidSubgroup(memberIndex, subgroup)

— Move member to subgroup

SwapRaidSubgroup(index1, index2)

— Swap two members

PromoteToLeader(unit)

— Promote to leader

DemoteAssistant(unit)

— Demote assistant

PromoteToAssistant(unit)

— Promote to assistant

UnitIsGroupLeader(unit [, category])

isLeader

Is unit the leader?

UnitIsGroupAssistant(unit)

isAssistant

Is unit assistant?

Role Functions

Function Returns Description

UnitGroupRolesAssigned(unit)

role

TANK, HEALER, DAMAGER, NONE

UnitSetRole(unit, role)

— Set unit's role

GetSpecializationRole(specIndex)

role

Spec's default role

UnitGetAvailableRoles(unit)

canTank, canHeal, canDPS

Available roles

Ready Check Functions

Function Returns Description

GetReadyCheckStatus(unit)

status

ready, notready, waiting

GetReadyCheckTimeLeft()

timeLeft

Seconds remaining

ConfirmReadyCheck(isReady)

— Respond to ready check

C_LFGInfo — Dungeon Finder

Function Returns Description

C_LFGInfo.GetAllEntriesForCategory(category)

entries

All LFG entries

C_LFGInfo.GetLFGDungeonInfo(dungeonID)

info

Dungeon info

C_LFGInfo.GetRoleCheckDifficultyDetails()

difficultyID, isBlocked

Role check details

C_LFGInfo.CanPlayerUseLFD()

canUse

Can use dungeon finder?

C_LFGInfo.CanPlayerUseScenarioFinder()

canUse

Can use scenario finder?

C_LFGInfo.CanPlayerUsePremadeGroup()

canUse

Can use premade groups?

C_LFGInfo.GetQueuedDungeons(category)

dungeons

Currently queued dungeons

C_LFGInfo.HideNameFromUI(dungeonID)

hidden

Is name hidden?

LFG Global Functions

Function Returns Description

GetLFGMode(category)

mode, subMode

Current LFG mode

GetLFGRoles()

isLeader, isTank, isHealer, isDPS

Selected roles

SetLFGRoles(isLeader, isTank, isHealer, isDPS)

— Set roles

GetLFGProposal()

leaderName, category, dungeonID, ...

Current proposal

AcceptProposal()

— Accept dungeon proposal

RejectProposal()

— Reject dungeon proposal

GetLFGQueueStats(category)

hasData, leaderNeeds, tankNeeds, healerNeeds, dpsNeeds, instanceType, instanceSubType, instanceName, averageWait, tankWait, healerWait, damageWait, myWait, queuedTime

Queue statistics

JoinLFG(category)

— Join LFG queue

LeaveLFG(category)

— Leave LFG queue

CompleteLFGReadyCheck(isReady)

— Complete LFG ready check

GetLFGDeserterExpiration()

expiration

Deserter debuff time

CompleteLFGRoleCheck(isAccepted)

— Complete role check

C_LFGList — Premade Groups (Group Finder)

Search & Browse

Function Returns Description

C_LFGList.Search(categoryID, filter [, preferredFilters [, languages [, ...] ] ])

— Search for groups

C_LFGList.GetSearchResults()

totalResultsFound, results

Get search results

C_LFGList.GetSearchResultInfo(searchResultID)

resultInfo

Single result info

C_LFGList.GetSearchResultMemberInfo(searchResultID, memberIndex)

memberInfo

Result member info

C_LFGList.GetSearchResultMemberCounts(searchResultID)

numMembers, numTanks, numHealers, numDPS

Member count per role

C_LFGList.HasSearchResultInfo(searchResultID)

hasInfo

Has result info?

C_LFGList.GetFilteredSearchResults()

totalResults, filteredResults

Filtered results

C_LFGList.GetAvailableCategories()

categoryIDs

Available categories

C_LFGList.GetCategoryInfo(categoryID)

name, ...

Category info

C_LFGList.GetAvailableActivities(categoryID [, groupID [, filter]])

activityIDs

Available activities

C_LFGList.GetActivityInfoTable(activityID)

info

Activity info

C_LFGList.GetActivityFullName(activityID [, questID [, isWarModeDesired]])

fullName

Full activity name

C_LFGList.GetAvailableLanguageSearchFilter()

languages

Available languages

Create & Manage Listing

Function Returns Description

C_LFGList.CreateListing(activityID, itemLevel, autoAccept, privateGroup, questID, ...)

— Create group listing

C_LFGList.UpdateListing(activityID, itemLevel, autoAccept, privateGroup, questID, ...)

— Update listing

C_LFGList.RemoveListing()

— Remove your listing

C_LFGList.GetActiveEntryInfo()

entryInfo

Your listing info

C_LFGList.HasActiveEntryInfo()

hasInfo

Have active listing?

Applications

Function Returns Description

C_LFGList.ApplyToGroup(searchResultID, comment, tankRole, healerRole, dpsRole)

— Apply to group

C_LFGList.CancelApplication(searchResultID)

— Cancel application

C_LFGList.GetApplications()

applications

Your applications

C_LFGList.GetApplicationInfo(searchResultID)

appStatus, pendingStatus, appDuration, ...

Application status

C_LFGList.GetApplicants()

applicantIDs

Applicants to your group

C_LFGList.GetApplicantInfo(applicantID)

info

Applicant info

C_LFGList.GetApplicantMemberInfo(applicantID, memberIndex)

memberInfo

Applicant member info

C_LFGList.InviteApplicant(applicantID)

— Invite applicant

C_LFGList.DeclineApplicant(applicantID)

— Decline applicant

Raid Markers

Function Returns Description

SetRaidTarget(unit, markerIndex)

— Set raid target marker

GetRaidTargetIndex(unit)

markerIndex

Get target marker

SetRaidTargetIcon(unit, icon)

— Set raid icon (same as above)

IsRaidMarkerActive(markerIndex)

isActive

Is world marker active?

PlaceRaidMarker(markerIndex)

— Place world marker at cursor

ClearRaidMarker(markerIndex)

— Clear world marker

UnitPopupSetRaidTargetButton_OnClick(frame, unit, icon)

— Set from unit popup

Marker Index Values

Index Marker

1 Star (Yellow)

2 Circle (Orange)

3 Diamond (Purple)

4 Triangle (Green)

5 Moon (Silver)

6 Square (Blue)

7 Cross/X (Red)

8 Skull (White)

0 Clear

Common Patterns

Check Group Type and Size

local function GetGroupInfo() if IsInRaid() then return "raid", GetNumGroupMembers() elseif IsInGroup() then return "party", GetNumGroupMembers() else return "solo", 1 end end

Iterate Group Members

local function ForEachGroupMember(callback) local prefix = IsInRaid() and "raid" or "party" local numMembers = GetNumGroupMembers()

if IsInRaid() then
    for i = 1, numMembers do
        callback(prefix .. i)
    end
else
    callback("player")
    for i = 1, numMembers - 1 do
        callback(prefix .. i)
    end
end

end

ForEachGroupMember(function(unit) print(UnitName(unit), UnitGroupRolesAssigned(unit)) end)

Search Premade Groups

-- Search for M+ groups local CATEGORY_DUNGEON = 2 C_LFGList.Search(CATEGORY_DUNGEON, "")

local frame = CreateFrame("Frame") frame:RegisterEvent("LFG_LIST_SEARCH_RESULTS_RECEIVED") frame:SetScript("OnEvent", function() local totalResults, results = C_LFGList.GetSearchResults() for _, resultID in ipairs(results) do local info = C_LFGList.GetSearchResultInfo(resultID) if info then print(info.name, info.comment, info.numMembers) end end end)

Key Events

Event Payload Description

GROUP_ROSTER_UPDATE

— Group composition changed

GROUP_FORMED

category Group formed

GROUP_LEFT

category Left group

GROUP_JOINED

category Joined group

PARTY_INVITE_REQUEST

name, ... Received party invite

PARTY_INVITE_CANCEL

— Invite cancelled

PARTY_LEADER_CHANGED

— Leader changed

PARTY_MEMBER_ENABLE

unitToken Member came online

PARTY_MEMBER_DISABLE

unitToken Member went offline

ROLE_CHANGED_INFORM

changedName, sourceName, oldRole, newRole Role changed

READY_CHECK

initiatorName, readyCheckTimeLeft Ready check started

READY_CHECK_CONFIRM

unit, isReady Member responded

READY_CHECK_FINISHED

preempted Ready check done

START_TIMER

timerType, timeRemaining, totalTime Countdown timer

LFG_LIST_SEARCH_RESULTS_RECEIVED

— Premade search done

LFG_LIST_SEARCH_RESULT_UPDATED

searchResultID Result updated

LFG_LIST_ACTIVE_ENTRY_UPDATE

— Your listing updated

LFG_LIST_APPLICANT_UPDATED

applicantID Applicant updated

LFG_LIST_APPLICANT_LIST_UPDATED

— Applicant list changed

LFG_LIST_ENTRY_CREATION_FAILED

— Listing creation failed

LFG_PROPOSAL_SHOW

— Dungeon proposal shown

LFG_PROPOSAL_SUCCEEDED

— Proposal accepted

LFG_PROPOSAL_FAILED

— Proposal failed

LFG_QUEUE_STATUS_UPDATE

— Queue status changed

LFG_UPDATE

— LFG system updated

LFG_ROLE_CHECK_SHOW

isRequeue Role check shown

RAID_TARGET_UPDATE

— Raid marker changed

INSTANCE_GROUP_SIZE_CHANGED

— Instance group size changed

Gotchas & Restrictions

  • InviteUnit requires hardware event — Must be called from a user click/key handler.

  • Party vs raid iteration — Use different unit tokens: "party1"-"party4" vs "raid1"-"raid40" . Player is NOT in party tokens.

  • Category matters — IsInGroup() defaults to LE_PARTY_CATEGORY_HOME . Use LE_PARTY_CATEGORY_INSTANCE for LFG groups.

  • GROUP_ROSTER_UPDATE fires often — Debounce processing. Fires for role changes, joins, leaves, subgroup changes.

  • LFG search is async — C_LFGList.Search() is async. Wait for LFG_LIST_SEARCH_RESULTS_RECEIVED .

  • SendAddonMessage in instances — Blocked in 12.0.0. Group addons cannot communicate via addon messages in instances.

  • Cross-faction groups — Check C_PartyInfo.IsCrossFactionParty() to handle cross-faction UI properly.

  • Raid markers require assist — SetRaidTarget() requires leader or assistant in raids.

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-lua-api

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-addon-structure

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-professions

No summary provided by upstream source.

Repository SourceNeeds Review