Skip to main content

Get ADL Alert

Query for ADL (auto-deleveraging mechanism) alerts and insurance pool information.

Covers: USDT Perpetual / USDT Delivery / USDC Perpetual / USDC Delivery / Inverse Contracts

tip

Data update frequency: every 1 minute.

info
  • ADL trigger and stop conditions are based on the following three cases:
  1. Contract PnL drawdown ADL (based on the new grouped insurance pool mechanism, see examples 1 and 2)

    • Trigger condition:
      balance (insurance fund balance) > adlTriggerThreshold (trigger threshold for contract PnL drawdown ADL)
      and pnlRatio < insurancePnlRatio (PnL ratio threshold for triggering ADL)

      Where:

      • pnlRatio: drawdown ratio of the symbol in the last 8 hours
        Formula: pnlRatio = (Symbol's current PnL - Symbol's 8h max PnL) / Insurance pool's 8h max balance (maxBalance)
        Note: the symbol's Current PnL and 8h Max PnL are not provided by the API.
      • Insurance pool 8h max balance (maxBalance): the maximum balance of the grouped insurance pool in the last 8 hours
    • Stop condition: pnlRatio > adlStopRatio (stop ratio threshold for ADL)

  2. Insurance pool equity drawdown ADL (original mechanism, see example 3)

    • Trigger condition: balance (insurance fund balance) ≤ 0
    • Stop condition: balance (insurance fund balance) > 0
  3. Excessive margin loss of a symbol after removing it from a grouped insurance pool (can be regarded as a special case of pool equity drawdown ADL)

    • To ensure pool safety, the risk control team may remove a symbol from its grouped pool and temporarily establish it as a new independent insurance pool.
    • Trigger condition: balance (insurance fund balance) ≤ 0
    • Stop condition: balance (insurance fund balance) > 0
ADL examples: Triggered by PnL Drawdown and Insurance Pool Balance
  1. Example 1: Pool has no significant profit in the last 8 hours, then symbol loss exceeds the PnL ratio threshold (insurancePnlRatio), ADL will be triggered

    • Assume symbols A, B, and C share the same pool with an initial 8h balance of 1M USDT
    • A incurs a loss of 350K
    • Calculation:
      • pnlRatio = -35%
      • balance = 1M
      • adlTriggerThreshold = 1 (a constant set by Bybit)
      • insurancePnlRatio = -0.3 (a constant set by Bybit)
    • Condition check:
      • balance (1M) > adlTriggerThreshold (1)
      • pnlRatio (-0.35) < insurancePnlRatio (-0.3)
    • → Contract PnL drawdown ADL is triggered
    • The system calculates the bankruptcy price at -30% drawdown so ADL closes 50K worth of user positions to keep A's pnlRatio at -30%
    • Stop condition: ADL stops if A's pnlRatio > adlStopRatio (-0.25, a constant set by Bybit)

    Recovery methods:

    1. Platform injects funds into the pool and adjusts A's PnL
    2. Pool continues to take A's positions and earns maintenance margin through liquidation on the market

  1. Example 2: Pool has significant profit in the last 8 hours, but symbol loss exceeds the PnL ratio threshold (insurancePnlRatio), ADL will still be triggered

    • Assume symbols A, B, C share the same pool, initial balance = 1M USDT
    • A gains profit through liquidation, pool 8h Max Balance = 2M USDT (A's PnL = +1M)
    • Later A incurs a loss of 600K
    • Calculation:
      • pnlRatio = -30%
      • balance = 2M
      • adlTriggerThreshold = 1 (a constant set by Bybit)
      • insurancePnlRatio = -0.3 (a constant set by Bybit)
    • Condition check:
      • balance (2M) > adlTriggerThreshold (1)
      • pnlRatio (-0.30) ≤ insurancePnlRatio (-0.3)
    • → Contract PnL drawdown ADL is triggered
    • The system calculates the bankruptcy price at -30% drawdown
    • Stop condition: ADL stops if A's pnlRatio > adlStopRatio (-0.25, a constant set by Bybit)

    Recovery methods:

    1. Platform injects funds into the pool and adjusts A's PnL
    2. Pool continues to take A's positions and earns maintenance margin through liquidation on the market

  1. Example 3: Pool balance reaches zero which triggers ADL
    • Assume symbols A, B, C, D share the same pool, initial balance = 1M USDT
    • Although none of the pnlRatio values for the symbols reach -30%, the pool balance drops to 0
    • Condition check:
      • balance (0) ≤ 0
    • → Insurance pool equity ADL is triggered
    • The system redistributes bankruptcy loss across symbols based on their PnL when pool balance = 0
    • Stop condition: ADL stops if balance > 0

Subscribe to the ADL WebSocket topic for faster updates.

HTTP Request

GET /v5/market/adlAlert

Request Parameters

ParameterRequiredTypeComments
symbolfalsestringContract name, e.g. BTCUSDT. Uppercase only

Response Parameters

ParameterTypeComments
updateTimestringLatest data update timestamp (ms)
listarrayObject
> coinstringToken of the insurance pool
> symbolstringTrading pair name
> balancestringBalance of the insurance fund. Used to determine if ADL is triggered
> maxBalancestringMaximum balance of the insurance pool in the last 8 hours
> insurancePnlRatiostringPnL ratio threshold for triggering contract PnL drawdown ADL
  • ADL is triggered when the symbol's PnL drawdown ratio in the last 8 hours exceeds this value
> pnlRatiostringSymbol's PnL drawdown ratio in the last 8 hours. Used to determine whether ADL is triggered or stopped
> adlTriggerThresholdstringTrigger threshold for contract PnL drawdown ADL
  • This condition is only effective when the insurance pool balance is greater than this value; if so, an 8 hours drawdown exceeding n% may trigger ADL
> adlStopRatiostringStop ratio threshold for contract PnL drawdown ADL
  • ADL stops when the symbol's 8 hours drawdown ratio falls below this value

Request Example

GET /v5/market/adlAlert&symbol=BTCUSDT HTTP/1.1
Host: api-testnet.bybit.com

Response Example

{
"retCode": 0,
"retMsg": "OK",
"result": {
"updatedTime": "1757733960000",
"list": [
{
"coin": "USDT",
"symbol": "BTCUSDT",
"balance": "92203504694.99632",
"maxBalance": "92231510324.75948",
"insurancePnlRatio": "-0.3",
"pnlRatio": "-0.560973",
"adlTriggerThreshold": "10000",
"adlStopRatio": "-0.25"
}
]
},
"retExtInfo": {},
"time": 1757734022014
}