WebSocket
Endpoint
Bu endpoint, WebSocket üzerinden gerçek zamanlı pazar yeri teklifleri akışı sağlar. Bağlanıp abone olduktan sonra, desteklenen pazar yerlerinde tespit edilen canlı ürün listelemelerini alırsınız.
Kimlik Doğrulama
Bağlanırken API anahtarınızı apiKey sorgu parametresi olarak ekleyin.
wss://marketplaceapi.steamapis.com/ws/v2/offers?apiKey=YourSecretAPIKey
websocketAccess etkinleştirilmiş olmalıdır. Bu iznin anahtarınıza eklenmesi gerekiyorsa destek ekibiyle iletişime geçin.Sıkıştırma
Sunucu, permessage-deflate WebSocket uzantısını gerektirir. Çoğu istemci bunu otomatik olarak müzakere eder. Sizinki etmiyorsa, bağlanırken uzantı başlığını açıkça gönderin:
Sec-WebSocket-Extensions: permessage-deflate
Bu olmadan el sıkışma 400 Bad Request hatası ve permessage-deflate is required mesajıyla başarısız olur.
Limitler
Her API anahtarı 2 eşzamanlı bağlantı ile sınırlıdır. Üçüncü bir bağlantı açılması, 1008 (Policy Violation) kodu ile kapatılır.
Abonelik mesajı
Bağlandıktan sonra, belirli pazar yerlerine ve oyunlara abone olmak için bir JSON mesajı gönderin. subscribeTo ve games zorunludur; newFloorOnly isteğe bağlıdır.
all veya -1 kullanın. Büyük/küçük harf duyarsızdır. Tam liste için Referans sayfasına bakın.all veya -1 kullanın. Büyük/küçük harf duyarsızdır. Tam liste için Referans sayfasına bakın.false. true olduğunda, yalnızca kendi pazar yerinde kendi ürünü için yeni en düşük fiyatı belirleyen teklifler gönderilir.Abonelik örneği
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');
Onay mesajı
Başarılı bir abonelikte bir onay mesajı alırsınız.
{
"type": "subscribed",
"marketplaces": ["Buff163", "CSFloat", "SkinPort"],
"games": ["CS2", "Dota2"],
"message": "Successfully subscribed to offer stream"
}
Hata mesajları
Hatalar, type: "error" içeren JSON mesajları olarak döndürülür.
| Hata | Neden |
|---|---|
Invalid API key | Sağlanan API anahtarı bulunamadı |
WebSocket access not enabled | API anahtarınızda websocketAccess izni yok |
API key disabled | Hesabınız devre dışı bırakılmış |
subscribeTo field is required | Abonelik mesajınızda subscribeTo alanı eksik |
games field is required | Abonelik mesajınızda games alanı eksik |
Unknown marketplace: X | Geçersiz pazar yeri adı veya kimliği |
Unknown game: X | Geçersiz oyun adı veya kimliği |