ItemLink

Item hyperlinks are used to encode information for item tooltips and to pass item information between clients.
==Format==
Hyperlink
 |cffxxxxxx|Hitem:payload|h[text]|h|r
Payload
 itemID : enchantID : gemID1 : gemID2 : gemID3 : gemID4
 : suffixID : uniqueID : linkLevel : specializationID : modifiersMask : itemContext
 : numBonusIDs[:bonusID1:...] : numModifiers[:modifierType1:modifierValue1:...]
 : relic1NumBonusIDs[:relicBonusID1:...] : relic2NumBonusIDs[...] : relic3NumBonusIDs[...]
 : crafterGUID : extraEnchantID
;itemID : Item ID used for e.g. ()
;# enchantID : Permanent Enchants.
;# gemID1, gemID2, gemID3, gemID4 : Item IDs of socketed Gems. gemID4 is unused.
;# suffixID : Random Item suffix e.g. "of the Owl".
;uniqueID : Data pertaining to a specific instance of the item. No longer used.
;linkLevel : Level of the character supplying the link. This is used to render scaling heirloom item tooltips at the proper level.
;specializationID : Class SpecializationID of the character supplying the link. This is used to display the appropriate primary stat and set bonuses on gear.
;modifiersMask : No longer used.
;# itemContext : Context for the item source (EnumeratedString).
;# numModifiers : The number of item modifiers.
:; modifierType1, modifierValue1, ... : Key/Value pairs for item modifiers.
;# numBonusIDs : The number of bonusIDs.
:; bonusID1, bonusID2, ... : Data describing how the item differs from a generic instance of its base Item ID.
;# relic1NumBonusIDs, ... : The number of bonusIDs for the socketed artifact relic.
:; relic1BonusID1, relic1BonusID2, ...: Data describing how the socketed artifact relic differs from a generic instance of its base Item ID.
;# crafterGUID : Unit GUID of the player who crafted the equipment item.
;# extraEnchantID : For example engineering tinkers.
==Details==
===Enchant IDs===
See list of EnchantIds and SpellItemEnchantment.db2
* ItemLinks can be altered to have any enchantID and still be valid for use in () and tooltips.
* Temporary enchants like Windfury Weapon and Rough Sharpening Stone do not appear in the ItemLink, even though they are listed in SpellItemEnchantment.db2
Example: Item enchanted with Minor Stamina (bracers enchant).
 "|cff0070dd|Hitem:80921:4721:::::::36:103::1:::::::|h[Saboteur's Stabilizing Bracers]|h|r"
===Gem IDs===
Gems are listed by itemID for each socket.
Example: Helm of Elemental Binding socketed with Perfect Brilliant Bloodstone for only the 2nd gem slot.
 "|cff0070dd|Hitem:87451:::41438:::::53:257:::1:6658:2:9:35:28:1035:::::|h[Helm of Elemental Binding]|h|r"
 4: 41438 -- gemID2
===Suffix IDs===
 Item suffixes in Classic are given to items that get randomized stat ratings e.g. "of the Bear" and refer to (multiple) enchantIDs.
* Positive IDs (obtained pre-2.0) are listed in SuffixId and ItemRandomProperties.db2
* Negative IDs (obtained post-2.0) are listed in ItemRandomSuffix and ItemRandomSuffix.db2.
Example: Suffix with a positive ID from Classic Era.
 "|cff1eff00|Hitem:9849::::::776:661453184:33:::::::::|h[Conjurer's Hood of the Owl]|h|r"
Example: Suffix with a negative ID from Burning Crusade Classic.
 "|cff1eff00|Hitem:6267::::::-9:1379794946:33:::::::::|h[Disciple's Pants of the Owl]|h|r"
===Bonus IDs===
:See also: Raidbots bonus IDs data
BonusIDs can adjust item levels, modify stats, change item quality, add item titles, append words to item names, add sockets, adjust appearance, adjust required equip level, and possibly many more. They can be looked up in ItemBonus.db2.ParentItemBonusListID
Example: Timewarped Warforged Gauntlets of Vindication. If say you want to find all possible Warforged Bonus IDs, look up the ItemNameDescription IDs for "warforged" and filter for IDs 11428|13220.
 "|cff0070dd|Hitem:127232::::::::50:72::22:2:615:656:1:9:40:::::|h[Gauntlets of Vindication]|h|r"
 13: 2 -- numBonusIDs
 14: 615 -- bonusID1: Timewarped
 15: 656 -- bonusID2: Warforged
Example: Level 86 / Item level 140 Heart of Azeroth.
 "|cffe6cc80|Hitem:158075::::::::53:257::11:4:4932:4933:6316:1554::::::|h[Heart of Azeroth]|h|r"
 13: 4 -- numBonusIDs
 14: 4932 -- bonusID1: No Bonus
 15: 4933 -- bonusID2: No Bonus
 16: 6316 -- bonusID3: Increase iLevel
 17: 1554 -- bonusID4: Increase iLevel
