Catalog / Steam

Steam API

store.steampowered.com

Read-only access to public Steam Store search, application details, user reviews, and featured-category data. Responses are fetched live from Steam's public store endpoints.

  • games
  • steam
  • store
  • reviews
  • products
4 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the Steam API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Search live Steam products using Steam's query, platform, tag, category, price, and pagination filters.

Optional parameters 10

Steam platform filter, such as windows, mac, or linux.

Steam tag filter. Accepts Steam's tag query syntax.

Product search text.

Number of products to return.

Zero-based result offset.

Steam search sort key, such as relevance or released.

Steam category filter.

Steam response language.

Set to 1 to restrict results to specials.

Maximum price in the currency's minor unit.

View call pricing
cURL · Search products
curl --request GET --get 'https://api.agent-data.dev/store-steampowered-com/v1/search/products' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY"

Endpoints

Inputs and response fields for every endpoint in this API.

GETSearch products/v1/search/products

Search live Steam products using Steam's query, platform, tag, category, price, and pagination filters.

Input

osOptionalQuery · string | null

Steam platform filter, such as windows, mac, or linux.

Example: windows

tagsOptionalQuery · string | null

Steam tag filter. Accepts Steam's tag query syntax.

Example: 19

termOptionalQuery · string | null

Product search text.

Example: portal

countOptionalQuery · integer, min: 1, max: 100, default: 10

Number of products to return.

Example: 10

startOptionalQuery · integer, min: 0, default: 0

Zero-based result offset.

Example: 0

sort_byOptionalQuery · string | null

Steam search sort key, such as relevance or released.

Example: relevance

categoryOptionalQuery · string | null

Steam category filter.

Example: 998

languageOptionalQuery · string, default: english

Steam response language.

Example: english

specialsOptionalQuery · integer | null

Set to 1 to restrict results to specials.

Example: 1

max_priceOptionalQuery · integer, min: 0 | null

Maximum price in the currency's minor unit.

Example: 2000

Response

countinteger
startinteger
resultsobject[]
results[].urlstring
results[].namestring
results[].appidinteger
results[].price?string | null
results[].tag_ids?integer[]
results[].platforms?string[]
results[].price_cents?integer | null
results[].release_date?string | null
results[].review_summary?string | null
results[].discount_percent?integer | null
total_countinteger

Fields marked ? are optional.

GETApps by appid/v1/apps/{appid}

Get live public Steam metadata, descriptions, pricing, requirements, media, and release information for an app.

Input

appidRequiredPath · integer

Steam application ID.

Example: 620

countryOptionalQuery · string, default: us

Two-letter country code used for pricing and availability.

Example: us

Response

namestring
typestring
genres?object[]
genres[].idinteger | string
genres[].descriptionstring
is_freeboolean
platformsobject
categories?object[]
categories[].idinteger | string
categories[].descriptionstring
developers?string[]
metacritic?object | null
publishers?string[]
screenshots?object[]
screenshots[].idinteger
screenshots[].path_fullstring
screenshots[].path_thumbnailstring
steam_appidinteger
release_date?object
about_the_game?string, default:
price_overview?object
price_overview.finalinteger
price_overview.initialinteger
price_overview.currencystring
price_overview.final_formatted?string, default:
price_overview.discount_percentinteger
price_overview.initial_formatted?string, default:
pc_requirements?unknown
mac_requirements?unknown
short_description?string, default:
linux_requirements?unknown
detailed_description?string, default:

Fields marked ? are optional.

GETApps by appid reviews/v1/apps/{appid}/reviews

Get live Steam user reviews with Steam's cursor pagination and review filters.

Input

appidRequiredPath · integer

Steam application ID.

Example: 620

cursorOptionalQuery · string | null

Opaque Steam cursor returned by an earlier response.

filterOptionalQuery · string | null

Steam review filter, such as recent or updated.

Example: recent

languageOptionalQuery · string, default: all

Review language filter.

Example: all

day_rangeOptionalQuery · integer, min: 0 | null

Review age window in days; 0 means all time.

Example: 365

review_typeOptionalQuery · string | null

Steam review type filter.

Example: all

num_per_pageOptionalQuery · integer, min: 1, max: 100, default: 10

Number of reviews per response.

Example: 5

purchase_typeOptionalQuery · string, default: all

Steam purchase type filter.

Example: all

Response

cursorstring
reviewsobject[]
reviews[].author?object
reviews[].author.steamidstring
reviews[].author.num_reviews?integer | null
reviews[].author.personaname?string | null
reviews[].author.profile_url?string | null
reviews[].author.num_games_owned?integer | null
reviews[].author.playtime_forever?integer | null
reviews[].author.playtime_at_review?integer | null
reviews[].author.playtime_last_two_weeks?integer | null
reviews[].review?string, default:
reviews[].language?string, default:
reviews[].refunded?boolean | null
reviews[].voted_up?boolean, default: false
reviews[].votes_up?integer, default: 0
reviews[].votes_funny?integer, default: 0
reviews[].comment_count?integer, default: 0
reviews[].steam_purchase?boolean, default: false
reviews[].recommendationidstring
reviews[].received_for_free?boolean, default: false
reviews[].timestamp_created?integer, default: 0
reviews[].timestamp_updated?integer, default: 0
reviews[].weighted_vote_score?string, default:
reviews[].primarily_steam_deck?boolean | null
reviews[].written_during_early_access?boolean | null
query_summaryobject
query_summary.num_reviewsinteger
query_summary.review_scoreinteger
query_summary.total_reviewsinteger
query_summary.total_negativeinteger
query_summary.total_positiveinteger
query_summary.review_score_descstring

Fields marked ? are optional.

For the next page, pass next_cursor from the response as cursor. Leave it empty on the first call.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.