---
title: "Search the Steam games dataset"
method: GET
path: "/datasets/steam-games/search"
tags: ["Datasets"]
---

# Search the Steam games dataset

`GET /datasets/steam-games/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/datasets/steam-games/search`
- Auth: API key in header `x-api-key`

Searches enriched public Steam catalog records stored in a search index. price_tier enum: `free`, `under5`, `5to15`, `15to30`, `30to60`, `over60`. review_tier enum: `overwhelmingly_positive`, `very_positive`, `positive`, `mostly_positive`, `mixed`, `mostly_negative`, `negative`, `very_negative`, `overwhelmingly_negative`, `insufficient`. Sort enum: `relevance`, `owners_desc`, `reviews_desc`, `review_score_desc`, `ccu_desc`, `metacritic_desc`, `price_asc`, `price_desc`, `release_desc`, `release_asc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).

## Query parameters

- `q` string
- `type` string
- `developer` string
- `publisher` string
- `genre` string
- `category` string
- `tag` string
- `price_tier` 'free' | 'under5' | '5to15' | '15to30' | '30to60' | 'over60'
- `review_tier` 'overwhelmingly_positive' | 'very_positive' | 'positive' | 'mostly_positive' | 'mixed' | 'mostly_negative' | 'negative' | 'very_negative' | 'overwhelmingly_negative' | 'insufficient'
- `owners_bucket` string
- `run_id` string
- `is_free` boolean
- `windows` boolean
- `mac` boolean
- `linux` boolean
- `on_sale` boolean
- `min_price_cents` integer
- `max_price_cents` integer
- `min_owners` integer
- `min_positive` integer
- `min_total_reviews` integer
- `min_review_score` number
- `min_metacritic` integer
- `min_ccu` integer
- `min_release_year` integer
- `max_release_year` integer
- `sort` 'relevance' | 'owners_desc' | 'reviews_desc' | 'review_score_desc' | 'ccu_desc' | 'metacritic_desc' | 'price_asc' | 'price_desc' | 'release_desc' | 'release_asc'
- `page` integer
- `page_size` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- DatasetsSteamGamesSearchResponseDoc
  - `code` integer
  - `data` DatasetsSteamSearchResponse
    - `dataset` string
    - `items` EsSteamGameRecord[]
      - `achievements_count` integer: Number of achievements the game has on Steam.
      - `appid` integer: Steam application ID of the game.
      - `available` boolean: Available is false when the storefront returned no appdetails on the most recent crawl (delisted, region-locked, or a fetch miss). The record is kept regardless.
      - `average_2weeks_min` integer: Average playtime per owner over the last two weeks, in minutes.
      - `average_forever_min` integer: Average total playtime per owner, in minutes.
      - `background` string: URL of the background image on the game's store page.
      - `categories` string[]: Store categories the game is listed under, such as `Single-player`.
      - `ccu` integer: Peak number of concurrent players on the previous day.
      - `coming_soon` boolean: Whether the game is not yet released.
      - `content_descriptor_ids` integer[]: Steam content descriptor IDs that flag mature content on the game.
      - `controller_support` string: Level of controller support Steam lists for the game.
      - `crawled_at` string: Time the record was last collected, in UTC (RFC 3339).
      - `developer` string: Main developer of the game.
      - `developers` string[]: All developers credited on the store page.
      - `discount_pct` integer: Current discount as a percentage, 0 when not on sale.
      - `dlc_count` integer: Number of DLC items listed for the game.
      - `genres` string[]: Genres the game is listed under, such as `Action` or `Indie`.
      - `has_owner_estimate` boolean: HasOwnerEstimate is false for the floor bucket ("0 .. 20,000") / no SteamSpy estimate — i.e. the deep tail past the owner-differentiated head. Callers must not treat floor-bucket owners as a real count.
      - `header_image` string: URL of the header image on the game's store page.
      - `initial_price_cents` integer: Price before any discount, in cents.
      - `is_free` boolean: Whether the game is free to play or has a price of 0.
      - `language_count` integer: Number of languages the game supports.
      - `languages` string[]: Languages the game supports.
      - `median_2weeks_min` integer: Median playtime per owner over the last two weeks, in minutes.
      - `median_forever_min` integer: Median total playtime per owner, in minutes.
      - `metacritic` integer: Metacritic score of the game, from 0 to 100.
      - `movie_count` integer: Number of trailers and videos on the store page.
      - `name` string: Game title as shown on Steam.
      - `negative` integer: Number of negative user reviews.
      - `owners_bucket` string: Estimated range of owners as a text label, such as `1,000,000 .. 2,000,000`.
      - `owners_max` integer: Upper end of the estimated owner range.
      - `owners_midpoint` integer: Middle of the estimated owner range.
      - `owners_min` integer: Lower end of the estimated owner range.
      - `package_count` integer: Number of store packages the game is sold in.
      - `platform_linux` boolean: Whether the game supports Linux.
      - `platform_mac` boolean: Whether the game supports macOS.
      - `platform_windows` boolean: Whether the game supports Windows.
      - `positive` integer: Number of positive user reviews.
      - `price_cents` integer: Current price, in cents.
      - `price_tier` string: Price band: `free`, `under5`, `5to15`, `15to30`, `30to60` or `over60`.
      - `primary_tag` string: Most heavily weighted community tag of the game.
      - `publisher` string: Main publisher of the game.
      - `publishers` string[]: All publishers credited on the store page.
      - `recommendations` integer: Number of user recommendations Steam reports for the game.
      - `release_date` string: Release date in YYYY-MM-DD format. Empty when Steam gives only a year or quarter.
      - `release_year` integer: Year the game was or will be released.
      - `required_age` integer: Minimum age set on the store page.
      - `review_score` number: Share of reviews that are positive, from 0 to 1.
      - `review_tier` string: Review band such as `very_positive`, `mixed` or `insufficient`, following Steam's rating labels.
      - `run_id` string: Identifier of the collection run that produced this record.
      - `schema_version` integer: Version of the record format.
      - `screenshot_count` integer: Number of screenshots on the store page.
      - `seed_rank` integer: Popularity rank when the game was collected, where 0 is the most popular. Games outside the popularity list carry values of 1,000,000 or more.
      - `short_description` string: v3 richer-record fields (expanded appFilters). Descriptions/creators/media counts/languages/content flags from the full storefront appdetails set.
      - `tag_ids` integer[]: Steam IDs of the community tags, in the same order as the tags.
      - `tag_schema_version` integer: Version of the community-tag data on this record.
      - `tags` string[]: Tags is the weighted community-tag taxonomy (Roguelike/Metroidvania/Cozy...), ordered most-weighted first — the crowd tags appdetails genres omit. Populated by a separate tag-enrichment pass, not the main crawl. TagIDs is the parallel raw id list; PrimaryTag is Tags[0].
      - `tags_enriched_at` string: Time the community tags were last added to this record.
      - `total_reviews` integer: Total number of user reviews, positive plus negative.
      - `type` string: Store item type, such as `game`, `dlc` or `demo`.
      - `website` string: URL of the game's own website.
    - `page` integer
    - `page_size` integer
    - `sort` string
    - `total` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
