# How can I see the gem value of an item that I do not own?

I can see how many gems an item in my inventory converts to when I turn it into gems. But is there any way to know how many gems I would get for an item I do not own?

## 3 Answers

A simple search in google would direct you to the "Gems by Game" section of the Steam Trading Card Wiki.

You can both find the value of the cards theirselves and the craftable items (Emoticons, Backgrounds). Additionally the needed amount of gems to craft a booster pack is also displayed.

Keep in mind, that the entries in the wikis aren't displayed dynamically, means that some values might be not up to date. Furthermore I assume that there are many games missing, but the list is very long though.

Very interesting is following, what I copied & pasted from the source above:

Assuming that `n = # cards in set`, `c = value of single card`, `g = value of emoticon/background`, and `b = gems to craft booster`, any one of the four can be calculated if any two other values are known. This doesn't hold true for every game, but is accurate for the vast majority:

`n = 6000/b`

`n = 2g/c`

`c = bg/3000`

`c = 2g/n`

`g = 3000c/b`

`g = n * c/2`

`b = 6000/n`

`b = g/3000c`

• Have you checked this to make sure this is correct information? Nov 6, 2015 at 11:54
• Please read the post: `This doesn't hold true for every game, but is accurate for the vast majority` Nov 6, 2015 at 11:55
• Haven't come across that site yet. Searched for tags like "steam", "gem", "value", "list", "item". If there is no way to determine the exact gem value of a specific card then this answer is probably the closest I can get. I leave I accept it in a view days since I am really looking for exact number Nov 6, 2015 at 12:03
• @MennoGouw Its a good question. I knew the site but through your question I read the content closlier and came across the formulas which is very helpful imo :D I for myself didnt find any mistakes in the formulas except mistakes from rounding Nov 6, 2015 at 12:11

# tl;dr

Here's a bookmarklet that you can run on the Community Market page for an item to get its gem value:

``````javascript:var a=g_rgAssets[Object.keys(g_rgAssets)[0]],b=a[Object.keys(a)[0]],c=b[Object.keys(b)[0]],gem_action=c.owner_actions&&c.owner_actions.filter(function(d){return/javascript:GetGooValue/.test(d.link)})[0];if(gem_action){var matches=gem_action.link.match(/javascript:GetGooValue\( '%contextid%', '%assetid%', (\d+), (\d+), \d+ \)/);fetch("https://steamcommunity.com/auction/ajaxgetgoovalueforitemtype/?appid="+matches[1]+"&item_type="+matches[2]+"&border_color=0").then(function(d){return d.json()}).then(function(d){alert("This is worth "+d.goo_value+" gems")})["catch"](function(d){return console.error(d)})}else alert("This is worth 0 gems");
``````

When you're on the Community Market page for an item, paste this into the URL bar (you might have to retype the `javascript:` portion). You can also save it as a bookmark, which you can just click on to run.

# Explanation

As noted by Wok, you can get the number of gems an item is worth by passing the appropriate `appid` and `item_type` to this endpoint:

https://steamcommunity.com/auction/ajaxgetgoovalueforitemtype/?appid=219890&item_type=16

which in this example corresponds to my favorite profile background from the game Antichamber and returns this response:

``````{"success":1,"goo_value":"80"}
``````

But as noted by Wok and an answer to a similar question, `item_type` isn't exactly predictable and depends on the game and the relative amounts of item types that they have.

## How does the Steam inventory webpage figure out what `item_type` is?

It's pretty gross.

When you load your inventory, the webpage makes a few requests (one for each context in that inventory) to get a list of inventory items. These JSON responses contain the `item_type` for each item, but in the worst format possible.

Each inventory object in the `descriptions` array of the JSON response contains an `owner_actions` array, where each object has a `link` and a `name`. `item_type` is stored in that link.

Sticking to the Antichamber profile background example, here's the link with its `item_type`:

``````"owner_actions":
[
{
"link": "javascript:GetGooValue( '%contextid%', '%assetid%', 219890, 16, 0 )",
"name": "Turn into Gems..."
}
]
``````

The click events on the Steam inventory page parse out that JavaScript URL to figure out what event handler to run. The function `GetGooValue()` doesn't actually exist.

In case you didn't see it, the third argument to this nonexistent function provides `appid` and the fourth argument provides `item_type`.

vomits

## What about items not in your inventory?

The previous web requests depend on a user's inventory, which isn't helpful if you want to find the gem value of some arbitrary item.

However, Community Market pages have a global variable called `g_rgAssets`. Here's a truncated sample for our example:

``````{
"753":
{
"6":
{
"6298989828":
{
... [truncated]
"owner_actions":
[
{
"link": "javascript:GetGooValue( '%contextid%', '%assetid%', 219890, 16, 0 )",
"name": "Turn into Gems..."
}
],
... [truncated]
``````

So there's a sole child called the inventory ID, which itself has a sole child corresponding to the context ID. That in turn has a sole child called something (I don't know what it corresponds to), and inside of that is the same `owner_actions` we saw earlier (among other things).

From there it's pretty easy to find that link, parse out the `appid` and `item_type`, and make the web request to find the gem value of that item.

Something to watch out for: you can't just select the link of the first object in `owner_actions`:

• There can be more than one action in there, such as the "View badge progress" action for trading cards.
• The "Turn into Gems..." action doesn't show up on items that don't have gem values.
• Sometimes `g_rgAssets` doesn't have `owner_actions` at all.

The bookmarklet above has some rudimentary handling for these cases.

1. Find the `appID` of the game, e.g. `239350` for Spelunky.

1. Check the gem amount corresponding to a normal card (`item_type=2`) at:

https://steamcommunity.com/auction/ajaxgetgoovalueforitemtype/?appid=239350&item_type=2

1. Check the gem amount corresponding to a foil card (`item_type=2`, `border_color=1`) at:

https://steamcommunity.com/auction/ajaxgetgoovalueforitemtype/?appid=239350&item_type=2&border_color=1

1. Check the gem amount corresponding to an emoticon (`item_type=10`) at:

https://steamcommunity.com/auction/ajaxgetgoovalueforitemtype/?appid=239350&item_type=10

1. Check the gem amount corresponding to a profile background (`item_type=17`) at:

https://steamcommunity.com/auction/ajaxgetgoovalueforitemtype/?appid=239350&item_type=17

Caveat: `item_type` numbering can differ from one game to another:

• the index of the first card is always 2,
• the index of the first emoticon can change depending on the number of cards,
• the index of the first profile background can change depending on the number of cards, the number of emoticons, and the existence of gaps in the numbering for unknown reasons.

So, adjust accordingly and check the other values if you have any doubt.

• It seems like the index of the first card isn't always 2 for all games, for example if you run the javascript script provided by @jkmartindale here you'll see that a profile background has an item_type of 2. Jul 24, 2023 at 22:46