Connect to Bybit via Vezgo API

Beta

Accounts

Positions

Transactions

Support for Accounts, Positions and Transactions enabled.

Support for Positions & Balances:

  • Spot (Classic account)
  • Unified
  • Contract


Supported Transaction Types:

  • Deposits (on & off chain)
  • Withdrawals (on & off chain)
  • Trades (Unified accounts only)
  • Spot Repayment Sell/Buy (Unified accounts only)
  • Transfer In/Out (Unified accounts only)
  • Currency Buy/Sell (Unified accounts only)


Additional Notes:

  • Only successful transactions are imported.
  • We're working actively on enriching the supported transaction types


Full List of Integrations

Data mapping

A field-level guide to the Vezgo API data for Bybit — what each attribute means and where to read it — so you can map it into your own system.

DataWhere to read itSource on Bybit
Account & walletsaccount.wallets[]Bybit connects with an API key + secret (no OAuth, no wallet address); a read-only key is recommended. Bybit organizes holdings into account types — Spot, Unified (UTA) and Contract (derivatives) — and Vezgo surfaces each present account as an entry in account.wallets[] (name "<Type> Account", key on wallet.id). Bybit is a beta connector and does not support reconciliation or KYC.
Balances / positionsaccount.balances[]Per-coin wallet balances within each account. Each balance has ticker, amount, decimals and fiat_value (USD). asset_type is always "crypto" — Bybit holdings (including stablecoins) are all typed as crypto; there is no cash / staked / derivative asset_type. Balances can be negative on margin (borrowed). No ticker_address — exchange holdings are identified by ticker. A few Bybit-specific symbols are normalized to a readable name (e.g. MNT → Mantle).
TransactionsGET /accounts/:id/transactionsSpot and derivative (linear) trades, crypto-to-crypto convert, on-chain and internal deposits / withdrawals, transfers, and rewards / bonuses. A spot trade carries its two legs (base + quote) as parts. See "How to read a transaction" below. (The Contract account exposes balances only — no transaction history.)
Assets / securitiesbalance.tickerIdentified by ticker (e.g. BTC, ETH, USDT). No ticker_address — custodial exchange balances are not on-chain tokens.

How to read a transaction

Each Bybit activity maps to a Vezgo transaction. Read the value movement from parts[], and classify with transaction_type:

  • Value movement — parts[] (direction sent/received, ticker, provider_ticker, amount, fiat_value in USD). A spot trade and a convert each have two parts (base + quote / from + to); a derivative (linear) trade has one part (the settlement-currency movement); deposits, withdrawals, transfers and rewards have one part.
  • Type — transaction_type (trade / deposit / withdrawal / reward / bonus). Bybit carries no transaction_subtype; read a trade's buy vs sell from parts[].direction. A convert (crypto-to-crypto) is classified as a trade. Use misc.trade_category ("spot" / "linear") to tell spot from derivative trades.
  • Fees — fees[] (the trade or network fee; fiat_value in USD, plus the native fee asset and amount).
  • On-chain deposits / withdrawals carry the destination address in parts[].to_address and the blockchain hash in transaction_hash (Bybit's txID). There is no from_address and no misc.network (the chain is in the description). misc.origin_id is the Bybit id for the activity (execId / tradeId / withdrawId / txID); misc.origin_type is Bybit's raw activity type.
// One Vezgo transaction = a Bybit activity (a spot trade carries its two legs as parts)
const id   = tx.misc.origin_id;        // Bybit id (execId / tradeId / withdrawId / txID)
const kind = tx.misc.origin_type;      // raw Bybit type (TRADE, CONVERT, deposit_on_chain, TRANSFER_IN, REWARD, …)

const type  = tx.transaction_type;     // trade | deposit | withdrawal | reward | bonus
const parts = tx.parts ?? [];          // spot trade / convert = 2 legs; linear trade / deposit / withdrawal = 1
const fees  = tx.fees ?? [];           // trade / network fee (fiat_value in USD)

if (tx.transaction_hash) { /* on-chain deposit/withdrawal — parts[].to_address is the destination */ }
// Bybit has no transaction_subtype (read buy/sell from parts[].direction) and no from_address.
// misc.trade_category = "spot" | "linear" distinguishes spot from derivative trades.
Where to read itAttributesWhat it is
tx.parts[]direction, ticker, provider_ticker, amount, fiat_value, to_addressValue movement. Spot trades and converts have 2 legs (base + quote); linear trades and deposits / withdrawals have 1. to_address (destination) is present only on on-chain deposits / withdrawals; there is no from_address.
tx.transaction_typetrade / deposit / withdrawal / reward / bonusNormalized classification — prefer it over the raw misc.origin_type. Bybit has no transaction_subtype; read buy vs sell from parts[].direction, and spot vs derivative from misc.trade_category.
tx.fees[] · tx.transaction_hashfees: ticker, amount, fiat_value · transaction_hash (txID)Trade / network fee (native asset + USD value). transaction_hash is the on-chain txID, present on on-chain deposits / withdrawals.

misc.origin_type is Bybit's raw activity type. Always classify off transaction_type. Common values:

  • TRADE
  • CONVERT
  • deposit_on_chain
  • deposit_off_chain
  • withdrawal_on_chain
  • withdrawal_off_chain
  • TRANSFER_IN
  • TRANSFER_OUT
  • CURRENCY_BUY
  • CURRENCY_SELL
  • AIRDROP
  • BONUS
  • REWARD
  • COMMISSION

Supported

  • Multiple account types — Spot, Unified (UTA), Contract — each surfaced as a wallet
  • Crypto balances (all asset_type crypto; stablecoins included)
  • Spot trades and crypto-to-crypto convert (legs carried as parts)
  • Derivative (linear) trades (one settlement-currency part; misc.trade_category)
  • On-chain and internal deposits / withdrawals (with destination address and transaction_hash)
  • Transfers, airdrops, bonuses and rewards / commissions
  • USD fiat valuation for balances and transactions

Notes & limitations

  • Bybit is a beta connector.
  • Balances are the exchange's reported (custodial) holdings — there is no on-chain wallet address for balances.
  • The Contract (derivatives) account exposes balances only — no transaction history is imported for it.
  • Derivative (linear) trades surface as a single settlement-currency part, not a base/quote pair — tell spot from derivative via misc.trade_category.
  • Bybit carries no transaction_subtype — read buy vs sell from parts[].direction.
  • Deposits / withdrawals carry the destination to_address and a blockchain transaction_hash (txID), but no from_address and no misc.network (the chain is only in the description).
  • No KYC and no reconciliation (wallet.is_reconciled is not set).
  • Values are USD; fiat_value can be 0 when a USD rate is unavailable.
See the full Vezgo object reference

Try to connect to Bybit in our Demo Sandbox

Open Demo

Let's get you started

To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com

You have questions? Contact us