===Item Context===
Contains information about the Item Source. For example the starter gear:
 "|cffffffff|Hitem:51::::::::1:1452::75:::::::|h[Neophyte's Boots]|h|r"
 12: 75 -- New Character
{| class="sortable darktable zebra col1-center"	Value 	Key	Description
0 	None 	 	
1 	DungeonNormal 	 	
2 	DungeonHeroic 	 	
3 	RaidNormal 	 	
4 	RaidFinder 	 	
5 	RaidHeroic 	 	
6 	RaidMythic 	 	
7 	PvPUnranked_1 	 	
8 	PvPRanked_1 	 	
9 	ScenarioNormal 	 	
10	ScenarioHeroic 	 	
11	QuestReward 	 	
12	Store 	 	
13	TradeSkill 	 	
14	Vendor 	 	
15	BlackMarket 	 	
16	ChallengeMode_1 	 	
17	DungeonLevelUp_1 	 	
18	DungeonLevelUp_2 	 	
19	DungeonLevelUp_3 	 	
20	DungeonLevelUp_4 	 	
21	ForceNone 	 	
22	Timewalker 	 	
23	DungeonMythic 	 	
24	PvPHonorReward 	 	
25	WorldQuest_1 	 	
26	WorldQuest_2 	 	
27	WorldQuest_3 	 	
28	WorldQuest_4 	 	
29	WorldQuest_5 	 	
30	WorldQuest_6 	 	
31	MissionReward_1 	 	
32	MissionReward_2 	 	
33	ChallengeMode_2 	 	
34	ChallengeMode_3 	 	
35	ChallengeModeJackpot	 	
36	WorldQuest_7 	 	
37	WorldQuest_8 	 	
38	PvPRanked_2 	 	
39	PvPRanked_3 	 	
40	PvPRanked_4 	 	
41	PvPUnranked_2 	 	
42	WorldQuest_9 	 	
43	WorldQuest_10 	 	
44	PvPRanked_5 	 	
45	PvPRanked_6 	 	
46	PvPRanked_7 	 	
47	PvPUnranked_3 	 	
48	PvPUnranked_4 	 	
49	PvPUnranked_5 	 	
50	PvPUnranked_6 	 	
===Modifier Types===
Item modifiers contain extra item information in key-value pairs.
 Enum.ItemModification
Value	Key 	Info 	Description
0 	TransmogrifyItemModifiedAppearanceIDSpecAll 	TRANSMOG_APPEARANCE_ALL_SPECS 	
1 	TransmogrifyItemModifiedAppearanceIDSpec_0 	TRANSMOG_APPEARANCE_SPEC_1 	
2 	IncrementLevelObsolete 	UPGRADE_ID 	
3 	BattlePetSpecies 	BATTLE_PET_SPECIES_ID 	BattlePetSpeciesID
4 	BattlePetBreed 	BATTLE_PET_BREED_DATA 	
5 	BattlePetLevel 	BATTLE_PET_LEVEL 	
6 	BattlePetCreaturedisplayid 	BATTLE_PET_DISPLAY_ID 	
7 	TransmogrifyOverrideEnchantVisualIDSpecAll 	ENCHANT_ILLUSION_ALL_SPECS 	
8 	ArtifactAppearanceID 	ARTIFACT_APPEARANCE_ID 	ArtifactAppearanceID
9 	TimewalkerLevel 	TIMEWALKER_LEVEL 	
10 	TransmogrifyOverrideEnchantVisualIDSpec_0 	ENCHANT_ILLUSION_SPEC_1 	
11 	TransmogrifyItemModifiedAppearanceIDSpec_1 	TRANSMOG_APPEARANCE_SPEC_2 	
12 	TransmogrifyOverrideEnchantVisualIDSpec_1 	ENCHANT_ILLUSION_SPEC_2 	
13 	TransmogrifyItemModifiedAppearanceIDSpec_2 	TRANSMOG_APPEARANCE_SPEC_3 	
14 	TransmogrifyOverrideEnchantVisualIDSpec_2 	ENCHANT_ILLUSION_SPEC_3 	
15 	TransmogrifyItemModifiedAppearanceIDSpec_3 	TRANSMOG_APPEARANCE_SPEC_4 	
16 	TransmogrifyOverrideEnchantVisualIDSpec_3 	ENCHANT_ILLUSION_SPEC_4 	
17 	KeystoneMapChallengeModeID 	CHALLENGE_MAP_CHALLENGE_MODE_ID 	MapChallengeMode.db2
18 	KeystonePowerLevel 	CHALLENGE_KEYSTONE_LEVEL 	
19 	KeystoneAffix0 	CHALLENGE_KEYSTONE_AFFIX_ID_1 	KeystoneAffix.db2
20 	KeystoneAffix01 	CHALLENGE_KEYSTONE_AFFIX_ID_2 	
21 	KeystoneAffix02 	CHALLENGE_KEYSTONE_AFFIX_ID_3 	
22 	KeystoneAffix03 	CHALLENGE_KEYSTONE_AFFIX_ID_4 	
23 	LegionArtifactKnowledgeObsolete 	ARTIFACT_KNOWLEDGE_LEVEL 	
24 	ArtifactTier 	ARTIFACT_TIER 	
25 	TransmogrifyItemModifiedAppearanceIDSpec_4 	TRANSMOG_APPEARANCE_SPEC_5 	
26 	PvPRating 	PVP_RATING 	
27 	TransmogrifyOverrideEnchantVisualIDSpec_4 	ENCHANT_ILLUSION_SPEC_5 	
28 	ContentTuningID 	CONTENT_TUNING_ID 	ContentTuning.db2
29 	ChangeModifiedCraftingStat_1 	CHANGE_MODIFIED_CRAFTING_STAT_1 	
30 	ChangeModifiedCraftingStat_2 	CHANGE_MODIFIED_CRAFTING_STAT_2 	
31 	TransmogrifySecondaryItemModifiedAppearanceIDSpecAll	TRANSMOG_SECONDARY_APPEARANCE_ALL_SPECS 	
32 	TransmogrifySecondaryItemModifiedAppearanceIDSpec_0 	TRANSMOG_SECONDARY_APPEARANCE_SPEC_1 	
33 	TransmogrifySecondaryItemModifiedAppearanceIDSpec_1 	TRANSMOG_SECONDARY_APPEARANCE_SPEC_2 	
34 	TransmogrifySecondaryItemModifiedAppearanceIDSpec_2 	TRANSMOG_SECONDARY_APPEARANCE_SPEC_3 	
35 	TransmogrifySecondaryItemModifiedAppearanceIDSpec_3 	TRANSMOG_SECONDARY_APPEARANCE_SPEC_4 	
36 	TransmogrifySecondaryItemModifiedAppearanceIDSpec_4 	TRANSMOG_SECONDARY_APPEARANCE_SPEC_5 	
37 	SoulbindConduitRank 	SOULBIND_CONDUIT_RANK 	
38 	CraftingQualityID 	ITEM_MODIFIER_CRAFTING_QUALITY_ID 	
39 	CraftingSkillLineAbilityID 	ITEM_MODIFIER_CRAFTING_SKILL_LINE_ABILITY_ID	
40 	CraftingDataID 	ITEM_MODIFIER_CRAFTING_DATA_ID 	
41 	CraftingSkillReagents 	ITEM_MODIFIER_CRAFTING_SKILL_REAGENTS 	
42 	CraftingSkillWatermark 	ITEM_MODIFIER_CRAFTING_SKILL_WATERMARK 	
43 	CraftingReagentSlot_0 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_0 	
44 	CraftingReagentSlot_1 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_1 	
45 	CraftingReagentSlot_2 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_2 	
46 	CraftingReagentSlot_3 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_3 	
47 	CraftingReagentSlot_4 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_4 	
48 	CraftingReagentSlot_5 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_5 	
49 	CraftingReagentSlot_6 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_6 	
50 	CraftingReagentSlot_7 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_7 	
51 	CraftingReagentSlot_8 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_8 	
52 	CraftingReagentSlot_9 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_9 	
53 	CraftingReagentSlot_10 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_10 	
54 	CraftingReagentSlot_11 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_11 	
55 	CraftingReagentSlot_12 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_12 	
56 	CraftingReagentSlot_13 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_13 	
57 	CraftingReagentSlot_14 	ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_14 	
Example: Missing Diplomat's Pauldrons from Heroic Deadmines.
 "|cff0070dd|Hitem:63470::::::::53:257::2:1:4198:2:28:1199:9:35:::::|h[Missing Diplomat's Pauldrons]|h|r"
 15: 2 -- numModifiers
 16: 28 -- modifierType1: CONTENT_TUNING_ID
 17: 1199 -- modifierValue1
 18: 9 -- modifierType2: TIMEWALKER_LEVEL
 19: 35 -- modifierValue2
Example: Mythic Keystone when seen in CHAT_MSG_LOOT. See also keystoneLink.
 "|cffa335ee|Hitem:180653::::::::60:250::::6:17:381:18:13:19:9:20:7:21:124:22:121:::::|h[Mythic Keystone]|h|r"
 14: 6 -- numModifiers
 15: 17 -- modifierType1: CHALLENGE_MAP_CHALLENGE_MODE_ID
 16: 381 -- modifierValue1: Spires of Ascension
 17: 18 -- modifierType2: CHALLENGE_KEYSTONE_LEVEL
 18: 13 -- modifierValue2
 19: 19 -- modifierType3: CHALLENGE_KEYSTONE_AFFIX_ID_1
 20: 9 -- modifierValue3: Tyrannical
 21: 20 -- modifierType4: CHALLENGE_KEYSTONE_AFFIX_ID_2
 22: 7 -- modifierValue4: Bolstering
 23: 21 -- modifierType5: CHALLENGE_KEYSTONE_AFFIX_ID_3
 24: 124 -- modifierValue5: Storming
 25: 22 -- modifierType6: CHALLENGE_KEYSTONE_AFFIX_ID_4
 26: 121 -- modifierValue6: Prideful
===Relic Bonus IDs===
Example: T'uure, Beacon of the Naaru with Artifact Relics as Gems.
"|cffe6cc80|Hitem:128825::140844:140839:152044::::53:257::9:2:739:1522:2:8:749:24:1:3:3520:1472:3337:3:3520:1472:3337:3:3610:1472:3528::|h[T'uure, Beacon of the Naaru]|h|r"
 0: item
 1: 128825 -- itemID
 2: -- enchantID
 3: 140844 -- gemID1: Archaic Nathrezim Keepsake
 4: 140839 -- gemID2: Parasitic Spore
 5: 152044 -- gemID3: Spark of Everburning Light
 6: -- gemID4
 7: -- suffixID
 8: -- uniqueID
 9: 53 	 -- linkLevel
10: 257 -- specializationID: Holy
11: -- modifiersMask 
12: 9 -- itemContext: Scenario: Normal
13: 2 	 -- numBonusIDs
14: 739 -- bonusID1
15: 1522 -- bonusID2
16: 2 -- numModifiers
17: 8 -- modifierType1: ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID
18: 749 -- modifierValue1: ArtifactAppearanceID
19: 24 -- modifierType2: ITEM_MODIFIER_ARTIFACT_TIER
20: 1 -- modifierValue2
21: 3 -- relic1NumBonusIDs
22: 3520 -- relic1BonusID1: Raid Finder
23: 1472 -- relic1BonusID2: Increase iLevel
24: 3337 -- relic1BonusID3: Titanforged
25: 3 -- relic2NumBonusIDs
26: 3520 -- relic2BonusID1
27: 1472 -- relic2BonusID2
28: 3337 -- relic2BonusID3
29: 3 -- relic3NumBonusIDs
30: 3610 -- relic3BonusID1
31: 1472 -- relic3BonusID2
32: 3528 -- relic3BonusID3
33: -- crafterGUID
34: -- extraEnchantID
===Crafter GUID===
Unit GUID of the player who crafted the item. For example a Lesser Magic Wand.
 "|cff1eff00|Hitem:11287::::::::36:103::::1:28:1418::::Player-3299-0050F7FB:|h[Lesser Magic Wand]|h|r"
===Extra Enchant IDs===
For example an item with the Nitro Boosts engineering tinker.
 "|cff1eff00|Hitem:173341::::::::53:257::11:1:6707:2:9:51:28:1318:::::4223|h[Cord of Uncertain Devotion]|h|r"
===Other details===
* Any Transmogrification info is not supplied to item links.
* Item links obtained from the Void Storage will give a generic () link which only contain the itemID, linkLevel and specializationID since all modifications will have been removed.
==Examples==
 /run SendChatMessage("\124cffffffff\124Hitem:6948::::::::54:257:::::::::\124h[Hearthstone]\124h\124r")
: The first number is the ItemID for a Hearthstone. The next 7 values are empty, which tells the client it has no enchants, gems and extra stats. The 9th number means that the link originated from a level 54 character. The 10th number 257 (SpecializationID) specifies the character to be a Holy Priest.
 /run SendChatMessage("\124cffa335ee\124Hitem:18832:2564:::::::::::::::::\124h[Brutality Blade]\124h\124r")
: The first number is the ItemID for a Brutality Blade. The second number (EnchantId) denotes that it is enchanted with +3 agility.
===Inspecting links===
You can inspect a hyperlink from the in-game chat window.
 /dump "[Red Winter Hat]"
 > "|cff1eff00|Hitem:21524::::::::53:257::::::::|h[Red Winter Hat]|h|r"
From an addon, when clicking a hyperlink in-game.
hooksecurefunc("SetItemRef", function(link, text)
	print(text:gsub("|", "||"))
	for k, v in pairs({strsplit(":", link)}) do
		if #v > 0 then
			print(k-1, v)
		end
	end
end)
"|cff1eff00|Hitem:21524::::::::53:257::::::::|h[Red Winter Hat]|h|r"
0, "item"
1, "21524"
9, "53"
10, "257
==Patch changes==