How to get the float value of CS:GO market items?

user4588859 picture user4588859 · Nov 5, 2015 · Viewed 15.8k times · Source

Recently I discovered that you can check the float value of an item from the steam market by entering the inspect link on sites like csgo.exchange and csgozone.net.

After some research I figured out the syntax of an inspect link.

steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561197973845818A3130594988D7956282211490500705

A normal inspect link consists of the steamid of the owner and the assetid of the item

steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S<STEAM_ID>A<ASSET_ID>D7956282211490500705

Steam market item inspect link:

steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M322366017503471651A4084214062D7521609830474722133

With this information you can get the float value of the item. But there is a difference between inspect links from items in player inventories and inspect links from items on the steam market. An inspect link from the market contains the market listingid instead of the steamid of the owner.

How can I get the float value of the item with the information from the market inspect link?

Answer

Balthazar picture Balthazar · Mar 28, 2016

To complete a bit the answer, rather than only pointing to my npm module, the whole process of converting an inspect link to a float value is decomposed like this:

  • You need to get a SteamClient connected, for this, provide your login info. Note that you might have a delay of a few days before this (Steam security).
  • A successful authentication will mean that the SteamGameCoordinator will respond with a 4004 message type, basically retrieved by bitwising the header.msg with ~0x80000000.
  • After that, you can effectively send a CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest to the GC with 4 parameters: param_s, param_a, param_d, param_m that can be retrieved by decomposing the inspect link, in your case S: 76561197973845818, A: 3130594988 and D: 7956282211490500705, and pass 0 for M.
  • You will then receive a 9157 message that you can decode with CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse by creating a new Buffer of 4 bytes and writeUInt32LE the response.iteminfo.paintwear.

You now have the float, congratz!


csgo-float is abstracting everything and allow you to only have to provide your login infos, and sending your steam inspect link that will return a promise, making it easy:

client.requestFloat('S76561197973845818A3130594988D7956282211490500705')
  .then(floatValue => console.log(floatValue))
  .catch(err => console.log(err))