Primeiros Passos

Guia de Migração

Migre do SteamApis v1 para v2. Autenticação atualizada, envelope de resposta, nomes de campos do usuário Steam e uma superfície de endpoints bem maior.

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):

index.js
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:

Recurso único
{
  "success": true,
  "result": { "steamID": "76561198038526790", "nickname": "PEPZ" }
}
Lista paginada
{
  "success": true,
  "results": [ { /* ... */ } ],
  "cursor": "6789abcdef012345",
  "hasMore": true
}

Os erros usam o mesmo envelope com success: false:

Erro
{
  "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.

Algumas docs iniciais de endpoints v2 ainda referenciam a chave legada 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 v1Campo v2Observações
steamidsteamIDRenomeado.
personanamenicknameRenomeado.
profileurlurlRenomeado.
personastatepersonaStatecamelCase.
personastateflagspersonaStateFlagscamelCase.
primaryclanidprimaryGroupIDRenomeado.
timecreatedcreatedTimestampRenomeado.
loccountrycodecountryCodeRenomeado.
commentpermission (number)allowsComments (boolean)Mudança de tipo.
communityvisibilitystate (enum)visible (boolean)Reduzido para um boolean.
avatar, avatarmedium, avatarfull, avatarhashavatar.small, avatar.medium, avatar.large, avatar.hashCampos planos movidos para um objeto avatar aninhado.
profilestate—Removido.
—lastLogOffTimestampNovo.

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 v1Endpoint v2Observações
—GET /v2/accountNovo 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 v1Endpoint v2Observaçõ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}/summaryGET /v2/steam/users/{steamid} + GET /v2/steam/users/{steamid}/badgesSummary dividido. O perfil principal se funde com o endpoint de usuário; badges têm seu próprio endpoint.
GET /steam/profile/{SteamID64}/gamesGET /v2/steam/users/{steamid}/gamesCaminho 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}/bansNovo na v2. Endpoint dedicado de status de bans.
—GET /v2/steam/users/{steamid}/recently-playedNovo 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}/friendsNovo na v2. Lista de amigos com timestamps de amizade.
—GET /v2/steam/users/{steamid}/groupsNovo na v2. Grupos aos quais o usuário pertence.

Apps Steam

Endpoint v1Endpoint v2Observações
GET /market/appsGET /v2/steam/appsRenomeado 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-countsNovo na v2. Contagem de jogadores simultâneos atual por app, paginado.
—GET /v2/steam/apps/{appId}/changesNovo na v2. Changelog da app.
—GET /v2/steam/apps/{appId}/global-achievementsNovo na v2. Percentagem global de desbloqueio por conquista.
—GET /v2/steam/apps/{appId}/newsNovo na v2. Community announcements e cobertura de imprensa externa agregadas.
—GET /v2/steam/apps/{appId}/schemaNovo 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 v1Endpoint v2Observações
GET /market/items/{AppID}GET /v2/steam/itemsRenomeado 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}/histogramsGET /v2/steam/items/{itemId}/histogramsCaminho 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}/metaNovo na v2. Metadados do item (tipo, tags, descrição).
—GET /v2/steam/items/{itemId}/pricesNovo na v2. Série temporal do histórico de preço do item.
—GET /v2/steam/items/{itemId}/changesNovo na v2. Changelog do item.
—GET /v2/steam/items/{appId}/listNovo 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 v1Endpoint v2Observaçõ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.

Os endpoints de Market Data são hospedados em 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 v1Endpoint v2ProtocoloObservações
—wss://marketplaceapi.steamapis.com/ws/v2/offersWebSocketNovo na v2. Empurra listagens individuais de marketplace assim que são detectadas.
Endpoint v1Endpoint v2Observações
—GET /v2/marketplacesNovo na v2. Lista de marketplaces suportados.
—GET /v2/itemsNovo na v2. Item único em múltiplos marketplaces.
—GET /v2/items/searchNovo na v2. Pesquisar itens por nome.
—GET /v2/items/compareNovo na v2. Comparar um item entre marketplaces.
—GET /v2/buy-ordersNovo na v2.
—GET /v2/price-historyNovo na v2. Série temporal de histórico de preços.
—GET /v2/salesNovo na v2. Vendas recentes.

Resumo das breaking changes

  1. Autenticação — mova a API key do query parameter api_key para o header x-api-key (ou deixe como ?key= se o acesso ao header não for prático).
  2. Envelope de resposta — desempacote data.result (recurso único) ou data.results (lista) em vez de ler o nível superior. Respostas de lista paginadas incluem também cursor e hasMore.
  3. Campos do usuário Steam — renomeie steamid → steamID, personaname → nickname, profileurl → url e outros (veja a tabela completa acima). Campos planos de avatar movidos para um objeto avatar aninhado.
  4. 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/.
  5. Entrada de Steam ID — v2 aceita múltiplos formatos de Steam ID, não apenas SteamID64.
  6. 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.
  7. Formato de erro — erros retornam { "success": false, "error": { "name": "...", "message": "...", "meta": ... } } em vez de variar por endpoint.