SteamGifts Key Prices

A customizable userscript for SteamGifts that displays the lowest keyshop prices from GG.deals directly on giveaway listings.

📥 Installation

This is a userscript and requires a userscript manager extension to be installed and enabled in your browser. See GreasyFork's installation guide for instructions.

👉 Install userscript

🖱️First-time setup

  1. Confirm the script is installed and enabled. It should appear in your userscript manager's dashboard.
  2. Sign in at gg.deals/api and copy your key from the Get Your API Key section.
  3. Open steamgifts.com. A browser pop-up will appear. Paste your API key into it and confirm.
  4. ✅ You're all set. Prices load automatically next to each giveaway.
  5. Optional — open the script's menu from your userscript manager's toolbar icon to adjust:
    • Display Mode: AUTO (default, prices load automatically) or CLICK (prices load when you click 🔑)
    • Currency: any currency code, e.g. EUR or USD
    • Individual View / List View: where prices appear (both on by default)

❓ FAQ

Q: Will this slow down SteamGifts?
No — it's lightweight and uses caching to reduce API calls.

Q: Do I need an API key?
Yes. GG.deals now blocks page scraping (HTTP 403), so a free GG.deals API key is required. Set it from the userscript menu (🔑 API Key).

Q: Is it safe to use?
Yes — this script does not interact with your account or modify anything on SteamGifts' servers.

Q: Which price is shown in the giveaways?
The price shown is the cheapest one available in the Keyshops section for that game on GG.deals, regardless of DRM. This means there may be rare cases where the game's price in the Keyshops is higher than its price on Steam, or where the cheapest available DRM is not Steam (for example, Red Dead Redemption).

Q: Are the displayed prices always accurate?
Not necessarily. Prices and historical pricing information are retrieved from GG.deals and may occasionally be incorrect, outdated, or inconsistent. Always check the price manually on the relevant store before making a purchase. The displayed price should be treated as a reference only and not as a guarantee of the actual purchase price.


For more information, source code, and updates, visit the GitHub repository. If you have a GitHub account, I'd really appreciate it if you could ⭐ star the repository!

🚂 Train


View attached image.
View attached image.
1 week ago*

Comment has been collapsed.

Reserved

1 week ago
Permalink

Comment has been collapsed.

Looks quite useful. Thank you!

1 week ago
Permalink

Comment has been collapsed.

Doesn't GG link to grey sites?

Also, thanks for the train :)

1 week ago
Permalink

Comment has been collapsed.

The link itself always takes you to the GG.deals page for the game, where you can see both the prices from Official Stores and Keyshops and decide where you want to buy it.

However, the price displayed on the giveaway via the userscript is simply the cheapest price listed in the Keyshops section (aka grey sites).

And you're welcome for the train🤠

1 week ago
Permalink

Comment has been collapsed.

And so because it supports great sites, it’s pretty much against the rules of promoting it.
I’m not gonna be that guy to report it, I’ll let you decide what you want to do.

1 week ago
Permalink

Comment has been collapsed.

I understand the concern, but I think there’s a distinction between the userscript using GG.deals as a price-comparison service and the userscript actively promoting individual grey-market sites.

As I mentioned, the userscript currently supports GG.deals only and uses its API to retrieve the current pricing data. GG.deals is a price comparison and price tracking website for games, and the hyperlink shown by the userscript leads directly to the relevant GG.deals page. From there, users can see the different offers, including both Official Stores and Keyshops, and make their own decision about where they are comfortable purchasing from. The script doesn't redirect users to, recommend, or favour any particular seller.

The actual problem I was trying to solve is SteamGifts' current pricing system. The not bundled, bundled, and free categories are useful, but they don't really tell you what a particular bundled game is worth. There can be a substantial difference between the current prices of two games that are both simply marked as "bundled". I personally discover quite a few games through SteamGifts that I later buy, so having the current GG.deals price available saves me a lot of time when deciding whether something is worth picking up.

I've actually had this userscript running for over a year now and originally developed it purely for my own use. I only decided to share it because I thought other members might find it useful as well. There's no intention behind it to promote grey-market sellers or direct people towards any particular store. The cheapest Keyshop offer is simply the data returned by GG.deals, rather than a seller I've selected myself.

