WebSocket
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.
Autenticação
Inclua sua chave de API como parâmetro de consulta apiKey ao conectar.
wss://marketplaceapi.steamapis.com/ws/v2/offers?apiKey=YourSecretAPIKey
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.
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.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.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
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.
{
"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".
| Erro | Causa |
|---|---|
Invalid API key | A chave de API fornecida não foi encontrada |
WebSocket access not enabled | Sua chave de API não possui permissão websocketAccess |
API key disabled | Sua conta foi desativada |
subscribeTo field is required | Falta o campo subscribeTo na sua mensagem de inscrição |
games field is required | Falta o campo games na sua mensagem de inscrição |
Unknown marketplace: X | Nome ou ID de marketplace inválido |
Unknown game: X | Nome ou ID de jogo inválido |