Created
February 3, 2021 20:30
-
-
Save petersvp/270f7d5d7d548448f4897586a0d389c0 to your computer and use it in GitHub Desktop.
Batch Query Steam Keys for activation on SteamWorks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 1. GO TO SteamWorks, into the Query CD Key page, here: https://partner.steamgames.com/querycdkey/ | |
// 2. Fill in your keys below: | |
// 3. Go to DevTools, Console, and paste all of this here there! | |
// 4. Report will be printed to the console. | |
keys = ` | |
0ZQR4-N0H7K-AEJ77 | |
D05V5-P47AP-4ET3Q | |
GGJZ5-ZN0BR-F74C5 | |
FWZP4-2IXHB-GYV3A | |
` | |
var keylist = keys.split("\n"); | |
keylist.forEach(key => { | |
if(key.length<17) return; | |
function reqListener () { | |
let body = this.responseText; | |
let result = body.split('<h2>Activation Details</h2>')[1]; | |
if (!result && !err) { | |
console.log('Error quering CD Key ' + key); | |
} | |
result = result.split('</table>')[0]; | |
result = result.match(/<td>.*<\/td>/g); | |
result = result.map(function (line) { | |
return line.replace(/<[^>]*>/g, ''); | |
}); | |
let line = [key, (result[0] === 'Activated') ? '"' + result[1] + '"' : result[0]].join('\t'); | |
console.log(line); | |
} | |
var oReq = new XMLHttpRequest(); | |
oReq.addEventListener("load", reqListener); | |
oReq.open("GET", "https://partner.steamgames.com/querycdkey/cdkey?cdkey="+key+"&method=Query"); | |
oReq.send(); | |
}); |
Author
petersvp
commented
Mar 20, 2025
via email
I never got any rate limit errors using this code to check 500+ keys batches
…On Thu, Mar 20, 2025 at 4:58 PM hydrok ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
If you need to add a delay for the purpose of rate limiting each request,
try this code. I wrapped the original code in a setTimeout() and var
interval is the amount of time (in ms) to delay.
keys = `
0ZQR4-N0H7K-AEJ77
D05V5-P47AP-4ET3Q
GGJZ5-ZN0BR-F74C5
FWZP4-2IXHB-GYV3A
`
var keylist = keys.split("\n");
var interval = 1000;
keylist.forEach((key, i) => {
setTimeout(() => {
if (key.length < 17)
return;
function reqListener() {
let body = this.responseText;
let result = body.split('<h2>Activation Details</h2>')[1];
if (!result && !err) {
console.log('Error quering CD Key ' + key);
}
result = result.split('</table>')[0];
result = result.match(/<td>.*<\/td>/g);
result = result.map(function (line) {
return line.replace(/<[^>]*>/g, '');
});
let line = [key, (result[0] === 'Activated') ? '"' + result[1] + '"' : result[0]].join('\t');
console.log(line);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "https://partner.steamgames.com/querycdkey/cdkey?cdkey=" + key + "&method=Query");
oReq.send();
}, i * interval);
});
—
Reply to this email directly, view it on GitHub
<https://gist.github.com/petersvp/270f7d5d7d548448f4897586a0d389c0#gistcomment-5504602>
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJLYFZMAWRHDEGJBATVW2T2VLJPTBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTANZXGM4DEOBQU52HE2LHM5SXFJTDOJSWC5DF>
.
You are receiving this email because you authored the thread.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>
.
Getting errors expecting expecting semicolon before error.
What am I doing wrong?
EDIT: Clear console totally before running the script. Yes, this includes deleting the precurors "allow pasting" and all that.
What am I doing wrong?
Not telling us the exact and whole error
Doesn't matter what the issue is because I posted the solution for the issue I was running into. TLDR; ensure the console is completely empty before running the script.
Just wanted to say thank you, I've used your code to make one that returns a list of not yet used keys.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment