Skip to main content
This topic will notify whenever an order is opened, canceled or a trade happens for the given pair (BASE_QUOTE). Since it is a level 2 orderbook, the orders are going to be grouped by price, and this also includes an array with users ids that have an order at that level. By default, the system notifies the topic every 30 seconds, even if a transaction has not taken place. Each side will contain up to 100 price levels.

Subscription Request

method
string
required
Subscribe method. Must be subscribe
topics
array
required
Array of topics to subscribe to. Format: orderbook/level_2_with_users@BASE_QUOTEExample: ["orderbook/level_2_with_users@ETH_BRL"]

Stream Response

id
integer
Each WebSocket message includes a sequential numeric id. Each topic has its own unique sequence, and for private topics, the sequence is unique to each topic and user. It’s important to note that some topics will send a “welcome message”, which will have an id value of -1. Additionally, this sequence may be reset between connections, so be sure to update this value locally whenever you reconnect.
topic
string
Topic name (format: orderbook/level_2_with_users@BASE_QUOTE)
timestamp
integer
Timestamp in milliseconds
body
object
Order book details object with user information

Subscription Example

{
  "method": "subscribe",
  "topics": [
    "orderbook/level_2_with_users@ETH_BRL"
  ]
}

Stream Response Example

{
  "id": 5,
  "topic": "orderbook/level_2_with_users@ETH_BRL",
  "timestamp": 1672856653428,
  "body": {
    "pair": "ETH_BRL",
    "hash": "2254383345",
    "asks": [
      {
        "price": 20,
        "amount": 184.9,
        "users": [
          "5EF6B2C9-28C9-4C50-99EA-7F3A38958F0A"
        ]
      },
      {
        "price": 25,
        "amount": 10,
        "users": [
          "5EF6B2C9-28C9-4C50-99EA-7F3A38958F0A"
        ]
      }
    ],
    "bids": [
      {
        "price": 5,
        "amount": 400,
        "users": [
          "5EF6B2C9-28C9-4C50-99EA-7F3A38958F0A"
        ]
      },
      {
        "price": 4,
        "amount": 20,
        "users": [
          "5EF6B2C9-28C9-4C50-99EA-7F3A38958F0A"
        ]
      }
    ]
  }
}

Update Frequency

  • Default: Every 30 seconds
  • On Change: Immediately when an order is opened, canceled, or a trade happens
  • Updates Include: Both sides with user information

Key Characteristics

  • Level 2 with Users: Aggregated by price but includes user IDs
  • Up to 100 Levels: Each side contains maximum 100 price levels
  • User Tracking: See which users have orders at each price level
  • Hash Value: Used to verify order book integrity
  • Multiple Users: Multiple users can have orders at the same price level

Differences from Standard Level 2

AspectLevel 2Level 2 with Users
User InfoNot includedIncludes user IDs
Data SizeSmallerSlightly larger
Use CaseGeneral chartsUser analysis
PerformanceBetterSlightly lower

Usage Notes

  • User IDs: Array of user identifiers at each price level
  • Multiple Users: Price level may contain orders from multiple users
  • User Count: You can infer order concentration by user count
  • Market Structure: Understand who is providing liquidity at each level
  • Concentration Risk: Identify if liquidity is concentrated in few users

Use Cases

  • User-based Analysis: Analyze which users are providing liquidity
  • Large Order Detection: Identify large orders from specific users
  • Market Participant Tracking: Track participation of key market makers
  • Concentration Analysis: Monitor liquidity concentration
  • Relationship Mapping: Understand market structure and relationships

Privacy Considerations

  • User IDs: Only shows UUID, not personal information
  • Order Privacy: Individual order sizes at the price level are aggregated
  • Market Data: This is public market data
  • No Personal Info: User identifiers are anonymized UUIDs