Sync with Waxpeer session to auto-fill API key

How to use Socket.IO

wss://waxpeer.com/socket.io/?EIO=4&transport=websocket

How to use SocketIO

Socket.IO is a JavaScript library that enables real-time, bidirectional communication between the server and the client. This guide will walk you through the steps to integrate Waxpeer Socket.IO into your application.

Looking for peer-to-peer trade automation and confirmations? See the Trade WebSocket documentation . Socket.IO handles marketplace price feeds, account balance changes, and notification events.

Connection URL

Connect using standard Socket.IO client (v4 protocol) to:

wss://waxpeer.com/socket.io/?EIO=4&transport=websocket

Authentication

Authentication can be accomplished in two ways via connection headers:

  • API Key: Pass your Waxpeer API key as authorization header:
    authorization: YOUR_WAXPEER_API_KEY
  • Session Cookie: Pass the session cookie in the Cookie header:
    Cookie: _redis=s%3Ayour_session_cookie

Subscribing to Public Feeds

After establishing a connection, you can emit subscription commands to listen for specific game item events:

  • csgo, rust, tf2, dota2: Emits new, removed, and update events per listed item.
  • privat_sales or specific item_id: Listen to target item updates.
  • inspect: Listen to inspect link responses.

Example wire subscription messages:

42["sub",{"name":"csgo"}]
42["unsub",{"name":"csgo"}]

Supported User Events

When authenticated, the server will emit the following real-time user events:

  • payment: Incoming and outgoing balance transactions
  • notification: Site notifications, item confirmations, and trade alerts
  • change_user: Balance, KYC, and account status changes
  • connection: Linked third-party accounts (Discord, Steam)
  • steamTrade: Real-time buyer/seller trade lifecycle status updates

Game item event

Public stream for newly listed, updated, and removed items across supported games (CS:GO, Rust, TF2, Dota 2).

Event payload fields

NameTypeDescription
eventstringAction type: “new”, “removed”, or “update”
gamestringGame identifier: “csgo”, “rust”, “tf2”, or “dota2”
namestringFull market hash name of the item
pricenumberItem price in integer units (1000 = $1.00 USD)
item_idstringUnique item identifier in Waxpeer
floatnumberOPTIONAL. Float wear value (applicable to CS:GO items)
paint_indexnumberOPTIONAL. Paint seed / index (applicable to CS:GO items)
sellingbooleanOPTIONAL. Indicates whether the item is actively listed for sale
sticker_namesstring[]OPTIONAL. Array of applied sticker names
Example
{
  "event": "update",
  "game": "csgo",
  "name": "AWP | Gungnir (Well-Worn)",
  "float": 0.44339460134506226,
  "price": 7260000,
  "item_id": "34822680618",
  "paint_index": 756,
  "sticker_names": [
    "Sticker | keshandr (Foil) | Krakow 2017"
  ]
}

Change user

Private stream for user account balance updates, KYC verification status changes, and P2P cooldown timers.

User change parameters

NameTypeDescription
walletnumberOPTIONAL. Current wallet balance (1000 = $1.00 USD)
kyc_statusstringOPTIONAL. Verification status: “requested”, “approved”, etc.
no_p2p_untilstringOPTIONAL. ISO 8601 date-time until which P2P trading is restricted
failed_tradesnumberOPTIONAL. Lifetime count of failed trades
failed_rownumberOPTIONAL. Current consecutive streak of failed trades
success_tradesnumberOPTIONAL. Lifetime count of successful trades
Example
{
  "wallet": 10000,
  "kyc_status": "requested",
  "no_p2p_until": "2024-01-01T00:00:00Z",
  "failed_trades": 2,
  "failed_row": 2,
  "success_trades": 5
}

Steam trade

Private real-time stream of Steam trade lifecycle updates with full inspection, sticker, and counterpart metadata.

Trade event fields

