MACRO who

Queries the server for online players matching the query, up to a maximum of 49 players.
 /who filter
== Arguments ==
;filter
:Filtering options to perform the query with. Players are queried based on name, guild name, zone, race, class, and level. You may specify custom filters per field by using the following formats:
:* n-"name"
:* g-"guildname"
:* z-"zone"
:* r-"race"
:* c-"class"
:* level
:* minlevel-maxlevel (all numeric queries are assumed to be level)
== Examples ==
This shows you everyone in Ironforge from level 1 through 10
/who z-"Ironforge" 1-10
Either of these show you all level 80 Draenei Priests.
/who 80 r-"Draenei" c-"Priest"
/who 80 Draenei Priest
This example will return warriors in Shadowmoon Valley, as well as people with "warrior" in their name or guild name. For example, maybe a pally named Warriorsbane or someone in the guild "Warriors of Azeroth".
/who z-"Shadowmoon Valley" Warrior
== Notes ==
If given search terms are not assigned to a particular field, all fields are queried for all terms, and the results are the union of all sets returned per term, in intersection with the results of all terms. A detailed explanation follows:
filter1: 80 c-"Priest"
set A = all level 80's (it is technically impossible for a person to have 80 in their name, due to naming restrictions, but if this were not the case, you'd see those too).
set B = all characters of the class Priest
result = A ∩ B
filter2: 80 Priest
set A = all level 80's
set B = all characters of the class Priest
set C = all characters named priest
set D = all characters in a guild with 'Priest' in the name
result = [A ∩ (B U C U D)]
Note that set B C and D are all created with the second term
Priest would also return all people in a zone with 'Priest' in the name, but no such zone exists.
== See also ==
* Who List
* API SendWho