Three checkpoints in this guide
Follow the full walkthrough in order, or jump directly to one of its main sections.
Pick one of three Bybit datasets—do not confuse them
Bybit’s export page offers Account Statement, Transaction Log, and Order History. The Statement is a PDF account snapshot. Transaction Log and Order History are CSV files, but they answer different questions.
| Bybit dataset | Format | What it proves |
|---|---|---|
| Account Statement | Equity, asset balances, change in value, and aggregate trading P&L | |
| Transaction Log | CSV | Asset flows, balance changes, transaction type, token, and product category |
| Order History | CSV | Contracts, direction, quantity, fees, entry/fill prices, status, and P&L history |
The two fast export routes
Transaction Log
On the Bybit website, open Assets → Unified Trading Account → History Records → Transaction Log → Export. Choose the date range and generate the CSV. Bybit documents a maximum of six months per request within the last two years, up to 10,000 entries, five export requests per day, and a seven-day download-link lifetime for this route.
Order History
Open Orders → Unified Trading Order, choose the product history and relevant history tab, then select Export. Choose the contract type where applicable and the time range. This route also uses a six-month range within the last two years and 10,000 entries. Bybit documents up to ten daily requests for Spot Orders and five for Derivatives Orders. Cancelled orders are only reflected for the most recent seven days.
The Data Export route for longer evidence
The dedicated Data Export page supports a longer window and more comprehensive files. Its current table says a single file can cover at most one year, generated statements have no entry limit, and available data can reach five years starting January 1, 2022. A later note in the same article still says three recent years and a maximum of 50 exports per month. Because the official page is internally inconsistent, do not promise either historical limit: use the options displayed in the logged-in account and preserve a screenshot or request record.
Transaction Log and Order History may take one to three days to generate. The download link expires after seven days, so store the raw file with its selected account, product, and UTC period in the file name. Main-account Data Export can select as many as 100 subaccounts in one batch; a subaccount’s own Data Export page is limited to that subaccount.
Data for the current day becomes available the following day. That lag is a common reason a same-day reconciliation appears short even when the export request succeeded.
Prepare the request so the resulting file is auditable
Choose the account and product before the date range. A Unified Trading Account file, Funding Account file, and Copy Trading file can overlap in time while describing different economic boundaries. Use UTC dates in the filename and make adjacent requests meet at a clean boundary without overlapping the same full day.
For a high-volume account using the short UTA routes, do not wait for the 10,000-row cap to prove truncation. Split the period before export and record the expected first/last date for every part. The dedicated Data Export table currently says there is no entry limit, but the one-year file boundary still applies. Download every asynchronous result before its seven-day link expires and retain the request details beside it.
Select the product record, not just “Order History”
| Trading job | Data Export record | Reconciliation companion |
|---|---|---|
| Spot | Spot Order and Trade History | UTA Transaction Log for fees and balance changes |
| USDT perpetual | USDT Perpetual Order, Trade and Closed P&L History | Funding and fee rows from Transaction Log |
| USDC perpetual | USDC Perpetual Order, Trade and Closed P&L History | USDC-denominated account movements |
| Pre-UTA activity | Matching Pre-Upgrade order/trade history | Pre-upgrade account boundary and balances |
Do not merge pre-upgrade and current UTA files before source detection. Product migrations can change identifiers, account boundaries, and field meaning even when the symbol is unchanged.
What TSB supports—and what it blocks
TSB’s reviewed corpus includes the exact Bybit Unified Margin Transaction Log lifecycle and a Bybit USDT perpetual trade-history export. The transaction-log profile maps symbol, side, time, price, size, realized P&L, fee, and currency when the reviewed row lifecycle is present.
TSB also contains a fail-closed profile for a known 16-column Transaction Log whose lifecycle, identifiers, timestamps, or numeric semantics are not proved. A third-party API-shaped sample is blocked because closing P&L rows omit the entry lifecycle. In both cases the product refuses to guess trade boundaries.
Read the Bybit preview in the right order
- Confirm the detected dataset: Order History, Transaction Log, or an exact reviewed perpetual history.
- Confirm account and product category before looking at P&L.
- Compare row count with the raw CSV and check whether the source hit the documented 10,000-entry limit.
- Verify that entries, exits, fees, and funding retain their separate event types.
- Stop if the preview cannot prove an entry lifecycle. A realized-P&L row without its opening evidence is not a safe completed trade.
Bybit-specific failure modes
- PDF instead of CSV: Account Statement verifies equity but cannot reconstruct fills.
- Short route clipped at 10,000 rows: high-frequency accounts need smaller date windows or Data Export.
- Current-day lag: the latest rows may not exist until the following day.
- Transaction Log without lifecycle: asset changes alone may not prove entry and exit.
- Cancelled-order retention: the short Order History route only exposes recently cancelled orders.
- Mixed accounts: Funding, Unified Trading, and Copy Trading activity must be identified rather than combined as one strategy.
The exact export → import → reconcile → review workflow
- Export: download the product-specific Order History CSV and the matching Transaction Log CSV. Keep the PDF Statement only as a balance snapshot.
- Import: open TSB Journal → Import trades, upload one untouched CSV, and read the detected profile and warnings before confirmation.
- Reconcile: compare account, product, UTC window, execution count, realized P&L, trading fees, funding rows, and statement equity. Split the window if the file reaches 10,000 rows.
- Review: inspect imported entries and exits, partial closes, unmatched flows, and account attribution. Add setup and decision context only after the financial rows reconcile.
Worked reconciliation: Transaction Log and Order History disagree
Suppose Order History contains 120 orders, 18 of them cancelled, while the execution data contains 146 fills because several orders filled in parts. Transaction Log then contains 158 rows because it also records funding and fee movements. None of those counts is the journal trade count.
First remove non-filled orders from the execution question. Then group fills by the proved position lifecycle. Reconcile trading fees and funding separately against Transaction Log. Finally compare total account change with the Statement after removing deposits, withdrawals, and transfers. A valid result may be 102 filled orders, 146 executions, 61 normalized trades, and 158 transaction rows.
Final acceptance checklist
- The request record identifies main/subaccount, product, dataset, and UTC window.
- Short-route files do not silently stop at 10,000 entries.
- Current-day rows are not expected before Bybit’s next-day availability.
- Pre-UTA and current UTA records remain separate source batches.
- Order, execution, transaction-log, and normalized-trade counts are reconciled by meaning.
- Funding, fees, transfers, and deposits explain the bridge from realized P&L to statement equity.
- Any guardrail remains unresolved evidence rather than a manually reshaped CSV.
Official screen checked
Bybit: How to Self-Export My Account Data, including the current Data Export, Unified Trading Account, and Unified Trading Order screens.