NameTypeDescription
typestringOperation type: “create” or “update”
data.idstringUnique identifier for the trade
data.stagenumberCurrent numeric stage of the trade process
data.costum_idstringCustom project identifier for the trade
data.creatorstringWho initiated the trade offer (“seller” or “buyer”)
data.boxedstringISO 8601 timestamp when the trade was boxed
data.send_untilstringISO 8601 deadline for trade confirmation
data.last_updatedstringISO 8601 timestamp of last status change
data.donebooleanWhether the trade is finalized
data.nowstringCurrent server ISO 8601 timestamp
data.userobjectBuyer account details (id, name, avatar, can_p2p, kyc_status)
data.merchantobjectMerchant details (merchant, avatar, currency_value)
data.sellerobjectSeller details (id, name, avatar, shop, auto, success_trades)
data.forobjectRecipient Steam profile metadata (steam_joined, steam_level)
data.itemsobject[]Array of items included in the trade with inspect & sticker data
Example
{
  "type": "update",
  "data": {
    "id": "10546645",
    "stage": 1,
    "send_until": "2024-02-05T22:21:31.645Z",
    "last_updated": "2024-02-05T22:16:10.709Z",
    "done": false,
    "boxed": "2024-02-05T22:15:36.645Z",
    "costum_id": "710a2b8c-3c24-47e8-9b8b-028b177ff0ed",
    "creator": "seller",
    "now": "2024-02-05T22:16:10.712Z",
    "merchant": {
      "merchant": "skinpeer",
      "avatar": "1605372312364-wax-logo.jpg",
      "currency_value": 1,
      "currency_icon": null,
      "successlink": null
    },
    "user": {
      "id": "dadf0f33-3563-441a-9ae0-73c0d1b1954c",
      "name": "ITY",
      "avatar": "https://avatars.steamstatic.com/cb2e23107e1b8a23c38e89ed4b296855d3f0a523_medium.jpg",
      "can_p2p": true,
      "kyc_status": "approved"
    },
    "seller": {
      "id": "1ee21a71-b222-4fa0-bc74-7b69e929f59d",
      "name": "pashkin",
      "avatar": "https://avatars.akamai.steamstatic.com/29108b7865c3aa9b802b89ade6874db85444f177_medium.jpg",
      "can_p2p": true,
      "kyc_status": null,
      "shop": "1ee21a71-b222-4fa0-bc74-7b69e929f59d",
      "auto": true,
      "success_trades": 17,
      "failed_trades": 1
    },
    "for": {
      "name": "ITY",
      "avatar": "https://avatars.steamstatic.com/cb2e23107e1b8a23c38e89ed4b296855d3f0a523_medium.jpg",
      "kyc_status": "approved",
      "steam_joined": 1476828448,
      "steam_level": 151
    },
    "items": [
      {
        "id": 11491794,
        "price": 2951,
        "name": "StatTrak™ AK-47 | Elite Build (Field-Tested)",
        "status": 0,
        "merchant": "skinpeer",
        "item_id": 35561226317,
        "trade_id": null,
        "image": "https://steamcommunity-a.akamaihd.net/economy/image/class/730/5701259026/200fx125f",
        "sent_time": null,
        "inspect_item": {
          "floatvalue": 0.2730073928833008,
          "rarity_name": "Mil-Spec Grade",
          "stickers": [
            {
              "name": "Sticker | Ninjas in Pyjamas | Cologne 2015",
              "slot": 3,
              "wear": 0,
              "sticker_price": {
                "average": 2680,
                "img": "https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs..."
              }
            }
          ]
        },
        "steam_prices": {
          "rarity_color": "#EB4B4B",
          "game_id": 730,
          "collection": "The Cobblestone Collection",
          "collection_icon": "https://cdn.csmarketcap.com/icons/the-cobblestone-collection.png"
        }
      }
    ]
  }
}

Connections

Private stream for third-party linked account status updates (Discord, Steam bot bindings, OAuth).

Connection event fields

NameTypeDescription
typestringOperation type: “create”, “update”, or “delete”
dataobject | nullCurrent connection object (null on delete operations)
previous_dataobject | nullPrevious state of the connection object (provided only on delete operations)
Example
{
  "type": "delete",
  "data": null,
  "previous_data": {
    "id": 4,
    "username": "®Suspect4you®",
    "user": "2b4fd250-f1528-4307-904e-c86d7e7c0f65",
    "email": "[email protected]",
    "avatar": "https://cdn.discordapp.com/avatars/374121399750492160/8d68bf6a22d3279341f6f51ee2c72509.png",
    "oauth": "discord",
    "oauth_id": "123",
    "discriminator": "31270",
    "date": "2019-09-17T12:25:22.051749-04:00",
    "bot": "bot1",
    "main": false
  }
}

Notification

User notifications regarding trades, deliveries, Steam mobile confirms, and marketplace alerts.

Notification fields

NameTypeDescription
typestringNotification operation type: “create” or “update”
data.idnumberInternal notification identifier
data.userstringTarget user UUID
data.actionstringTrigger action name (e.g. “sending_steam”)
data.messagestringDescriptive notification message
data.parameterstringOPTIONAL. Status parameter (e.g. “canceled”)
data.readbooleanWhether the notification has been marked as read
data.identificationstringUnique identification fingerprint string
data.createdstringISO 8601 creation timestamp
data.updatedstringOPTIONAL. ISO 8601 last update timestamp
Example
{
  "type": "update",
  "data": {
    "id": 19240228,
    "user": "dadf0f33-3563-441a-9ae0-73c0d1b1954c",
    "link": null,
    "action": "sending_steam",
    "image": "https://steamcommunity-a.akamaihd.net/economy/image/class/730/4302203073/200fx125f",
    "message": "Sticker | Heroic | 2020 RMR",
    "parameter": "canceled",
    "read": true,
    "identification": "10375241dadf0f33-3563-441a-9ae0-73c0d1b1954c25707995376",
    "created": "2024-01-18T09:15:33.330Z",
    "updated": "2024-01-19T05:29:12.758Z"
  }
}

Payment

Transaction lifecycle updates for deposits and withdrawals.

Payment event fields

NameTypeDescription
typestringPayment event type: “create” or “update”
data.idnumberInternal payment transaction ID
data.statusstringTransaction status (e.g. “completed”, “pending”, “failed”)
data.transaction_idstring | nullExternal payment processor or blockchain transaction hash
data.directionstringFund flow direction: “in” (deposit) or “out” (withdrawal)
data.updatedstringISO 8601 last update timestamp
Example
{
  "type": "update",
  "data": {
    "id": 727016,
    "status": "completed",
    "transaction_id": null,
    "updated": "2023-12-17T23:05:11.991545-05:00",
    "direction": "out"
  }
}