Steam store search
Search the Steam store with its filters: keywords, sort, the store's lists (top sellers, global top sellers, new and trending, coming soon), specials, max price, tags, type, OS, language and feature category. Each result: app/bundle/package id, name, link, release date, review summary with positive percent and review count, price, original price, discount, platforms, tag ids and image. 50 a page; pass next_page back as page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
q | string | Keywords (optional when a filter, tags, type, category or specials is given). Example: portal |
sort | relevance | released | name | price_asc | price_desc | reviews | Sort order (default relevance). |
filter | topsellers | globaltopsellers | popularnew | comingsoon | popularcomingsoon | One of the store's lists. |
specials | string | 1 = only discounted items. |
max_price | string | free or the highest price in whole units of the currency. |
tags | string | Comma-separated tag ids that must all match, e.g. 492,19 (Indie, Action). |
type | games | software | dlc | demos | soundtracks | videos | tools | bundles | hardware | Item type. |
category | string | Comma-separated feature category ids, e.g. 2 single-player, 1 multi-player, 9 co-op, 28 controller support. |
os | string | Comma-separated: win, mac, linux. |
language | string | Supported language (Steam language name), e.g. english. |
hide_free | string | 1 = hide free-to-play. |
cc | string | Store country (two letters, default us): prices and availability for that country. |
l | string | Store language (Steam language name, default english), e.g. german, french, schinese, japanese. |
page | integer | Page number (default 1). Pass next_page back; null on the last page. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/steam/v1/search?q=portal" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/steam/v1/search",
params={"q": "portal"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/steam/v1/search");
url.searchParams.set("q", "portal");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).