
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
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.
| Data | Where to read it | Source on Bybit |
|---|---|---|
| Account & wallets | account.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 / positions | account.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). |
| Transactions | GET /accounts/:id/transactions | Spot 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 / securities | balance.ticker | Identified 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 it | Attributes | What it is |
|---|---|---|
tx.parts[] | direction, ticker, provider_ticker, amount, fiat_value, to_address | Value 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_type | trade / deposit / withdrawal / reward / bonus | Normalized 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_hash | fees: 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.
Try to connect to Bybit in our Demo Sandbox
Open DemoLet's get you started
To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com