Guia de Migração
Migrando da v1 para v2
Este guia cobre as mudanças que você precisa fazer ao atualizar da API v1 para v2 do SteamApis. A v2 adiciona novas categorias (Conta, Market Data), reorganiza os endpoints de usuários Steam e de apps, e introduz um envelope de resposta padronizado.
Autenticação
v1 passava a API key como query parameter, normalmente api_key ou key:
GET /steam/profile/76561198038526790?api_key=YOUR_KEY
v2 passa a API key pelo header x-api-key (recomendado) ou como query parameter ?key= (ainda suportado):
fetch('https://api.steamapis.com/v2/steam/users/76561198038526790', {
headers: { 'x-api-key': 'YOUR_KEY' }
})
Usar o header é recomendado porque a key não aparece em logs de servidor, histórico do browser nem em headers de referer.
Envelope de resposta
v1 retornava os dados diretamente no nível superior:
{
"steamid": "76561198038526790",
"personaname": "PEPZ"
}
v2 envolve cada resposta em um envelope padrão. A forma exata depende se o endpoint retorna um único recurso ou uma lista paginada:
{
"success": true,
"result": { "steamID": "76561198038526790", "nickname": "PEPZ" }
}
{
"success": true,
"results": [ { /* ... */ } ],
"cursor": "6789abcdef012345",
"hasMore": true
}
Os erros usam o mesmo envelope com success: false:
{
"success": false,
"error": { "name": "NOT_FOUND", "message": "User not found", "meta": {} }
}
Para acessar os dados, use data.result (recurso único) ou data.results (lista) em vez de ler o nível superior diretamente.
response em vez de result. Trate isso como drift — o envelope oficial é { success, result } / { success, results, cursor, hasMore }.Renomeação de campos do usuário Steam
O endpoint de usuário v2 retorna os mesmos dados subjacentes da Steam, mas com nomes de campos em camelCase e um objeto avatar aninhado. Se você parseia respostas de usuário, atualize seus tipos:
| Campo v1 | Campo v2 | Observações |
|---|---|---|
steamid | steamID | Renomeado. |
personaname | nickname | Renomeado. |
profileurl | url | Renomeado. |
personastate | personaState | camelCase. |
personastateflags | personaStateFlags | camelCase. |
primaryclanid | primaryGroupID | Renomeado. |
timecreated | createdTimestamp | Renomeado. |
loccountrycode | countryCode | Renomeado. |
commentpermission (number) | allowsComments (boolean) | Mudança de tipo. |
communityvisibilitystate (enum) | visible (boolean) | Reduzido para um boolean. |
avatar, avatarmedium, avatarfull, avatarhash | avatar.small, avatar.medium, avatar.large, avatar.hash | Campos planos movidos para um objeto avatar aninhado. |
profilestate | — | Removido. |
| — | lastLogOffTimestamp | Novo. |
Parâmetro Steam ID
Na v1, os endpoints de usuário exigiam um SteamID64 (ID numérico de 17 dígitos). Na v2, o parâmetro steamid aceita múltiplos formatos de Steam ID — SteamID64, SteamID, SteamID3 — e a API resolve automaticamente.
Mapeamento de endpoints
As tabelas a seguir mapeiam cada endpoint v1 para seu equivalente v2, agrupadas por categoria. Entradas marcadas "Novo na v2" não têm predecessor em v1.
Conta
| Endpoint v1 | Endpoint v2 | Observações |
|---|---|---|
| — | GET /v2/account | Novo na v2. Retorna saldo, configuração de overage e status de subscrição por produto com o uso no ciclo atual. |
Usuários Steam
| Endpoint v1 | Endpoint v2 | Observações |
|---|---|---|
GET /steam/profile/{SteamID64} | GET /v2/steam/users/{steamid} | Renomeado. Os nomes dos campos também mudaram — veja Renomeação de campos do usuário Steam. |
GET /steam/profile/{SteamID64}/summary | GET /v2/steam/users/{steamid} + GET /v2/steam/users/{steamid}/badges | Summary dividido. O perfil principal se funde com o endpoint de usuário; badges têm seu próprio endpoint. |
GET /steam/profile/{SteamID64}/games | GET /v2/steam/users/{steamid}/games | Caminho alterado. |
GET /steam/profile/vanity/{VanityName} | GET /v2/steam/users/vanity/{vanityUrl} | Caminho alterado. |
GET /steam/inventory/{SteamID64}/{AppId}/{ContextId} | GET /v2/steam/users/{steamid}/inventory/{appId}/{contextId} | Caminho alterado (endpoint de inventory continua em Steam users). |
| — | GET /v2/steam/users/{steamid}/bans | Novo na v2. Endpoint dedicado de status de bans. |
| — | GET /v2/steam/users/{steamid}/recently-played | Novo na v2. Jogos jogados nas últimas duas semanas com minutos por plataforma. |
| — | GET /v2/steam/users/{steamid}/achievements/{appid} | Novo na v2. Conquistas por jogo com timestamps de desbloqueio. |
| — | GET /v2/steam/users/{steamid}/stats/{appid} | Novo na v2. Stats por jogo + conquistas desbloqueadas. |
| — | GET /v2/steam/users/{steamid}/friends | Novo na v2. Lista de amigos com timestamps de amizade. |
| — | GET /v2/steam/users/{steamid}/groups | Novo na v2. Grupos aos quais o usuário pertence. |
Apps Steam
| Endpoint v1 | Endpoint v2 | Observações |
|---|---|---|
GET /market/apps | GET /v2/steam/apps | Renomeado e remodelado. Retorna uma lista paginada de cada app Steam rastreada. Use cursor para paginar. |
GET /market/app/{AppID} | GET /v2/steam/apps/{appId} | Renomeado. Detalhes da app (nome, tipo, last modified etc.). |
GET /market/stats | — | Sem substituto direto. Os equivalentes mais próximos são GET /v2/steam/apps/player-counts e GET /v2/steam/apps/store/rankings/{type}. |
| — | GET /v2/steam/apps/player-counts | Novo na v2. Contagem de jogadores simultâneos atual por app, paginado. |
| — | GET /v2/steam/apps/{appId}/changes | Novo na v2. Changelog da app. |
| — | GET /v2/steam/apps/{appId}/global-achievements | Novo na v2. Percentagem global de desbloqueio por conquista. |
| — | GET /v2/steam/apps/{appId}/news | Novo na v2. Community announcements e cobertura de imprensa externa agregadas. |
| — | GET /v2/steam/apps/{appId}/schema | Novo na v2. Schema completo de stats/conquistas (nomes de exibição, descrições, URLs de ícones). |
| — | GET /v2/steam/apps/store/rankings/{type} | Novo na v2. Listas de rankings da Steam Store (popularnew, topsellers, popularcomingsoon, specials, trendingfree, mostplayed). |
Itens Steam
| Endpoint v1 | Endpoint v2 | Observações |
|---|---|---|
GET /market/items/{AppID} | GET /v2/steam/items | Renomeado e remodelado. Lista paginada de cada item rastreado; filtre por appId. |
GET /market/item/{AppID}/{MarketHashName} | GET /v2/steam/items/{appId}/{marketHashName} | Caminho alterado. Item único com preço/volume atual. |
GET /market/items/{AppID}/histograms | GET /v2/steam/items/{itemId}/histograms | Caminho alterado. Agora indexado pelo itemId interno em vez de appId. |
GET /market/items/{AppID}/descriptions | — | Removido. Descrições Steam deixaram de ser expostas como endpoint separado. |
GET /market/items/cards | — | Removido. Sem substituto direto. |
GET /market/items/{AppID}/assetinfos | — | Removido. |
| — | GET /v2/steam/items/{itemId}/meta | Novo na v2. Metadados do item (tipo, tags, descrição). |
| — | GET /v2/steam/items/{itemId}/prices | Novo na v2. Série temporal do histórico de preço do item. |
| — | GET /v2/steam/items/{itemId}/changes | Novo na v2. Changelog do item. |
| — | GET /v2/steam/items/{appId}/list | Novo na v2. Lista de preços pré-gerada em massa para todo o mercado de uma app (redirect 302 para um ficheiro no CDN). |
Imagens
| Endpoint v1 | Endpoint v2 | Observações |
|---|---|---|
GET /image/item/{AppID}/{MarketHashName} | — | Removido. Construa URLs do CDN da Steam diretamente a partir dos campos de hash do item. |
GET /image/items/{AppID} | — | Removido. |
Market Data (marketplaces de terceiros)
Market Data é uma nova categoria na v2. Agrega dados de preço, ofertas, vendas e order book de 26 marketplaces de terceiros — funcionalidade que não existia na v1.
https://marketplaceapi.steamapis.com/ — uma base URL diferente da API principal (https://api.steamapis.com/).Além dos endpoints REST abaixo, a v2 também expõe um stream de ofertas via WebSocket em tempo real:
| Endpoint v1 | Endpoint v2 | Protocolo | Observações |
|---|---|---|---|
| — | wss://marketplaceapi.steamapis.com/ws/v2/offers | WebSocket | Novo na v2. Empurra listagens individuais de marketplace assim que são detectadas. |
| Endpoint v1 | Endpoint v2 | Observações |
|---|---|---|
| — | GET /v2/marketplaces | Novo na v2. Lista de marketplaces suportados. |
| — | GET /v2/items | Novo na v2. Item único em múltiplos marketplaces. |
| — | GET /v2/items/search | Novo na v2. Pesquisar itens por nome. |
| — | GET /v2/items/compare | Novo na v2. Comparar um item entre marketplaces. |
| — | GET /v2/buy-orders | Novo na v2. |
| — | GET /v2/price-history | Novo na v2. Série temporal de histórico de preços. |
| — | GET /v2/sales | Novo na v2. Vendas recentes. |
Resumo das breaking changes
- Autenticação — mova a API key do query parameter
api_keypara o headerx-api-key(ou deixe como?key=se o acesso ao header não for prático). - Envelope de resposta — desempacote
data.result(recurso único) oudata.results(lista) em vez de ler o nível superior. Respostas de lista paginadas incluem tambémcursorehasMore. - Campos do usuário Steam — renomeie
steamid→steamID,personaname→nickname,profileurl→urle outros (veja a tabela completa acima). Campos planos de avatar movidos para um objetoavataraninhado. - Caminhos de endpoints — endpoints de usuário Steam agora vivem em
/v2/steam/users/, endpoints de app em/v2/steam/apps/, endpoints de item em/v2/steam/items/. - Entrada de Steam ID — v2 aceita múltiplos formatos de Steam ID, não apenas SteamID64.
- Novos endpoints — Conta, bans, recently-played, achievements, stats, friends, groups, player-counts, global-achievements, news, schema, store rankings, lista de itens e a categoria Market Data inteira.
- Formato de erro — erros retornam
{ "success": false, "error": { "name": "...", "message": "...", "meta": ... } }em vez de variar por endpoint.