asyncapi: 2.6.0
info:
title: Bitfinex WebSocket API v2
version: '2.0.0'
description: |
AsyncAPI description of the Bitfinex public and authenticated WebSocket v2 API.
The Bitfinex WebSocket API streams real-time market data and authenticated
account information using a compact array-based message format. Clients
subscribe to channels by sending a JSON envelope; the server responds with
a `subscribed` confirmation containing a numeric `chanId`. All subsequent
payloads on that channel are JSON arrays whose first element is the
`chanId`.
Heartbeats are sent every 15 seconds as `[CHANNEL_ID, "hb"]`.
Source: https://docs.bitfinex.com/docs/ws-general and the public/auth
channel reference pages.
contact:
name: Bitfinex
url: https://docs.bitfinex.com/docs
license:
name: Bitfinex Terms of Service
url: https://www.bitfinex.com/legal/terms
defaultContentType: application/json
servers:
public:
url: api-pub.bitfinex.com/ws/2
protocol: wss
description: |
Public market-data WebSocket. Used for ticker, trades, books,
raw books, candles and derivatives/liquidation status channels.
Subscription limit: 30 public channels per connection.
auth:
url: api.bitfinex.com/ws/2
protocol: wss
description: |
Authenticated WebSocket. Required for account streams (orders,
positions, wallets, trades, funding offers/loans/credits/trades,
balance, margin, funding info, notifications). Connection rate
limit: 5 connections per 15 seconds.
channels:
/ticker:
description: |
Ticker channel. Provides a high-level overview of the state of
the market for a specified trading pair or funding currency.
Subscribe with `{ "event": "subscribe", "channel": "ticker", "symbol": "<SYMBOL>" }`.
Trading symbols are prefixed with `t` (e.g. `tBTCUSD`); funding
currencies are prefixed with `f` (e.g. `fUSD`).
servers:
- public
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveTicker
summary: Receive ticker snapshot, updates and heartbeats.
message:
oneOf:
- $ref: '#/components/messages/TradingTickerMessage'
- $ref: '#/components/messages/FundingTickerMessage'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: subscribeTicker
summary: Subscribe / unsubscribe to a ticker channel.
message:
oneOf:
- $ref: '#/components/messages/SubscribeTicker'
- $ref: '#/components/messages/Unsubscribe'
/trades:
description: |
Trades channel. Sends a message whenever a trade occurs on
Bitfinex. Funding currencies emit `fte`/`ftu` messages with an
additional PERIOD field.
servers:
- public
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveTrades
message:
oneOf:
- $ref: '#/components/messages/TradesSnapshot'
- $ref: '#/components/messages/TradeUpdate'
- $ref: '#/components/messages/FundingTradesSnapshot'
- $ref: '#/components/messages/FundingTradeUpdate'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: subscribeTrades
message:
oneOf:
- $ref: '#/components/messages/SubscribeTrades'
- $ref: '#/components/messages/Unsubscribe'
/book:
description: |
Aggregated order book channel. Subscription parameters:
`prec` (P0/P1/P2/P3/P4, default P0), `freq` (F0 realtime or F1
every 2s, default F0), `len` (1/25/100/250, default 25),
and optional client-defined `subId`. For funding books the
AMOUNT sign convention is inverted (negative = bid, positive
= ask).
servers:
- public
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveBook
message:
oneOf:
- $ref: '#/components/messages/TradingBookSnapshot'
- $ref: '#/components/messages/TradingBookUpdate'
- $ref: '#/components/messages/FundingBookSnapshot'
- $ref: '#/components/messages/FundingBookUpdate'
- $ref: '#/components/messages/ChecksumMessage'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: subscribeBook
message:
oneOf:
- $ref: '#/components/messages/SubscribeBook'
- $ref: '#/components/messages/Unsubscribe'
/book-raw:
description: |
Raw order book channel (PREC=R0). Tracks individual orders by
ID rather than aggregated price levels. For trading pairs a
PRICE of 0 means delete the order; for funding the same applies
to the order entry.
servers:
- public
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveRawBook
message:
oneOf:
- $ref: '#/components/messages/TradingRawBookSnapshot'
- $ref: '#/components/messages/TradingRawBookUpdate'
- $ref: '#/components/messages/FundingRawBookSnapshot'
- $ref: '#/components/messages/FundingRawBookUpdate'
- $ref: '#/components/messages/ChecksumMessage'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: subscribeRawBook
message:
oneOf:
- $ref: '#/components/messages/SubscribeRawBook'
- $ref: '#/components/messages/Unsubscribe'
/candles:
description: |
Candles channel. Subscribe with a key of the form
`trade:TIMEFRAME:SYMBOL` (or
`trade:TIMEFRAME:SYMBOL:aAGGR:pPER_START:pEND` for funding).
Supported timeframes: 1m, 5m, 15m, 30m, 1h, 3h, 6h, 12h, 1D,
1W, 14D, 1M.
servers:
- public
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveCandles
message:
oneOf:
- $ref: '#/components/messages/CandlesSnapshot'
- $ref: '#/components/messages/CandleUpdate'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: subscribeCandles
message:
oneOf:
- $ref: '#/components/messages/SubscribeCandles'
- $ref: '#/components/messages/Unsubscribe'
/status:
description: |
Platform status channel. Supports two key types:
`deriv:SYMBOL` for derivatives status (e.g.
`deriv:tBTCF0:USTF0`) and `liq:global` for the global
liquidation feed.
servers:
- public
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveStatus
message:
oneOf:
- $ref: '#/components/messages/DerivativesStatusUpdate'
- $ref: '#/components/messages/LiquidationFeedUpdate'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: subscribeStatus
message:
oneOf:
- $ref: '#/components/messages/SubscribeStatus'
- $ref: '#/components/messages/Unsubscribe'
/account:
description: |
Authenticated account information channel (CHAN_ID = 0).
A single `auth` handshake on `wss://api.bitfinex.com/ws/2`
subscribes the client to streams for orders, positions,
wallets, trades, funding offers/loans/credits/trades,
balance info, margin info, funding info and notifications.
Optional `filter` array can restrict the streams delivered.
servers:
- auth
bindings:
ws:
bindingVersion: '0.1.0'
subscribe:
operationId: receiveAccount
summary: All account-stream messages on CHAN_ID = 0.
message:
oneOf:
- $ref: '#/components/messages/AuthSuccess'
- $ref: '#/components/messages/AuthFailure'
- $ref: '#/components/messages/OrderSnapshot'
- $ref: '#/components/messages/OrderNew'
- $ref: '#/components/messages/OrderUpdate'
- $ref: '#/components/messages/OrderCancel'
- $ref: '#/components/messages/PositionSnapshot'
- $ref: '#/components/messages/PositionNew'
- $ref: '#/components/messages/PositionUpdate'
- $ref: '#/components/messages/PositionClose'
- $ref: '#/components/messages/WalletSnapshot'
- $ref: '#/components/messages/WalletUpdate'
- $ref: '#/components/messages/AuthTradeExecuted'
- $ref: '#/components/messages/AuthTradeUpdate'
- $ref: '#/components/messages/FundingOfferSnapshot'
- $ref: '#/components/messages/FundingOfferNew'
- $ref: '#/components/messages/FundingOfferUpdate'
- $ref: '#/components/messages/FundingOfferCancel'
- $ref: '#/components/messages/FundingCreditSnapshot'
- $ref: '#/components/messages/FundingCreditNew'
- $ref: '#/components/messages/FundingCreditUpdate'
- $ref: '#/components/messages/FundingCreditClose'
- $ref: '#/components/messages/FundingLoanSnapshot'
- $ref: '#/components/messages/FundingLoanNew'
- $ref: '#/components/messages/FundingLoanUpdate'
- $ref: '#/components/messages/FundingLoanClose'
- $ref: '#/components/messages/FundingTradeExecuted'
- $ref: '#/components/messages/FundingTradeUpdateMsg'
- $ref: '#/components/messages/BalanceUpdate'
- $ref: '#/components/messages/MarginInfoUpdate'
- $ref: '#/components/messages/FundingInfoUpdate'
- $ref: '#/components/messages/Notification'
- $ref: '#/components/messages/Heartbeat'
publish:
operationId: authenticateAccount
summary: Authentication handshake and connection-level config.
message:
oneOf:
- $ref: '#/components/messages/AuthRequest'
- $ref: '#/components/messages/ConfRequest'
- $ref: '#/components/messages/PingRequest'
components:
messages:
# ---- Connection / control envelopes ----
SubscribeTicker:
name: SubscribeTicker
title: Subscribe (ticker)
summary: Subscribe to the ticker channel for a symbol.
payload:
type: object
required: [event, channel, symbol]
properties:
event: { type: string, const: subscribe }
channel: { type: string, const: ticker }
symbol: { type: string, description: 'Trading pair (tBTCUSD) or funding currency (fUSD)' }
subId: { type: string }
examples:
- payload:
event: subscribe
channel: ticker
symbol: tBTCUSD
SubscribeTrades:
name: SubscribeTrades
title: Subscribe (trades)
payload:
type: object
required: [event, channel, symbol]
properties:
event: { type: string, const: subscribe }
channel: { type: string, const: trades }
symbol: { type: string }
subId: { type: string }
SubscribeBook:
name: SubscribeBook
title: Subscribe (book)
payload:
type: object
required: [event, channel, symbol]
properties:
event: { type: string, const: subscribe }
channel: { type: string, const: book }
symbol: { type: string }
prec:
type: string
enum: [P0, P1, P2, P3, P4]
default: P0
freq:
type: string
enum: [F0, F1]
default: F0
len:
type: string
enum: ['1', '25', '100', '250']
default: '25'
subId: { type: string }
SubscribeRawBook:
name: SubscribeRawBook
title: Subscribe (raw book)
payload:
type: object
required: [event, channel, symbol, prec]
properties:
event: { type: string, const: subscribe }
channel: { type: string, const: book }
symbol: { type: string }
prec: { type: string, const: R0 }
len:
type: string
enum: ['1', '25', '100', '250']
default: '25'
subId: { type: string }
SubscribeCandles:
name: SubscribeCandles
title: Subscribe (candles)
payload:
type: object
required: [event, channel, key]
properties:
event: { type: string, const: subscribe }
channel: { type: string, const: candles }
key:
type: string
description: 'trade:TIMEFRAME:SYMBOL[:aAGGR:pPER_START:pEND]'
example: 'trade:1m:tBTCUSD'
SubscribeStatus:
name: SubscribeStatus
title: Subscribe (status)
payload:
type: object
required: [event, channel, key]
properties:
event: { type: string, const: subscribe }
channel: { type: string, const: status }
key:
type: string
description: 'Either deriv:SYMBOL (e.g. deriv:tBTCF0:USTF0) or liq:global.'
Unsubscribe:
name: Unsubscribe
title: Unsubscribe from a channel
payload:
type: object
required: [event, chanId]
properties:
event: { type: string, const: unsubscribe }
chanId: { type: integer }
ConfRequest:
name: ConfRequest
title: Connection configuration
summary: |
Set per-connection feature flags. Sum the flag values to
enable multiple features.
payload:
type: object
required: [event, flags]
properties:
event: { type: string, const: conf }
flags:
type: integer
description: |
Bitmask of feature flags:
* 32768 (TIMESTAMP) - prepend MTS to every event
* 65536 (SEQ_ALL) - add sequence numbers
* 131072 (OB_CHECKSUM) - emit checksum per book iteration
* 536870912 (BULK_UPDATES) - multiple book updates per msg
PingRequest:
name: PingRequest
title: Application-level ping
payload:
type: object
required: [event]
properties:
event: { type: string, const: ping }
cid: { type: integer }
AuthRequest:
name: AuthRequest
title: Authenticate
summary: |
Authenticate the connection. `authSig` is an HMAC-SHA384 of
`authPayload` keyed with the API secret. `authPayload` is
conventionally `"AUTH" + authNonce`. Optional `filter`
restricts which account streams are delivered. Optional `dms`
enables the Dead-Man-Switch (value 4 cancels open orders on
disconnect).
payload:
type: object
required: [event, apiKey, authSig, authNonce, authPayload]
properties:
event: { type: string, const: auth }
apiKey: { type: string }
authSig:
type: string
description: HMAC-SHA384 hex digest of authPayload signed with the API secret.
authNonce:
type: string
description: Strictly increasing integer (<= 9007199254740991) as string.
authPayload:
type: string
description: Typically `"AUTH" + authNonce`.
filter:
type: array
items:
type: string
enum:
- trading
- trading-tBTCUSD
- funding
- funding-fUSD
- wallet
- wallet-exchange
- wallet-trading
- wallet-deposit
- algo
- balance
- notify
dms:
type: integer
description: '4 = cancel all open orders on disconnect.'
calc:
type: integer
AuthSuccess:
name: AuthSuccess
title: Authentication succeeded
payload:
type: object
properties:
event: { type: string, const: auth }
status: { type: string, const: OK }
chanId: { type: integer, const: 0 }
userId: { type: integer }
authId: { type: string }
caps: { type: object }
AuthFailure:
name: AuthFailure
title: Authentication failed
payload:
type: object
properties:
event: { type: string, const: auth }
status: { type: string, const: FAILED }
msg: { type: string }
code: { type: integer }
# ---- Public channel payloads ----
Heartbeat:
name: Heartbeat
title: Channel heartbeat
summary: '[CHANNEL_ID, "hb"] - sent every 15 seconds of inactivity.'
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- { type: string, const: hb }
ChecksumMessage:
name: ChecksumMessage
title: Book checksum
summary: '[CHANNEL_ID, "cs", CHECKSUM] - emitted when OB_CHECKSUM is enabled.'
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, description: CHANNEL_ID }
- { type: string, const: cs }
- { type: integer, description: Signed CRC32 of the book state. }
TradingTickerMessage:
name: TradingTickerMessage
title: Trading ticker
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/TradingTickerArray'
FundingTickerMessage:
name: FundingTickerMessage
title: Funding ticker
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/FundingTickerArray'
TradesSnapshot:
name: TradesSnapshot
title: Trades snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/TradeArray'
TradeUpdate:
name: TradeUpdate
title: Trade executed / updated (te / tu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, description: CHANNEL_ID }
- { type: string, enum: [te, tu] }
- $ref: '#/components/schemas/TradeArray'
FundingTradesSnapshot:
name: FundingTradesSnapshot
title: Funding trades snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/FundingTradeArray'
FundingTradeUpdate:
name: FundingTradeUpdate
title: Funding trade executed / updated (fte / ftu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, description: CHANNEL_ID }
- { type: string, enum: [fte, ftu] }
- $ref: '#/components/schemas/FundingTradeArray'
TradingBookSnapshot:
name: TradingBookSnapshot
title: Aggregated trading book snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/BookEntryTrading'
TradingBookUpdate:
name: TradingBookUpdate
title: Aggregated trading book update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/BookEntryTrading'
FundingBookSnapshot:
name: FundingBookSnapshot
title: Aggregated funding book snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/BookEntryFunding'
FundingBookUpdate:
name: FundingBookUpdate
title: Aggregated funding book update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/BookEntryFunding'
TradingRawBookSnapshot:
name: TradingRawBookSnapshot
title: Raw trading book snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/RawBookEntryTrading'
TradingRawBookUpdate:
name: TradingRawBookUpdate
title: Raw trading book update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/RawBookEntryTrading'
FundingRawBookSnapshot:
name: FundingRawBookSnapshot
title: Raw funding book snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/RawBookEntryFunding'
FundingRawBookUpdate:
name: FundingRawBookUpdate
title: Raw funding book update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/RawBookEntryFunding'
CandlesSnapshot:
name: CandlesSnapshot
title: Candles snapshot
payload:
type: array
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/CandleArray'
CandleUpdate:
name: CandleUpdate
title: Candle update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/CandleArray'
DerivativesStatusUpdate:
name: DerivativesStatusUpdate
title: Derivatives status update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- $ref: '#/components/schemas/DerivStatusArray'
LiquidationFeedUpdate:
name: LiquidationFeedUpdate
title: Liquidation feed update
payload:
type: array
minItems: 2
maxItems: 2
items:
- { type: integer, description: CHANNEL_ID }
- type: array
items:
$ref: '#/components/schemas/LiquidationEntry'
# ---- Authenticated account messages ----
OrderSnapshot:
name: OrderSnapshot
title: Order snapshot (os)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: os }
- type: array
items:
$ref: '#/components/schemas/OrderArray'
OrderNew:
name: OrderNew
title: New order (on)
payload:
$ref: '#/components/schemas/OrderMessageEnvelope'
OrderUpdate:
name: OrderUpdate
title: Order update (ou)
payload:
$ref: '#/components/schemas/OrderMessageEnvelope'
OrderCancel:
name: OrderCancel
title: Order cancel (oc)
payload:
$ref: '#/components/schemas/OrderMessageEnvelope'
PositionSnapshot:
name: PositionSnapshot
title: Position snapshot (ps)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: ps }
- type: array
items:
$ref: '#/components/schemas/PositionArray'
PositionNew:
name: PositionNew
title: Position new (pn)
payload:
$ref: '#/components/schemas/PositionMessageEnvelope'
PositionUpdate:
name: PositionUpdate
title: Position update (pu)
payload:
$ref: '#/components/schemas/PositionMessageEnvelope'
PositionClose:
name: PositionClose
title: Position close (pc)
payload:
$ref: '#/components/schemas/PositionMessageEnvelope'
WalletSnapshot:
name: WalletSnapshot
title: Wallet snapshot (ws)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: ws }
- type: array
items:
$ref: '#/components/schemas/WalletArray'
WalletUpdate:
name: WalletUpdate
title: Wallet update (wu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: wu }
- $ref: '#/components/schemas/WalletArray'
AuthTradeExecuted:
name: AuthTradeExecuted
title: Trade executed (te) - account
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: te }
- $ref: '#/components/schemas/AuthTradeArray'
AuthTradeUpdate:
name: AuthTradeUpdate
title: Trade update (tu) - account
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: tu }
- $ref: '#/components/schemas/AuthTradeArray'
FundingOfferSnapshot:
name: FundingOfferSnapshot
title: Funding offers snapshot (fos)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: fos }
- type: array
items:
$ref: '#/components/schemas/FundingOfferArray'
FundingOfferNew:
name: FundingOfferNew
title: New funding offer (fon)
payload:
$ref: '#/components/schemas/FundingOfferMessageEnvelope'
FundingOfferUpdate:
name: FundingOfferUpdate
title: Funding offer update (fou)
payload:
$ref: '#/components/schemas/FundingOfferMessageEnvelope'
FundingOfferCancel:
name: FundingOfferCancel
title: Funding offer cancel (foc)
payload:
$ref: '#/components/schemas/FundingOfferMessageEnvelope'
FundingCreditSnapshot:
name: FundingCreditSnapshot
title: Funding credits snapshot (fcs)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: fcs }
- type: array
items:
$ref: '#/components/schemas/FundingCreditArray'
FundingCreditNew:
name: FundingCreditNew
title: New funding credit (fcn)
payload:
$ref: '#/components/schemas/FundingCreditMessageEnvelope'
FundingCreditUpdate:
name: FundingCreditUpdate
title: Funding credit update (fcu)
payload:
$ref: '#/components/schemas/FundingCreditMessageEnvelope'
FundingCreditClose:
name: FundingCreditClose
title: Funding credit close (fcc)
payload:
$ref: '#/components/schemas/FundingCreditMessageEnvelope'
FundingLoanSnapshot:
name: FundingLoanSnapshot
title: Funding loans snapshot (fls)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: fls }
- type: array
items:
$ref: '#/components/schemas/FundingLoanArray'
FundingLoanNew:
name: FundingLoanNew
title: New funding loan (fln)
payload:
$ref: '#/components/schemas/FundingLoanMessageEnvelope'
FundingLoanUpdate:
name: FundingLoanUpdate
title: Funding loan update (flu)
payload:
$ref: '#/components/schemas/FundingLoanMessageEnvelope'
FundingLoanClose:
name: FundingLoanClose
title: Funding loan close (flc)
payload:
$ref: '#/components/schemas/FundingLoanMessageEnvelope'
FundingTradeExecuted:
name: FundingTradeExecuted
title: Funding trade executed (fte)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: fte }
- $ref: '#/components/schemas/AuthFundingTradeArray'
FundingTradeUpdateMsg:
name: FundingTradeUpdateMsg
title: Funding trade update (ftu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: ftu }
- $ref: '#/components/schemas/AuthFundingTradeArray'
BalanceUpdate:
name: BalanceUpdate
title: Balance update (bu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: bu }
- type: array
minItems: 2
maxItems: 2
items:
- { type: number, description: AUM - total assets under management. }
- { type: number, description: AUM_NET - assets minus liabilities. }
MarginInfoUpdate:
name: MarginInfoUpdate
title: Margin info update (miu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: miu }
- oneOf:
- $ref: '#/components/schemas/MarginInfoBase'
- $ref: '#/components/schemas/MarginInfoSym'
FundingInfoUpdate:
name: FundingInfoUpdate
title: Funding info update (fiu)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: fiu }
- $ref: '#/components/schemas/FundingInfoSym'
Notification:
name: Notification
title: Notification (n)
payload:
type: array
minItems: 3
maxItems: 3
items:
- { type: integer, const: 0 }
- { type: string, const: n }
- $ref: '#/components/schemas/NotificationArray'
schemas:
# ---- Public channel array schemas ----
TradingTickerArray:
type: array
minItems: 10
maxItems: 10
description: |
[BID, BID_SIZE, ASK, ASK_SIZE, DAILY_CHANGE,
DAILY_CHANGE_RELATIVE, LAST_PRICE, VOLUME, HIGH, LOW]
items:
- { type: number, description: BID - highest current bid price. }
- { type: number, description: BID_SIZE - sum of top-25 bid sizes. }
- { type: number, description: ASK - lowest current ask price. }
- { type: number, description: ASK_SIZE - sum of top-25 ask sizes. }
- { type: number, description: DAILY_CHANGE - 24h price delta. }
- { type: number, description: DAILY_CHANGE_RELATIVE - 24h percent change. }
- { type: number, description: LAST_PRICE - last traded price. }
- { type: number, description: VOLUME - 24h volume. }
- { type: number, description: HIGH - 24h high. }
- { type: number, description: LOW - 24h low. }
FundingTickerArray:
type: array
minItems: 16
maxItems: 16
description: |
[FRR, BID, BID_PERIOD, BID_SIZE, ASK, ASK_PERIOD, ASK_SIZE,
DAILY_CHANGE, DAILY_CHANGE_RELATIVE, LAST_PRICE, VOLUME,
HIGH, LOW, _PLACEHOLDER, _PLACEHOLDER, FRR_AMOUNT_AVAILABLE]
items:
- { type: number, description: FRR - Flash Return Rate. }
- { type: number, description: BID - highest bid rate. }
- { type: integer, description: BID_PERIOD (days). }
- { type: number, description: BID_SIZE. }
- { type: number, description: ASK - lowest ask rate. }
- { type: integer, description: ASK_PERIOD (days). }
- { type: number, description: ASK_SIZE. }
- { type: number, description: DAILY_CHANGE. }
- { type: number, description: DAILY_CHANGE_RELATIVE. }
- { type: number, description: LAST_PRICE. }
- { type: number, description: VOLUME. }
- { type: number, description: HIGH. }
- { type: number, description: LOW. }
- { type: 'null' }
- { type: 'null' }
- { type: number, description: FRR_AMOUNT_AVAILABLE. }
TradeArray
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitfinex/refs/heads/main/asyncapi/bitfinex-asyncapi.yml