Dados de Mercado

WebSocket

Conecte-se ao fluxo de ofertas do marketplace em tempo real via WebSocket para receber listagens de itens de 26 marketplaces.

Endpoint

Este endpoint fornece um fluxo em tempo real de ofertas de marketplace via WebSocket. Uma vez conectado e inscrito, você recebe listagens de itens ao vivo conforme são detectadas nos marketplaces suportados.

WSS   wss://marketplaceapi.steamapis.com/ws/v2/offers

Autenticação

Inclua sua chave de API como parâmetro de consulta apiKey ao conectar.

wss://marketplaceapi.steamapis.com/ws/v2/offers?apiKey=YourSecretAPIKey
Sua chave de API deve ter websocketAccess habilitado. Entre em contato com o suporte se precisar dessa permissão adicionada à sua chave.

Compressão

O servidor requer a extensão WebSocket permessage-deflate. A maioria dos clientes negocia isso automaticamente. Se o seu não negociar, envie o cabeçalho da extensão explicitamente ao conectar:

Sec-WebSocket-Extensions: permessage-deflate

Sem ele, o handshake falha com 400 Bad Request e a mensagem permessage-deflate is required.

Limites

Cada chave de API está limitada a 2 conexões simultâneas. Abrir uma terceira conexão a fecha com o código 1008 (Policy Violation).

Mensagem de inscrição

Após conectar, envie uma mensagem JSON para se inscrever em marketplaces e jogos específicos. subscribeTo e games são obrigatórios; newFloorOnly é opcional.

subscribeTo
string|string[]
Array de nomes de marketplace ou IDs numéricos para se inscrever. Use all ou -1 para se inscrever em todos os marketplaces. Não diferencia maiúsculas de minúsculas. Veja Referência para a lista completa.
games
string[]
Array de nomes de jogos ou Steam App IDs para se inscrever. Use all ou -1 para se inscrever em todos os jogos. Não diferencia maiúsculas de minúsculas. Veja Referência para a lista completa.
newFloorOnly
boolean
Opcional, padrão false. Quando true, apenas ofertas que definem um novo preço mínimo para seu item em seu marketplace são enviadas.

Exemplo de inscrição

index.js
const ws = new WebSocket('wss://marketplaceapi.steamapis.com/ws/v2/offers?apiKey=YOUR_API_KEY');

ws.onopen = () => {
  ws.send(JSON.stringify({
    subscribeTo: ['Buff163', 'CSFloat', 'SkinPort'],
    games: ['CS2', 'Dota2'],
    newFloorOnly: true
  }));
};

ws.onmessage = (event) => {
  const message = JSON.parse(event.data);

  if (message.type === 'subscribed') {
    console.log('Subscribed to:', message.marketplaces, message.games);
  } else if (message.type === 'offer') {
    console.log('New offer:', message.data.name, '$' + message.data.priceUSD);
  } else if (message.type === 'error') {
    console.error('Error:', message.error);
  }
};

ws.onerror = (error) => console.error('WebSocket error:', error);
ws.onclose = () => console.log('Disconnected');

Mensagem de confirmação

Após uma inscrição bem-sucedida, você recebe uma mensagem de confirmação.

message.json
{
  "type": "subscribed",
  "marketplaces": ["Buff163", "CSFloat", "SkinPort"],
  "games": ["CS2", "Dota2"],
  "message": "Successfully subscribed to offer stream"
}

Mensagens de erro

Erros são retornados como mensagens JSON com type: "error".

ErroCausa
Invalid API keyA chave de API fornecida não foi encontrada
WebSocket access not enabledSua chave de API não possui permissão websocketAccess
API key disabledSua conta foi desativada
subscribeTo field is requiredFalta o campo subscribeTo na sua mensagem de inscrição
games field is requiredFalta o campo games na sua mensagem de inscrição
Unknown marketplace: XNome ou ID de marketplace inválido
Unknown game: XNome ou ID de jogo inválido