SteamVault
Documentation menu

Filtering

All filters live on GET /games, as query parameters. This page explains how they work together; the reference lists every single one.

The basic rules

  • Filters stack. Every filter you add narrows the results further.
  • Lists are comma-separated. genres=accion,aventura, ids=730,570.
  • Ranges use min_ / max_. min_price_us=5&max_price_us=20. Either end is optional.
  • Booleans accept true / false (also 1 / 0).
  • Typos are caught. An unknown parameter returns a 422 with a suggestion:
{
  "error": "Validation Error",
  "message": "Some parameters are invalid",
  "errors": {
    "develper": ["The parameter 'develper' does not exist. Did you mean 'developer'?"]
  }
}

Tags, categories and genres

These are the most powerful filters, so they have a few extra options.

You want games that…Use
have all of these tagstags=Rol,Mundo abierto
have at least one of these tagssome_tags=Terror,Supervivencia
have none of these tagsexclude_tags=VR

The same three flavours exist for categories: categories, some_categories and exclude_categories.

Tag ranking

Steam orders every game's tags by how many players applied them — the first tag is the one that defines the game most. Add :N (exact position) or :N-M (range) to a tag to only match games where that tag ranks high:

GET /games?tags=Rol:1-3

means "Rol is one of this game's top 3 tags". That's how you tell a real RPG apart from a shooter with some RPG elements. Ranking works in tags, some_tags and exclude_tags.

Groups of tags

some_tags can also match whole groups. Wrap each group in parentheses:

GET /games?some_tags=(Rol:1-3,Buena trama),(Acción:1-2)

means "(an RPG with a good story) or (an action game)".

Names are in Spanish

Tag, category and genre names are stored as they appear in the Spanish Steam store (Mundo abierto, Un jugador, Rol). Matching ignores case and accents, so accion finds Acción.

Not sure of the exact name? Tags & categories lists every one of them, with how many games have it.

Prices

Prices are available for two Steam stores: Argentina (_ar) and the United States (_us).

  • Price always means the current price, with any active discount applied: min_price_us, max_price_us.
  • Initial price is the price before the discount: min_initial_price_us, max_initial_price_us.
  • Discount is the current discount, in %: min_discount_us=50.

Reviews

Review data comes in three time windows, so you can tell an all-time classic from a game that's having a good (or bad) moment:

WindowPrefixCovers
All timenone (or historical_)Every review ever written
Last monthlast_month_Reviews from the last month
Release windowrelease_window_Reviews from around the game's launch

Each window has the same filters: min_score / max_score, min_reviews / max_reviews, and the same for positive and negative reviews — for example last_month_min_reviews=1000 or release_window_min_score=90.

The score is the percentage of positive reviews (0–100). Pair a minimum score with a minimum number of reviews, or you'll get games with 100% from 3 reviews:

GET /games?min_score=85&min_total_reviews=500

Picking or hiding specific games

You want to…Use
Get exactly these gamesids=292030,1245620
Always include these games, even if they don't match the filtersinclude_appids=292030
Never return these games (e.g. ones the user already owns)exclude_appids=292030