Steam Store API
Free Steam Store API with no key: featured games, store categories, app details, prices and discounts. Undocumented but widely used. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the Steam Store API?
The Steam Store API is a free, key-free set of endpoints exposing the Steam storefront — featured games, category listings, app details, pricing and current discounts. It is undocumented but publicly accessible and widely used.
Valve has never officially documented these storefront endpoints, but they are public, stable in practice, and used by a great many price trackers and game discovery sites.
Two quirks catch people out. Prices are returned in the smallest currency unit — 1999 means $19.99 — and the appdetails endpoint wraps its response in an object keyed by the app id, with a `success` boolean you must check before reading data.
Quick facts
- Base URL
https://store.steampowered.com/api- Authentication
- No API key for storefront endpoints. The separate Steam Web API for user data requires a key.
- Rate limit
- Roughly 200 requests per 5 minutes per IP, unofficially.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Steam Store API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Fetch featured Steam store categories
GET https://store.steampowered.com/api/featuredcategories
curl 'https://store.steampowered.com/api/featuredcategories'const res = await fetch("https://store.steampowered.com/api/featuredcategories");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://store.steampowered.com/api/featuredcategories", timeout=20)
res.raise_for_status()
print(res.json()){
"0": {
"id": "cat_spotlight",
"name": "Spotlights",
"items": [
{
"name": "MIDWEEK DEAL",
"header_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/spotlights/ddee97d8b10a01365d7a5171/8be87ae3167023d698eb4fc86db7fbdd6b5e61f5/vertical_capsule_english.jpg?t=1786741468",
"body": "Offer ends %1$s.",
"url": "https://store.steampowered.com/sale/UkrainianGamesFestival2026"
}
]
},
"1": {
"id": "cat_spotlight",
"name": "Spotlights",
"items": [
{
"name": "MIDWEEK DEAL",
"header_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/spotlights/b41636b73d6e372dc05c4fa2/a538222528202d5bb5904b1c9960d3f12aa85cbc/vertical_capsule_english.jpg?t=1786999201",
"body": "Offer ends %1$s.",
"url": "https://store.steampowered.com/app/1672970"
}
]
},
"2": {
"id": "cat_spotlight",
"name": "Spotlights",
"items": [
{
"name": "FRANCHISE SALE",
"header_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/spotlights/6c18ba696d274e4431ebf741/088ed9ed77553b1fe7dd6e63922ff7aa65ed3c26/vertical_capsule_english.jpg?t=1786392299",
"body": "Offer ends %1$s.",
"url": "https://store.steampowered.com/sale/MafiaFranchiseSale26"
}
]
},
"3": {
"id": "cat_spotlight",
"name": "Spotlights",
"items": [
{
"name": "FRANCHISE SALE",
"header_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/spotlights/38d4b6efa1be437d36b24848/Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
featuredcategories | path | Optional | Featured and specials categories. featuredcategories |
appdetails?appids= | integer | Optional | Full details for one or more apps. appdetails?appids=730 |
cc | string | Optional | Country code, which changes currency and pricing. us |
l | string | Optional | Language for descriptions. english |
Response fields
<category>.id / namestring- Category identifier and display name.
<category>.itemsarray- Games in that category.
items[].namestring- Game title.
items[].final_priceinteger- Price in the smallest currency unit — 1999 means $19.99.
items[].discount_percentinteger- Current discount percentage.
items[].header_imagestring- Store header image URL.
(appdetails) successboolean- Whether data exists for that app id — check it first.
What you can build with the Steam Store API
- Build a game price tracker or deal alert service
- Display current Steam sales on a gaming site
- Look up game metadata, screenshots and requirements
- Compare regional pricing using the cc parameter
Common errors and how to fix them
Prices look 100x too large
Prices are in the smallest currency unit.
Fix: Divide by 100 — final_price of 1999 is $19.99.
success: false on appdetails
The app id does not exist or is region-restricted.
Fix: Always check the success boolean before reading the data object.
429
Unofficial rate limit hit.
Fix: Roughly 200 requests per 5 minutes; cache aggressively since these endpoints are undocumented and unsupported.
Steam Store API — frequently asked questions
Is there an official Steam store API?
Not officially documented. These storefront endpoints are public and widely used, but Valve does not document or support them, so treat them as best-effort.
Why are the prices so large?
They are in the smallest currency unit. A final_price of 1999 means $19.99 — divide by 100.
Can I get prices in another currency?
Yes, pass the `cc` country code parameter, which changes both the currency and the regional pricing.
Do I need an API key?
Not for storefront data. The separate Steam Web API, which covers user profiles and game libraries, does require a key.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Discount Calculator
Work out the final sale price and money saved from any discount percentage, including stacked double discounts like an extra 10% off an already reduced price.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
Steam Store is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.