Skip to content

Events and Channels

Channels

Channel Scope Event types
deal.{region} API key with deals:read deal.created, deal.updated, deal.expired
price.{game_id}.{region} API key with pricing:read price.updated, offer.unavailable
wishlist.{user_id} owner only wishlist.updated, alert.triggered
notification.{user_id} owner only notification.created

Event envelope

{"type":"event","event_id":"evt_01J4R8Z7V1","channel":"deal.US","sequence":18402,"occurred_at":"2026-11-06T09:42:20Z","event_type":"deal.updated","data":{"id":"deal_01J4R8QW9N","game_id":"game_01J2M4T5K7HADES2","store_id":"store_steam","region":"US","price":{"amount":"20.99","currency":"USD"},"discount_percent":30,"deal_score":82}}

The event payload represents the post-change state. Clients must tolerate new optional fields and may fetch the REST resource when they need expanded data.

Protocol errors

Errors are messages, not necessarily socket closures. error includes code, message, request_id, and optional channel. Common codes: unauthenticated, forbidden_channel, invalid_message, subscription_limit, resume_unavailable, and rate_limited. The maximum is 50 channels per connection and 10 subscribe messages per minute.