Reading through the SteamGifts Guidelines a couple of times now, I can't find anything that specifically prohibits using a price-comparison service like GG.deals or displaying pricing data retrieved from it. If I'm misunderstanding a particular rule, I'm perfectly happy to reconsider it. If a moderator points out which specific guideline the userscript violates, I'll respect that and remove it. There was never any malicious intent behind its development.

I've also updated the showcase and censored the individual shop names to avoid giving the impression that the userscript promotes particular sellers.

So, I don't really see the script as promoting grey sites. It's just using GG.deals to provide the current pricing information, and from there everyone can decide for themselves where they want to buy the game.

1 week ago*
Permalink

Comment has been collapsed.

I'm not against it, per se, but if it's bringing down prices based on grey markets, then it's not giving an official sale price.
It is therefore promoting prices that are not in line with official sales or sites, and in turn inviting people to visit and buy off grey sites.

That is where the problem lies. Just because you're supposed Intention isn't promotion of these sites, doesn't excuse the fact that you are in fact condoning it's use by using a site which does promote these grey sellers.

It's a great script for traders, but not so much for gifters.

But you do you.

I've removed my entry from your giveaway so we don't have to deal with each other.

1 week ago*
Permalink

Comment has been collapsed.

Very useful, thanks!

1 week ago
Permalink

Comment has been collapsed.

Thanks for the train, and the script. it's useful :)

1 week ago
Permalink

Comment has been collapsed.

I don't use this site, but respect to you for all the work you've done!

1 week ago
Permalink

Comment has been collapsed.

I take it regions of both Steamgifts/Steam and GG.deals have to match?

View attached image.
1 week ago
Permalink

Comment has been collapsed.

The Steamgifts/Steam Region shouldn't really matter.
Perhaps try to generate a new API key from GG.deals, reinstall the script (pasting the new key) and see if it works with the default "USD" setting.

1 week ago
Permalink

Comment has been collapsed.

