Getting Started

Migration Guide

Migrate from SteamApis v1 to v2. Updated authentication, response envelope, Steam user field names, and a much larger endpoint surface.

Migrating from v1 to v2

This guide covers the changes you need to make when upgrading from SteamApis API v1 to v2. v2 adds new categories (Account, Market Data), reorganizes Steam user and app endpoints, and introduces a standardized response envelope.

Authentication

v1 passed the API key as a query parameter, typically api_key or key:

GET /steam/profile/76561198038526790?api_key=YOUR_KEY

v2 passes the API key via the x-api-key request header (recommended) or the ?key= query parameter (still supported):

index.js
fetch('https://api.steamapis.com/v2/steam/users/76561198038526790', {
  headers: { 'x-api-key': 'YOUR_KEY' }
})

Using the header is recommended because the key does not appear in server logs, browser history, or referrer headers.

Response envelope

v1 endpoints returned data directly at the top level:

{
  "steamid": "76561198038526790",
  "personaname": "PEPZ"
}

v2 wraps every response in a standard envelope. The exact shape depends on whether the endpoint returns a single resource or a paginated list:

Single resource
{
  "success": true,
  "result": {
    "steamID": "76561198038526790",
    "nickname": "PEPZ",
    ...
  }
}

To access the data, use data.result instead of data directly.

Errors use the same envelope with success: false:

Error
{
  "success": false,
  "error": { "name": "NOT_FOUND", "message": "User not found", "meta": {} }
}

To access the data, use data.result (single resource) or data.results (list) instead of reading the top level directly.

A few early v2 endpoint docs still reference a legacy response key instead of result. Treat those as drift — the authoritative envelope is { success, result } / { success, results, cursor, hasMore }.

Steam user field renames

The v2 user endpoint returns the same underlying Steam data, but with camelCase field names and a nested avatar object. If you parse user responses, update your types:

v1 fieldv2 fieldNotes
GET /steam/profile/{SteamID64}Profile endpoint removed, use the endpoint below for user data.
GET /steam/profile/{SteamID64}/summaryGET /v2/steam/users/{steamid}Renamed. Uses official Steam API data.
(Badges in summary response)GET /v2/steam/users/{steamid}/badgesBadges split into dedicated endpoint.
GET /steam/profile/{SteamID64}/gamesGET /v2/steam/users/{steamid}/gamesPath changed.
GET /steam/profile/vanity/{VanityName}GET /v2/steam/users/vanity/{vanityUrl}Path changed.
GET /v2/steam/users/{steamid}/bansNew endpoint.
GET /market/appsGET /v2/steam/appsPath changed, now includes all Steam apps found in the store.
GET /market/app/{appId}GET /v2/steam/apps/{appId}Path changed, now includes more details about the app.
GET /v2/steam/apps/{appId}/changesNew app changelog endpoint.
GET /market/items/{appId}GET /v2/steam/items?appId=Path changed, now paginated and using appId parameter is optional.
GET /market/item/{appId}/{marketHashName}GET /v2/steam/items/{appId}/{marketHashName}Path changed.
GET /v2/steam/items/{itemId}/metaNew item metadata endpoint.
GET /v2/steam/items/{itemId}/histogramsNew item histogram endpoint.
GET /v2/steam/items/{itemId}/pricesNew item price history endpoint.
GET /v2/steam/items/{itemId}/changesNew item changelog endpoint.

Steam ID parameter

In v1, user endpoints required a SteamID64 (17-digit numeric ID). In v2, the steamid parameter accepts multiple Steam ID formats — SteamID64, SteamID, SteamID3 — and the API resolves them automatically.

Endpoint mapping

The following tables map every v1 endpoint to its v2 equivalent, grouped by category. Entries marked "New in v2" have no v1 predecessor.

Account

v1 Endpointv2 EndpointNotes
GET /v2/accountNew in v2. Returns balance, overage config, and per-product subscription status with cycle-to-date usage.

Steam users

v1 Endpointv2 EndpointNotes
GET /steam/profile/{SteamID64}GET /v2/steam/users/{steamid}Renamed. Field names also changed — see Steam user field renames.
GET /steam/profile/{SteamID64}/summaryGET /v2/steam/users/{steamid} + GET /v2/steam/users/{steamid}/badgesSummary split. Core profile merges into the user endpoint; badges have their own endpoint.
GET /steam/profile/{SteamID64}/gamesGET /v2/steam/users/{steamid}/gamesPath changed.
GET /steam/profile/vanity/{VanityName}GET /v2/steam/users/vanity/{vanityUrl}Path changed.
GET /steam/inventory/{SteamID64}/{AppId}/{ContextId}GET /v2/steam/users/{steamid}/inventory/{appId}/{contextId}Path changed (inventory endpoint remains in Steam users).
GET /v2/steam/users/{steamid}/bansNew in v2. Dedicated ban-status endpoint.
GET /v2/steam/users/{steamid}/recently-playedNew in v2. Games played in the last two weeks with per-platform minutes.
GET /v2/steam/users/{steamid}/achievements/{appid}New in v2. Per-game achievements with unlock timestamps.
GET /v2/steam/users/{steamid}/stats/{appid}New in v2. Per-game stats + unlocked achievements.
GET /v2/steam/users/{steamid}/friendsNew in v2. Friends list with friendship timestamps.
GET /v2/steam/users/{steamid}/groupsNew in v2. Groups the user belongs to.

