Steam App Lookup — Game Price, Requirements & Metadata API
Pricing
from $2.40 / 1,000 successful lookups
Steam App Lookup — Game Price, Requirements & Metadata API
Look up games and software on Steam by app ID against Valve's official Store API. Get current and list price, discount percentage, release date, developers, publishers, genres, categories, Metacritic score, review count, and platform support. Pay only for app IDs that resolve to a real listing.
Pricing
from $2.40 / 1,000 successful lookups
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Steam App Lookup
Look up any game or software title on Steam by app ID
against Valve's own official Store API (store.steampowered.com/api/appdetails) — price,
discount, release date, developers, publishers, genres, categories, Metacritic score,
review count, and platform support. No API key, no scraping the storefront pages — this
calls the same free, public JSON endpoint Valve exposes directly.
Features
- App ID or store URL input. Paste a bare app ID (
730) or a full store URL (https://store.steampowered.com/app/730/CounterStrike_2/) — either resolves the same way. - Full pricing detail. Current price, list price, currency, and discount percentage, correctly handling free-to-play titles.
- Rich metadata. Developers, publishers, genres, categories, release date, Metacritic score, total Steam recommendations, and supported platforms (Windows/Mac/Linux).
- Bulk-friendly filtering. Keyword include/exclude, a result cap, and a
testRunmode that processes only the first 5 items before a full run. - Pay only for hits. App IDs that don't resolve to a real listing cost nothing — see Pricing.
How to use Steam App Lookup — Game Price, Requirements & Metadata API
- In the Apify Console. Open the actor page and click Start — the
appIdsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~steam-app-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"appIds":["730"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"appIds": ["730"]}
One numeric Steam app ID per line, e.g. 730 (from a store.steampowered.com/app/730/... URL). Accepted formats: 730, https://store.steampowered.com/app/730/CounterStrike_2/.
{"appIds": ["730", "https://store.steampowered.com/app/1091500/Cyberpunk_2077/"],"testRun": false,"onlyFound": false,"columns": ["name", "appId", "priceFinal", "discountPercent", "genres", "metacriticScore"],"maxConcurrency": 5,"proxyConfiguration": { "useApifyProxy": true }}
appIds is a list of numeric Steam app IDs or full store URLs — one per line; a URL is
reduced to its numeric app ID automatically. Turn on testRun to process only the first 5
items before running the full list. onlyFound hides rows with no result (misses are
always free). includeKeywords / excludeKeywords filter by keyword, and maxResults
stops the run early. columns picks which fields appear in each row — all are included by
default.
Output
| query | found | status | name | appId | type | isFree | priceFinal | priceInitial | priceCurrency | discountPercent | releaseDate | developers | publishers | genres | categories | metacriticScore | recommendationsTotal | platforms | shortDescription | headerImage | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 730 | true | OK | Counter-Strike 2 | 730 | game | true | 0 | 0 | Aug 21, 2012 | ["Valve"] | ["Valve"] | ["Action","Free To Play"] | ["Multi-player","Cross-Platform Multiplayer","Steam Trading Cards","Steam Workshop","Steam Workshop","In-App Purchases","Adjustable Text Size","Camera Comfort","Color Alternatives","Custom Volume Controls","Playable without Timed Input","Stereo Sound","Surround Sound","Valve Anti-Cheat enabled","Stats","Remote Play on Phone","Remote Play on Tablet","Remote Play on TV","Steam Timeline"] | 5235552 | ["windows","linux"] | For over two decades, Counter-Strike has offered an elite competitive experience, one shaped by millions of players from across the globe. And now the next chapter in the CS story is about to begin. This is Counter-Strike 2. | https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/730/162664aa5da85f418105350c5d67ca565f6c3713/header.jpg?t=1784564069 | 2026-08-23T21:05:36.231Z |
{"query": "730","found": true,"status": "OK","name": "Counter-Strike 2","appId": 730,"type": "game","isFree": true,"priceFinal": 0,"priceInitial": null,"priceCurrency": null,"discountPercent": 0,"releaseDate": "21 Aug, 2012","developers": ["Valve"],"publishers": ["Valve"],"genres": ["Action", "Free to Play"],"categories": ["Multi-player", "Steam Achievements"],"metacriticScore": 83,"recommendationsTotal": 1500000,"platforms": ["windows", "mac", "linux"],"shortDescription": "For over two decades, Counter-Strike has offered an elite competitive experience.","headerImage": "https://cdn.akamai.steamstatic.com/steam/apps/730/header.jpg","scrapedAt": "2026-08-21T14:03:11.000Z"}
A row is only marked found: true — and only then billed — once the app ID resolves to a
real Steam listing (success: true in Valve's response). An app ID with no matching Steam
app comes back status: "NOT_FOUND"; a non-numeric input that isn't a valid app ID or store
URL comes back status: "BAD_FORMAT" — both are found: false and never charged.
Use cases
- Track price and discount changes on a watchlist of games ahead of or during a Steam sale.
- Pull metadata (genres, categories, developers) for a batch of titles to feed a game discovery or recommendation tool.
- Monitor Metacritic score and review-count trends for titles you're evaluating or tracking competitively.
- Verify platform support (Windows/Mac/Linux) across a list of games before recommending or bundling them.
- Enrich an existing catalog or spreadsheet of app IDs with current pricing and release data in bulk.
Pricing
$4 per 1,000 app IDs, plus a $0.005 start fee. Misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~steam-app-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"appIds":["730"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~steam-app-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"appIds":["730"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~steam-app-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"appIds":["{{app ID}}"]}, mapping the row's app ID into the appIds array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Steam Store API — App ID to Price, Genre, Reviews" — the agent will find and run this actor.
FAQ
What counts as "not found"? An app ID with no matching entry in Valve's appdetails
response (success: false or no data) — this can happen for delisted, region-restricted,
or invalid app IDs.
Can I paste a full store URL instead of a bare app ID? Yes — a URL like
https://store.steampowered.com/app/730/CounterStrike_2/ is reduced to its numeric app ID
(730) automatically before the lookup runs.
Why is priceInitial null for a free-to-play game? Free titles have no
price_overview block in Steam's API response — priceFinal is reported as 0 and
priceInitial/priceCurrency stay null since there's no list price to report.
Does discountPercent show 0 when a game isn't on sale? Yes — it defaults to 0
rather than null when there's no active discount, matching what Steam's own API returns.
What happens with a non-numeric input? Anything that isn't a numeric app ID (or doesn't
contain one in a URL) comes back as status: "BAD_FORMAT" and is never charged.
Does it require a Steam API key? No — appdetails is a free, public, unauthenticated
endpoint that Valve's own store pages use, so no key or login is needed.