WebSockets · Your account

Not a REST call: this is the WebSocket handshake. Connect to the URL below and the exchange answers 101 Switching Protocols; everything after that is frames, not requests.

Your own fills, with the fee charged to you — the reason to hold this socket instead of polling.

No subscribe frame, same as /user-orders.

{
  "dealId": "e2cd407c-28c8-4768-bd73-cd7357fbccde",
  "dealDateUtc": "2026-08-27T09:15:42.117Z",
  "currencyPairCode": "BTC_USDT",
  "price": 64180.5,
  "volume": 0.0125,
  "isBid": true,
  "orderId": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
  "commissionAmount": 0.0000094,
  "commissionCurrencyCode": "BTC"
}

isBid is your side and orderId is your order. commissionAmount: null means the fee is not booked yet, never that the fill was free. The counterparty is not reported.

The stream is best effort: an event that fires while you are disconnected is not queued for you. Treat it as the fast path and GET /api/user/deals as the source of truth — reconcile on reconnect.

get/user-deals

Request

  • Base URL
    wss://ws.azbit.com
  • URL
    wss://ws.azbit.com/user-deals
  • Auth
    none declared. Required headers: API-PublicKey, API-Signature

Query parameters

timestampinteger required

Unix milliseconds, within 30 seconds of server time, and part of the signed URL. A REST signature covers a request that happens once; a socket URL is requested once and then stays open, so without this a captured handshake would mirror your private stream indefinitely.

Headers

API-PublicKeystring required

Your API public key.

API-Signaturestring required

hex(HMAC_SHA256(privateKey, publicKey + connectUrl)). A handshake has no body, so nothing is appended after the URL. Sign the wss:// form, exactly as you connect.

Changes