This article is about the World of Warcraft API. For units in Warcraft RTS games, see Unit (RTS).

A unitId (or unit token[1]) identifies a unit by their relationship to the player as a target, party member, pet, or other such role. Several API functions accept unitId as an argument for whom the action applies, though some functions only accept a subset of possible values.

UnitIds are case insensitive.

Base Values

Opposing arena member with index N (1,2,3,4 or 5).
The active bosses of the current encounter if available N (1,2,3 or 4).
The current player's focus target as selected by the /focus command.
The unit which the mouse is currently (or was most recently) hovering over.
A valid unit token that always refers to no unit. UnitName will return "Unknown, nil" for this UnitID. Use to force a macro to not auto self-cast (/cast [target=none] Healing Wave).
The Nth party member excluding the player (1,2,3 or 4).
The pet of the Nth party member (N is 1,2,3, or 4).
The current player's pet.
The current player.
The raid member with raidIndex N (1,2,3,...,40).
The pet of the raid member with raidIndex N (1,2,3,...,40)
The currently targeted unit. May be overridden in macros by unit specified as a value of respective Secure Button attribute.
The current player's vehicle.
The Nth nameplate (1,2,3,...). Cannot be targeted by spells or commands such as /target nameplate1 or /cast [target=nameplate1] Healing Wave.
The Nth spectated unit for either Team "a" or "b", such as "spectatedb2" for the second unit on team B. Only present in commentator mode.


The following value also appears in some very specific places (Vendor interactions, for example) or functions.

The NPC with which the player is currently interacting. You must be interacting with the NPC for this to work (e.g. the quest, flight path, merchant, gossip, or bank frame is open).
player name 
As returned by UnitName, GetGuildRosterInfo, GetFriendInfo, COMBAT LOG EVENT, etc. This must be spelled exactly and will be invalid if the named player is not a part of your party or raid. As with all other UnitIDs, it is not case sensitive.

Target of unit

Append the suffix target to any UnitId to refer its target (e.g. "pettarget" is the target of your pet). This appending can be repeated indefinitely (e.g. "playertargettarget"), though you will observe an attendant performance hit if you overdo it, as the game engine has to jump from target to target.

If you are using a party or raid member's name as a unit, you need to use hyphens to separate the target chain (e.g. "Cogwheel-target-target").


Refers to the 7th raid member's target.
Refers to the first party member (not the player, but the first person in the player's party frames)'s target's target.
Refers to the player's target's target's pet's target. Will refer to the player's target if the player's target and the player's pet are both targeting the player.
Refers the unit being moused over's pet's target.
The same as simply using "target". Using "playertarget" is not as efficient as simply using "target".
Refers to Cogwheel if he is in the player's party/raid.
Refers to Cogwheel's target if he is in the player's party/raid.
Refers to Cogwheel's pet's target if he is in the player's party/raid.


  • Many of the functions which take a UnitId only provide useful results for a subset of ID's. Other functions will only provide information for friendly targets (or those upon which a power is active).
  • Some functions return different values if the unit is close enough to be 'visible' to your client (not necessarily in line of sight), as can be determined with UnitIsVisible(unit).

Patch changes


  1. ^ Zootfizzle 2010-12-03. Re: 3.1 API changes (and clarifications). Archived from the original