Steam hub

Steam App API

One public app id in, the app record out: price, genres, tags, platforms, media, requirements and review summary.

GET /v1/steam/apps/{appId}

1 credit Failed requests are free A not-found answer is still charged

About this endpoint

GET /v1/steam/apps/{appId} takes an app id from a store URL, for example 620 for Portal 2 or 570 for Dota 2, and returns data.app with the app's details, media and review scores. That includes name, type, url, developers, publishers, genres, categories, tags, languages, platforms, releaseDate, price, screenshots, trailers, purchaseOptions, reviewSummary, antiCheat, aiDisclosure and the developer's links.

country (default US) sets the price currency and language (default en) sets the text. data.incomplete names any group that is temporarily unavailable, such as store_item or tag_names, so you can tell a partial record from a complete one. Branch on data.lookupStatus: found fills data.app, not_found returns it as null. An app that exists but is not sold in the requested country answers not_found with data.unavailableInCountry true and its name.

Steam App API FAQ

How do I fetch a Steam app by id?

Call GET /v1/steam/apps/{appId} with your Social Fetch key in x-api-key. Use the number from the store URL, for example 620, or pass the full store URL. Read data.lookupStatus, then data.app.

What is in the app record?

data.app has name, type, url, developers, publishers, genres, categories, tags, languages, platforms, release date, price, screenshots, trailers, purchase options, review summaries, anti-cheat, the AI disclosure and the developer's links. Trailer entries carry HLS and DASH stream URLs for the full videos and MP4 and WebM URLs for the short silent previews. Fields not available for an app are null or empty.

Can I get the price in another country?

Pass an ISO 3166-1 alpha-2 country code, for example country=de or country=jp. data.country echoes the country used. The price is in that store's currency, with final and initial amounts in hundredths of the currency unit (divide by 100, also for yen and won) and formatted strings when available. If the app exists but is not sold there, data.lookupStatus is not_found, data.unavailableInCountry is true and data.name carries the app's name.

What does data.incomplete mean?

store_item means tags, languages, trailers, screenshots, compatibility ratings, purchase options, review summaries, anti-cheat, AI disclosure or links are temporarily unavailable. tag_names means the tag ids are present but their names are not. An empty array means the record is complete.

How many credits does an app lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.