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

2

9

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?

Walls answered 5/11, 2015 at 11:31 Comment(1)
How do you know it's different? It seems like to me the site might just have a cached version, which you're calling the "market value", and that is not updated as frequently as you're checking. The version you see personally is the actual real current value, as you're checking in real-time on steam, I presume. I make these assumptions because I don't see why they would have distinct "player values".Cinematograph
A
12

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))
Alpinist answered 28/3, 2016 at 11:49 Comment(0)
P
1

Aperçu has the solution, and rightfully, the accepted answer. However, if you want something that returns results much quicker there is a Chrome extension (Stmy's CS:GO Market Details) that does exactly this. It returns the float value (along with all other item information) automatically for the entire page. It also allows for sorting multiple pages of results based on different criteria. I've used a couple of other solutions, but you are forced to click for each value and/or copy/paste to a 3rd party website.

Passade answered 30/11, 2016 at 23:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.