Read-Only API Keys: What a Portfolio Tracker Can and Cannot Do
6 min read · Verified September 2026
A read-only API key grants permission to query balances, positions and trade history. It cannot place orders and it cannot withdraw, because those are separate permissions enforced by the exchange itself. Leave trading and withdrawal switched off, add an IP allowlist where the exchange supports one, and rotate the key periodically.
The hesitation is reasonable. An app asks for a key to your exchange account, and every instinct built up from years of phishing warnings says no. So the question deserves a precise answer rather than reassurance.
A read-only API key lets a tracker ask your exchange one kind of question: what do I hold. It cannot place an order. It cannot withdraw. Not because the app promises to behave, but because the exchange will reject the request.
What do the three permission scopes actually grant?
Every major exchange splits API access into permissions you tick individually when you create a key. The names vary slightly. The structure does not.
Read grants queries. Balances by asset, open positions, order history, filled trades, deposit and withdrawal history, account structure. Everything a tracker needs and nothing else. This is the only permission a portfolio tracker requires, and it is the only one you should grant one.
Trade grants order placement and cancellation. A key with this permission can buy, sell, open and close positions at market or limit prices. It moves value between assets inside your account. It does not move value out of your account. Trading bots need this. A tracker does not.
Withdraw grants transfers off the exchange. This is the permission that can actually lose you money, and exchanges know it: most require additional protections before a key can withdraw at all, typically a mandatory IP allowlist, an email confirmation, or a separate approval step on the account. Binance's API documentation and Kraken's both spell out the constraints their withdrawal scopes carry. No portfolio tracker has any use for this permission under any circumstances.
Some exchanges add a fourth: margin or futures access, sometimes as a separate read scope. Grant the read version of it if you hold there, because otherwise those balances stay invisible.
Paste a read-only key and your balances appear. Nothing else changes on the exchange.
Why can't a read-only key move my money?
Because permission checking happens at the exchange, not in the app.
When a tracker queries your balance, it builds a request, signs it with your API secret, and sends it to the exchange. The exchange looks up the key, checks which permissions were attached to it at creation, and either answers or refuses. An order request signed with a key that has no trade permission comes back as a rejection. There is no code path in the tracker that changes this, because the decision is not the tracker's to make.
This is the whole security model, and it is a good one. You are not trusting the app's intentions. You are trusting the exchange to enforce a permission you set yourself on the exchange's own website. That is a very different kind of trust, and a much cheaper one.
The residual risk is real but it is a privacy risk, not a custody risk. A leaked read-only key exposes what you hold and what you have traded. That is worth protecting. It is not worth confusing with the risk of losing funds, which read-only access does not create. What a tracker can actually see covers the exposure honestly.
What is IP allowlisting and should I turn it on?
An IP allowlist tells the exchange to accept requests signed with your key only when they arrive from a specific network address. Requests from anywhere else are refused even with a valid signature.
Turn it on wherever the exchange offers it. It converts a leaked key from a usable credential into a useless string, because an attacker holding your key and secret still cannot reach the exchange from an approved address.
One detail trips almost everyone up. The tracker queries the exchange from its own servers, not from your phone. Allowlist the address the tracker publishes in its setup instructions, not your home IP. Enter your own address and the connection will simply never work, and the failure looks like a broken key rather than a misconfiguration.
Some exchanges make an unrestricted key expire automatically after a set period while an allowlisted key persists. That is a reasonable nudge and it is worth following.
Which permissions do I switch off, specifically?
When you generate the key, the settings to look for are these. Names differ by exchange; the meaning does not.
- Enable Reading: on. This is the permission that makes the connection work.
- Enable Spot & Margin Trading: off. Also appears as "Trade", "Enable Trading" or "Orders".
- Enable Withdrawals: off. Also appears as "Withdraw", "Transfer" or "Enable Universal Transfer". Universal Transfer moves funds between your own sub-accounts, which sounds harmless and is still not needed.
- Enable Futures / Enable Margin: read access only if you hold balances there, otherwise off. Never the trading variant.
- Enable Internal Transfer: off.
- IP access restriction: set to restricted, with the tracker's published address entered.
Then copy the key and the secret. Most exchanges display the secret exactly once. Some, including Coinbase, KuCoin and OKX, issue a passphrase alongside it that forms part of the signature, so the key is inert without it. Connecting Coinbase covers that flow specifically.
If you tick the wrong box, do not try to edit the key. Delete it and generate a new one. Permissions on some exchanges are fixed at creation, and a key you believe you narrowed may still carry what you originally granted.
How often should I rotate a key, and when must I revoke one?
Rotation is cheap and worth doing on a schedule. Twice a year is sensible for a key you use daily. Delete the old key on the exchange first, then generate a fresh one and reconnect. The tracker will resync from scratch, which takes seconds.
Revoke immediately, without waiting for a schedule, in four situations: you stopped using the service the key was issued to, you pasted the key somewhere you should not have, your phone or laptop was lost or compromised, or the service holding the key disclosed a breach. How to revoke an API key covers where the control lives on each major exchange.
The exact wording differs by venue, and so does the damage a mis-scoped key does. Setup walkthroughs for the venues where the permission model is least obvious: Bybit, KuCoin, OKX, Bitget, MEXC and Gate.
One thing no legitimate tracker will ever ask for is a seed phrase or a private key. An API key is scoped, revocable and enforced by a third party. A seed phrase is none of those things, and anyone requesting one is attacking you. Never share your seed phrase is the shortest guide in this library for a reason.
Generate the key with read only, allowlist it, and the connection becomes what it should have been all along: boring infrastructure that keeps a number current while you think about something else.
Common questions
No. The key carries no trading or withdrawal permission, so the exchange rejects those requests regardless of who signs them. A stolen read-only key is a privacy problem: the holder can see your balances and trade history. Revoke it on the exchange and the exposure ends.
Almost always key scope. Many exchanges default a read key to the spot wallet only, leaving earn products, futures margin, staking and sub-accounts invisible. Regenerate the key with read access to every account section the exchange exposes.
Generate a separate key per service. It costs nothing and it means revoking access to one app does not break the other. It also tells you which service was compromised if a key ever leaks.
Only if you allowlist the wrong address. A tracker queries the exchange from its own servers, not from your phone, so the address to allowlist is the one the tracker publishes in its connection instructions. Entering your home IP will silently block every request.
Coinbase, KuCoin and OKX issue a third secret alongside the key and secret. It is part of the request signature, so the key does not work without it. Store it the same way you store the secret, and never in a note or a chat message.
You control that on the exchange, not in the app. The permission checkboxes live on the exchange's key creation page, and a key issued without trade permission cannot gain it later. Read what you ticked before you copy the key.
Read-only connections to 100+ exchanges, with trading and withdrawal permissions never requested.
Keep reading
Is It Safe to Connect Your Exchange to a Portfolio Tracker?
A read-only key cannot move funds. A tracker breach still exposes your holdings. The real risk, why withdrawal permission is never granted, how to revoke.
How to Revoke an Exchange API Key Properly
Deleting a connection in an app does not revoke the key. Where the real control lives on Binance, Kraken and Coinbase, and how to audit old keys.
What a Portfolio Tracker Can Actually See
Balances and trade history, yes. Private keys, seed phrases and moving funds, no. What the app, the company and the public can each actually see.
Nobody Legitimate Will Ever Ask for Your Seed Phrase
A seed phrase is the wallet, not a password for it. Why no real app or agent needs one, the scripts scammers use, and what to do if you shared it.
Binance Keeps Your Money in Nine Places. Track All of Them.
Binance splits balances across spot, funding, margin, futures and Earn. Build a read-only key that sees all of them, and know what still won't import.
The Coinbase API Key Is Not Inside Your Coinbase Account
Coinbase moved API keys to a developer portal and retired the old ones. Where the key lives now, which permission to grant, and what Wallet needs instead.
Kraken Gives You Ten Permission Boxes. A Tracker Needs Four.
Which of Kraken's permission checkboxes a tracker needs, what the nonce window and query date fields do, and why your ETH shows up as ETH.S.
How to Track a Crypto Portfolio Across Multiple Wallets and Exchanges
Coins in four places and no single number. The three ways to connect an account to a tracker, what each one can see, and the order to set them up in.