Returns information about a spell. As of 4.1, this function should always return valid data for a spell if the spell is in the player's spellbook (by name or index) or if requested by spell id. When in doubt, if the player does not have the spell in their spellbook, use the numeric id to access its information.

See also Spell functions.


name, rank, icon, powerCost, isFunnel, powerType, castingTime, minRange, maxRange = GetSpellInfo(index, "bookType") or GetSpellInfo("name") or GetSpellInfo(id)


  • index - Index of a spell in the spellbook (number, spellbookID)

  • bookType - Type of spellbook (string)

    • pet - The pet's spellbook
    • spell - The player's spellbook

  • name - Name of a spell, optionally including secondary text (e.g. "Mana Burn" to find the player's highest rank, or "Mana Burn(Rank 2)" -- no space before the parenthesis -- for a specific rank) (string)

  • id - Numeric ID of a spell (number, spellID)


  • name - Name of the spell (string)

  • rank - Secondary text associated with the spell (e.g."Rank 5", "Racial", etc.) (string)

  • icon - Path to an icon texture for the spell (string)

  • powerCost - Amount of mana, rage, energy, runic power, or focus required to cast the spell (number)

  • isFunnel - True for spells with health funneling effects (like Health Funnel) (boolean)

  • powerType - Power type to cast the spell (number)

    • -2 - Health
    • 0 - Mana
    • 1 - Rage
    • 2 - Focus
    • 3 - Energy
    • 5 - Runes
    • 6 - Runic Power

  • castingTime - Casting time of the spell in milliseconds (number)

  • minRange - Minimum range from the target required to cast the spell (number)

  • maxRange - Maximum range from the target at which you can cast the spell (number)