Steam apps

v1 Endpointv2 EndpointNotes
GET /market/appsGET /v2/steam/appsRenamed & reshaped. Returns a paginated list of every tracked Steam app. Use cursor to paginate.
GET /market/app/{AppID}GET /v2/steam/apps/{appId}Renamed. App details (name, type, last modified, etc.).
GET /market/statsNo direct replacement. The closest equivalents are GET /v2/steam/apps/player-counts and GET /v2/steam/apps/store/rankings/{type}.
GET /v2/steam/apps/player-countsNew in v2. Current concurrent player counts per app, paginated.
GET /v2/steam/apps/{appId}/changesNew in v2. App changelog.
GET /v2/steam/apps/{appId}/global-achievementsNew in v2. Global unlock percentage per achievement.
GET /v2/steam/apps/{appId}/newsNew in v2. Aggregated community announcements and external press coverage.
GET /v2/steam/apps/{appId}/schemaNew in v2. Full stats/achievements schema (display names, descriptions, icon URLs).
GET /v2/steam/apps/store/rankings/{type}New in v2. Steam Store ranking lists (popularnew, topsellers, popularcomingsoon, specials, trendingfree, mostplayed).

Steam items

v1 Endpointv2 EndpointNotes
GET /market/items/{AppID}GET /v2/steam/itemsRenamed & reshaped. Paginated list of every tracked item; filter by appId.
GET /market/item/{AppID}/{MarketHashName}GET /v2/steam/items/{appId}/{marketHashName}Path changed. Single item with current price/volume.
GET /market/items/{AppID}/histogramsGET /v2/steam/items/{itemId}/histogramsPath changed. Now keyed by internal itemId instead of appId.
GET /market/items/{AppID}/descriptionsDropped. Steam descriptions no longer exposed as a standalone endpoint.
GET /market/items/cardsDropped. No direct replacement.
GET /market/items/{AppID}/assetinfosDropped.
GET /v2/steam/items/{itemId}/metaNew in v2. Item metadata (type, tags, description).
GET /v2/steam/items/{itemId}/pricesNew in v2. Item price history time series.
GET /v2/steam/items/{itemId}/changesNew in v2. Item changelog.
GET /v2/steam/items/{appId}/listNew in v2. Pre-generated bulk price list for an entire app's market (302-redirects to a CDN file).

Images

v1 Endpointv2 EndpointNotes
GET /image/item/{AppID}/{MarketHashName}Dropped. Construct Steam CDN URLs directly from the item's hash fields.
GET /image/items/{AppID}Dropped.

Market Data (third-party marketplaces)

Market Data is a new category in v2. It aggregates pricing, offers, sales, and order-book data from 26 third-party marketplaces — functionality that did not exist in v1.

Market Data endpoints are hosted at https://marketplaceapi.steamapis.com/ — a different base URL than the main API (https://api.steamapis.com/).

In addition to the REST endpoints below, v2 also exposes a real-time WebSocket offer stream:

v1 Endpointv2 EndpointProtocolNotes
wss://marketplaceapi.steamapis.com/ws/v2/offersWebSocketNew in v2. Pushes individual marketplace listings as they're detected.
v1 Endpointv2 EndpointNotes
GET /v2/marketplacesNew in v2. List of supported marketplaces.
GET /v2/itemsNew in v2. Single item across marketplaces.
GET /v2/items/searchNew in v2. Search items by name.
GET /v2/items/compareNew in v2. Compare an item across marketplaces.
GET /v2/buy-ordersNew in v2.
GET /v2/price-historyNew in v2. Price history time series.
GET /v2/salesNew in v2. Recent sales.

Summary of breaking changes

  1. Authentication method changed — move API key from query parameter to x-api-key header.
  2. Response envelope — all data is now inside a result or results field.
  3. Endpoint paths changed — all Steam user endpoints now use /v2/steam/users/ prefix.
  4. Summary endpoint split — profile data and badges are now separate endpoints.
  5. Error format changed — errors return { "success": false, "error": { "name": "...", "message": "...", "meta": ... } }.