3 minutes to connect. 0 minutes to maintain. Create a read-only API key on your exchange, paste it into your journal, and every trade — spot, futures, margin — syncs automatically. Historical trades from the past 30 days to 2 years load on first connection, depending on the exchange.
Why API Sync Beats Manual Logging for Crypto
Manual trade logging works when you take 2-3 trades a day on one pair. Crypto traders rarely fit that profile. Between scalps, DCA entries, partial closes, and cross-margin positions, a single trading day can produce dozens of fills across multiple instruments.
The math is simple: if you trade 10 fills per day and each takes 2 minutes to log manually, that's 20 minutes of data entry. Over a month, that's 10 hours — spent copying numbers you already have on your exchange.
| Method | Time per Trade | Data Accuracy | Fees Captured | Funding Rates |
|---|---|---|---|---|
| Manual entry | 2-3 min | Error-prone | Often missed | Almost never |
| CSV export | ~30 sec | Accurate | Yes | Exchange-dependent |
| API sync | 0 sec | Exact match | Always | Always |
API sync also captures data you would never bother logging by hand: funding rate payments, maker/taker fee differences, and exact timestamps down to the millisecond. This data matters when you're analyzing why a profitable strategy still loses money after costs.
Binance API Setup (Step by Step)
Binance provides API access through its account settings. The entire process takes about 3 minutes. You need 2FA enabled on your account before creating API keys.
Step 1: Create a Read-Only API Key
- Log into Binance → Account → API Management
- Click "Create API" → choose "System Generated"
- Name it something recognizable:
Trading Journal Sync - Complete 2FA verification (authenticator app or SMS)
- Set permissions — this is critical:
- ✅ Enable Reading — this is the only permission you need
- ❌ Enable Spot & Margin Trading — OFF
- ❌ Enable Futures — OFF
- ❌ Enable Withdrawals — OFF
- Optional but recommended: restrict to your IP address if you have a static IP
- Copy both the API Key and Secret Key — the Secret is shown only once
Why "System Generated"? Binance also offers self-generated (RSA/Ed25519) keys for advanced users. System Generated is simpler — Binance creates both keys for you. For journal sync, either method works identically.
Step 2: Enter Keys in Your Journal
- Open your journal tool's Settings → Integrations (or Import section)
- Select Binance as the exchange
- Paste your API Key and Secret Key
- Click Connect
- The tool will verify the connection and begin syncing historical trades
Step 3: Verify the Sync
After connecting, check that your recent trades appear correctly. Verify:
- Correct instruments and pairs (BTC/USDT, ETH/USDT, etc.)
- Correct entry/exit prices and position sizes
- Correct P&L including fees
- Correct timestamps (accounting for your timezone setting)
If historical trades loaded, spot-check the count against your exchange trade history. Binance API provides up to approximately 6 months of trade history, per their API documentation.
Bybit API Setup (Step by Step)
Bybit's API key creation follows a similar pattern but with slightly different navigation. Bybit's API provides up to 2 years of historical trade data — more generous than most exchanges.
Step 1: Create a Read-Only API Key
- Log into Bybit → Profile → API Management
- Click "Create New Key" → choose "System-generated API Keys"
- Name:
Journal Sync - Key permissions:
- ✅ Read-Only — the only permission needed
- ❌ No trade permissions
- ❌ No withdrawal permissions
- ❌ No transfer permissions
- Complete 2FA verification
- Copy both the API Key and Secret Key immediately
Step 2: Connect and Verify
Same process as Binance: open your journal's integration settings → select Bybit → paste both keys → connect. Verify that recent trades appear with correct instruments, P&L, and timestamps.
Bybit's trade history API covers approximately 2 years, per their V5 API documentation. If you need older data, you'll need to export a CSV from Bybit's trade history page and import it separately.
OKX and Bitget Quick Reference
The same read-only-key concept applies to every major exchange. Here's how OKX and Bitget differ from Binance/Bybit:
| Exchange | API Key Location | Required Permissions | Extra Requirements | History Depth |
|---|---|---|---|---|
| OKX | Profile → API → Create V5 API Key | Read Only + Trade (read) | Passphrase required (save it separately) | ~3 months |
| Bitget | Account → API Management → Create | Read Only | IP whitelist optional | ~6 months |
OKX passphrase note: Per OKX's V5 API docs, OKX adds an extra security layer — you create a passphrase during API key creation. You'll need to enter this alongside the API key and secret in your journal. Save it in your password manager; OKX doesn't show it again after creation.
What Data Gets Synced (Full Field Map)
A common concern: "Will the API capture everything I need?" Here's what exchange APIs provide for each trade:
| Data Field | Binance | Bybit | OKX | Bitget | Why It Matters |
|---|---|---|---|---|---|
| Instrument/pair | ✅ | ✅ | ✅ | ✅ | Filter performance by asset |
| Direction (long/short) | ✅ | ✅ | ✅ | ✅ | Track long vs short win rates |
| Entry/exit price | ✅ | ✅ | ✅ | ✅ | Calculate R-multiples |
| Position size | ✅ | ✅ | ✅ | ✅ | Analyze sizing discipline |
| Realized P&L | ✅ | ✅ | ✅ | ✅ | Core performance metric |
| Fees/commission | ✅ | ✅ | ✅ | ✅ | Net P&L vs gross P&L |
| Funding rates | ✅ | ✅ | ✅ | ✅ | Hidden cost in futures |
| Leverage used | ✅ | ✅ | ✅ | ✅ | Risk exposure analysis |
| Timestamps | ✅ | ✅ | ✅ | ✅ | Time-of-day patterns |
| Liquidation events | ✅ | ✅ | ✅ | ✅ | Risk management review |
The "Why It Matters" column is the real point: each field isn't just data — it's a specific analysis you can run. Fees alone can shift a profitable strategy into a losing one. Funding rates on perpetual futures can drain 0.5-2% of your position per week in trending markets. Use our exchange fee calculator to estimate the real cost before opening a position. Without API sync, most traders never track these costs accurately.
API Security Checklist
API keys are credentials. Treat them with the same care as passwords. Here's the security baseline:
- ✅ Read-only permissions only. A read-only key cannot place orders, cancel trades, or withdraw funds. Even if compromised, the worst outcome is someone sees your trade history.
- ✅ IP restriction when available. Binance and Bybit both support IP whitelisting. If you have a static IP, enable it — the key will only work from your address.
- ✅ One key per service. Create a separate API key for your journal. If you also use a tax tool, create a separate key for that. This way you can revoke one without disrupting the other.
- ✅ Store keys in a password manager. Don't screenshot them, paste them into notes apps, or save them in spreadsheets.
- ✅ Audit quarterly. Check your active API keys every few months. Delete any you no longer use.
- ❌ Never share your Secret Key. The API Key (public identifier) is relatively safe to expose. The Secret Key is the sensitive half — treat it like a password.
- ❌ Never enable withdrawal permissions for journal sync. There is no reason a journaling tool needs withdrawal access.
What happens if a read-only key is leaked? An attacker could view your trade history — that's it. They cannot move funds, place orders, or change account settings. Still not ideal, but not catastrophic. Revoke the key immediately and create a new one.
Historical Trade Limits by Exchange
Each exchange limits how far back the API can pull trades. This matters when you first connect — you may not get your full history via API.
| Exchange | API History Limit | Workaround for Older Data |
|---|---|---|
| Binance | ~6 months (spot), varies for futures | CSV export from Trade History page |
| Bybit | ~2 years | CSV export for older data |
| OKX | ~3 months | CSV export from Trade History |
| Bitget | ~6 months | CSV export from Order History |
If you need to import older trades, most journal tools accept CSV uploads alongside API sync. Use our CSV import guide for a walkthrough of mapping exchange CSV columns to your journal's format.
Troubleshooting Common Issues
Most API connection problems fall into a few categories. Here are the ones we see most often:
| Problem | Likely Cause | Fix |
|---|---|---|
| "Invalid API key" error | Key copied with extra whitespace or missing characters | Re-copy from exchange dashboard. Paste without trailing spaces. |
| Connection works but no trades appear | Permissions too restrictive or wrong account type selected | Ensure "Read" permission covers the account type you trade (spot, futures, unified). |
| Historical trades missing | Exchange API history limit reached | Import older data via CSV. See limits table above. |
| P&L doesn't match exchange | Funding rates or fees excluded from calculation | Check journal settings for fee inclusion. Compare gross vs net P&L display. |
| Trades appear with 5-10 min delay | Normal polling interval | Journal tools poll every 1-5 minutes. Not instant, but sufficient for journaling purposes. |
| "IP not allowed" error | API key restricted to a different IP than your journal server | Add your journal tool's server IP to the key's whitelist, or remove IP restriction. |
| OKX "invalid passphrase" | Passphrase not entered or copied incorrectly | OKX requires the passphrase created during key setup. Check your password manager. |
API Sync vs CSV Import: When to Use Each
API sync doesn't replace CSV import — they complement each other. Here's when each method fits:
Use API Sync When
- You want ongoing, automatic trade capture
- You trade frequently (5+ trades/day)
- You need fees, funding rates, and exact timestamps
- You trade on supported exchanges
Use CSV Import When
- You need to load historical trades older than the API limit
- Your exchange isn't supported via API yet
- You're migrating from another journal tool
- You trade on DEXs (no API available)
Most traders start with API sync for ongoing trades and use CSV import once to backfill their history. After that, API handles everything automatically.
TSB connects to Binance, Bybit, OKX, and Bitget via API. Go to Settings → Integrations → select your exchange → paste your read-only API key and secret → done. Historical trades load on first sync. Future trades capture automatically. All trade types supported: spot, futures, margin. See the integration setup →
The Bottom Line
If you trade crypto and you're still copying P&L from your exchange into a spreadsheet, you're spending time on data entry instead of analysis. API sync eliminates that friction entirely — one 3-minute setup per exchange, and every trade lands in your journal with full detail.
The key insight most traders miss: it's not just about saving time. It's about capturing data you'd never bother logging manually — funding rates, exact fees, timestamp patterns. That's where the edge in self-analysis comes from. Start with our crypto profit calculator to see what your actual net P&L looks like after fees.