API key security for automated trading

Trade-only permissions, IP whitelisting, encrypted storage and key hygiene — what to set up on the exchange and what to demand from any service that asks for your keys.

Last updated: June 2026

Permissions: trading yes, withdrawals never

Withdrawal permission: never

Exchange API keys carry granular permissions, and the only ones automated trading needs are: read account data, place and cancel orders. Withdrawal permission is never required — a service that asks for it is either built carelessly or built maliciously, and in both cases the correct response is to leave.

A trade-only key bounds your worst case: even if it leaked publicly, an attacker could not move funds off the exchange. The remaining abuse (manipulative trading against your account) is real but far smaller, and the next section closes most of it too.

API key permissions

Set this on the exchange before connecting

  • Read market data
    On
  • Place orders / Trade
    On
  • Withdraw funds
    Never enable
    Off
IP allowlist
Keys pinned to your server
Encrypted at rest (AES-256)
Decrypted only when trading

IP whitelisting: the strongest lock most people skip

Every major exchange lets you bind an API key to specific IP addresses: requests from anywhere else are rejected before the signature is even checked. A whitelisted key that leaks is close to useless — the attacker would need to control the exact server behind your IP as well.

Whitelisting needs a stable address

The catch: whitelisting requires a STABLE address, which shared-infrastructure services cannot honestly offer. Arbitron gives every user a dedicated server with its own static IP precisely so whitelisting works — your keys are pinned to one machine that runs only your trading. Whatever service you use, ask what address its requests come from and whether it is yours alone.

Storage: questions any service must answer

This failure mode is not hypothetical

The 2022 breach of a major bot platform leaked ~100,000 API keys and drained roughly $20M from user accounts — the failure mode is not hypothetical. Before connecting keys anywhere, get answers to three questions: how are keys encrypted at rest, is there one master key that decrypts every user at once, and do keys ever appear in logs or backups in plain text.

Our answers, verifiable

Arbitron's answers, verifiable on our security page: AES-256-GCM encryption, an individual data-encryption key per user wrapped by AWS KMS (no master password that opens everyone), decryption only at the moment of use, and never in logs or analytics. Any serious service should publish equivalents.

Key hygiene: cheap habits that close the rest

One key per service

Create a SEPARATE key for every service — never reuse one key across tools, or a breach in any of them burns all of them. Label keys by service on the exchange so revoking is one click, and delete keys for services you stopped using the same day you stop.

Two-factor on both sides

Finally, protect the account that owns the keys: two-factor authentication on the exchange AND on the trading service, because a takeover of either bypasses every other control. Five minutes of setup covers the attack paths that actually occur in practice.

Frequently asked questions

Can Arbitron withdraw my funds?

No. Arbitron only ever needs trade permission, never withdrawal permission. Create the API key with withdrawals disabled and the worst case is trades — funds can never leave your exchange account through the key. Arbitron is non-custodial by design.

What permissions should the API key have?

Enable futures/perpetual trading only. Leave withdrawals disabled, and do not grant any transfer or sub-account-move scope. If the exchange offers a read-plus-trade preset without withdrawals, that is exactly right.

Should I whitelist Arbitron's server IP?

Yes — it is the strongest lock most people skip. Binding the key to your dedicated server's static IP makes a leaked key useless from anywhere else. Each Arbitron user gets a dedicated static IP precisely so you can whitelist it.

How are my API keys stored?

Encrypted at rest with AES-256 and decrypted only on your isolated trade worker to place orders — never shown in the UI or written to logs. Any service that cannot answer how it stores your keys, and whether it ever needs withdrawal scope, has not earned them.

What if I think a key is compromised?

Revoke it on the exchange immediately and issue a fresh one — that instantly invalidates the old key everywhere. Because the key has no withdrawal rights and is IP-bound, the blast radius is already small, but rotation closes it entirely.

Try Arbitron — find spreads across 20 exchanges

Real-time spread signals, automated execution, full PnL tracking. Free to sign up, invite-only access during beta.

An unhandled error has occurred. Reload X

Reconnecting…

Retrying in s…

Reconnecting…

Arbitron is updating. Back in a few seconds…

No internet connection. Waiting to reconnect…

Session paused

Reloading…