Tried fresh install, changing APIs several times, changing the region on GG.deals, manually pasting the code and even switching to violentmonkey (I'm on tampermonkey) but to no avail. Checked the console and don't see any errors. Welp, maybe one day it'll fix itself somehow.

1 week ago
Permalink

Comment has been collapsed.

Ooh I love this. Thanks! It was easy to install and works super well.

1 week ago
Permalink

Comment has been collapsed.

This is neat.
I assume it is not possible to hide certain shops like Difmark or Wyrel when pulling the data?

1 week ago
Permalink

Comment has been collapsed.

Unfortunately, not in the current version.
But that’s a great idea, having more filtering options would definitely be useful. Thanks for the suggestion!

1 week ago
Permalink

Comment has been collapsed.

Idk know if that site can even be mentioned here. Grey key site names are usually taboo here and bannable. I got banned once because I mentioned 1 in a conversation.

1 week ago
Permalink

Comment has been collapsed.

scripted bump

1 week ago
Permalink

Comment has been collapsed.

Bump

1 week ago
Permalink

Comment has been collapsed.

have a bump

1 week ago
Permalink

Comment has been collapsed.

I'm not a fan of GG.deals. I'd be interested if the script could use IsThereAnyDeal pricing instead. Apparently it has an API.

1 week ago
Permalink

Comment has been collapsed.

I agree. After realizing that the price shown might be about gray sites, the current script seems a bit less useful.
But knowing what a game's worth vs. original price (sg points) is such a great info to have at your fingertips.

1 week ago
Permalink

Comment has been collapsed.

There's this but I haven't tested it and it is quite old

https://www.steamgifts.com/discussion/xsqEj/userscript-add-isthereanydeal-data-show-lowest-price-and-list-of-bundles-in-giveaways

If that doesn't work and there's interest, I have a massive script for steam that includes itad pricing and could probably extract just the itad stuff and hook it up to work on steam or sg ga's. Probably wouldn't have time to work on it until nov tho (I'm going to be traveling a bit this month). But if I manage any free time before my trip I will try to take a look

1 week ago*
Permalink

Comment has been collapsed.

Interesting, I didn't know about site before. I'll definitely look into it and see if I can implement a solution using their API when I have some free time.

It would probably require quite a bit of rewriting, so I can't promise anything yet, but it could be a good alternative. In the meantime, anyone who wants to experiment with it can always fork the repo and give it a try themselves.

1 week ago
Permalink

Comment has been collapsed.

This means there may be rare cases where the game's price in the Keyshops is higher than its price on Steam, or where the cheapest available DRM is not Steam (for example, Red Dead Redemption).

Does the script have (or are there plans to add) any options for filtering by shop or by drm type? For example, I generally configure my itad waitlist / searches so that only steam and gog drms are shown (I'm not a fan of egs / ea / activision / ms drms and would literally rather not use those even if the game is free on one of them). Likewise, some people mentioned not wanting to use grey sites....

Even if the api itself does not support filtering, seems like that kind of things would be relatively simple to do in the script provided the api response contains that data

1 week ago*
Permalink

Comment has been collapsed.

Unfortunately, I hit a bit of a roadblock when I tried to implement DRM filtering. It really doesn't seem too difficult when looking at the UI, but the API support is a different story.

Still, I'll try to look for a workaround and keep you updated if a new version becomes available. For now, though, this is the best we have 😐

1 week ago
Permalink

Comment has been collapsed.

Gotcha. Yeah, if api is missing data needed for filtering, I can understand where that would make the task significantly harder. I've only worked with itad api and am not familiar with gg one. In itad íirc there was something in the request params where store list could be passed. Don't recall if they had similar for drm type or not tho

1 week ago
Permalink

Comment has been collapsed.

Yup, I don't really want to go down the scraping road either, especially without an API, as it's against their ToS (and most other sites for that matter... fully understandably).

I'll check other alternatives and see what I can come up with. This discussion has actually given me more ideas to work with, so I'll keep looking into it and hopefully I'll have a better solution in a future version.

Thanks for everyone's participation!

1 week ago
Permalink

Comment has been collapsed.

Bump. Thanks for the train!

1 week ago
Permalink

Comment has been collapsed.

Bump!

1 week ago
Permalink

Comment has been collapsed.

Bump for the useful addon and train :)

1 week ago
Permalink

Comment has been collapsed.

Is the script getting confused here or is it one of the cases you mention in the FAQ? Can't have both at the same time, right?

Also, if you switch to EUR the '+15%' and 'more expensive' tags disappear and get replaced by '-67%'.
Both are reportedly at historical lows. 🤔

View attached image.
6 days ago
Permalink

Comment has been collapsed.

To be honest, I've mainly tested my region (EU) when looking at different giveaways. For the other currencies, I only checked a few general cases where it worked and assumed everything was fine. I didn't delve that deeply into it. But yes, the badges contradict each other. A price can't be both more expensive and at a historical low. This seems to be an odd edge case.

I've just pushed a new version (4.5) of the userscript where this particular giveaway is fixed, and I've also added a disclaimer to the description about the accuracy of the displayed prices. You'll need to reinstall the script to v4.5 using the same link from the "📥 Installation" section.

Thanks for reporting this and helping improve the script for everyone else as well. I really appreciate it!

View attached image.
6 days ago
Permalink

Comment has been collapsed.

I'm on EUR, too. Well, I am now. I only noticed the script has options for different currencies after seeing the case I reported and checking the script in Tampermonkey. 😄
I saw a few of these edge cases since installing the script but thought nothing of it. Today there were a couple more after the one in my post. Haven't noticed anything weird after the update yet.

6 days ago
Permalink

Comment has been collapsed.

bump, thanks for the nice userscript and also for the train :)!

I'm a huge fan of gg.deals, i think for me it is way better than isthereanydeal. Many people seem to favor ITA though. That' fine, but i disagree^^

6 days ago*
Permalink

Comment has been collapsed.

Bump

6 days ago
Permalink

Comment has been collapsed.

Bump

6 days ago
Permalink

Comment has been collapsed.

Bump

6 days ago
Permalink

Comment has been collapsed.

bump!

6 days ago
Permalink

Comment has been collapsed.

Bump!

6 days ago
Permalink

Comment has been collapsed.

Sign in through Steam to add a comment.