Trading bots on Binance, Coinbase, Kraken, and Bitfinex need IP whitelisting for API security. Route all exchange calls through two fixed EU IPs with one env var.
# .env
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
import requests
r = requests.post(
"https://api.binance.com/api/v3/order",
headers={"X-MBX-APIKEY": KEY},
data={"symbol": "BTCEUR"}
)
Crypto exchanges enforce strict IP whitelisting on API keys to protect against unauthorized access. Trading bots deployed on cloud infrastructure get dynamic IPs that break the whitelist.
Binance, Coinbase, Kraken, and Bitfinex all support (and for high-tier API keys, mandate) IP restrictions on API keys. If your trading bot's outbound IP doesn't match the whitelist, the exchange rejects the order.
Trading bots deployed on cloud servers, VPS, or serverless functions get new outbound IPs on every restart or scale event. The exchange sees an unknown IP and blocks the trade.
In algorithmic trading, a blocked API call isn't just an inconvenience. It's a missed arbitrage opportunity, a stop-loss order that doesn't execute, or a position that doesn't close. Every millisecond blocked is potential loss.
Regulators like SEBI and MiFID II require traceable, auditable trading infrastructure. Auditors want a documented outbound IP for every trade your bot places. Dynamic IPs make compliance reporting harder.
Every API call your trading bot makes to Binance, Coinbase, Kraken, Bitfinex, or any other exchange leaves from the same pair of EU addresses. Whitelist both on every exchange, and every trade passes their security checks.
HTTPS_PROXY and every Python or Node.js trading bot routes through your fixed IPs.Set HTTPS_PROXY and your trading bot is done. No SDK changes.
Your existing trading bot code works as-is. requests reads HTTPS_PROXY automatically.
# .env
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
BINANCE_API_KEY=your_key
import os
import requests
import hmac, hashlib, time
# requests honours HTTPS_PROXY automatically
params = {
"symbol": "BTCEUR",
"side": "BUY",
"type": "LIMIT",
"quantity": "0.001",
"price": "50000",
"timestamp": int(time.time() * 1000),
}
resp = requests.post(
"https://api.binance.com/api/v3/order",
headers={"X-MBX-APIKEY": os.environ["BINANCE_API_KEY"]},
data=params,
)
print(resp.json()["orderId"])
If you use the ccxt library for multi-exchange trading, pass the proxy explicitly with https-proxy-agent.
// .env
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
const ccxt = require('ccxt');
const { HttpsProxyAgent } = require('https-proxy-agent');
const agent = new HttpsProxyAgent(process.env.HTTPS_PROXY);
const exchange = new ccxt.binance({
apiKey: 'your_key',
secret: 'your_secret',
agent, // pass proxy agent to ccxt
});
// Every order routes through your fixed EU IP
const order = await exchange.createLimitBuyOrder('BTC/EUR', 0.001, 50000);
Set it wherever your trading bot runs.
# Docker Compose
services:
bot:
env_file: .env
# Kubernetes: Secret
env:
- name: HTTPS_PROXY
valueFrom:
secretKeyRef:
name: outboundgateway-proxy
key: proxy-url
Two IPs, no missed trades
Your account comes with two static IP addresses. Whitelist both on every exchange. If one proxy node is briefly unavailable, traffic shifts to the other automatically. Your bot keeps trading.
📖 Complete Documentation: For detailed examples, error handling, and other languages, see the Python SSL Proxy Guide, Node.js Guide, and all other language guides.
Two addresses to whitelist on every exchange, with automatic failover. No rotating cloud pool.
Set one env var and your existing trading bot code (requests, ccxt, python-binance) works as-is.
European data centres. GDPR-conscious setup. Your trading API traffic stays within EU jurisdiction.
Binance, Coinbase, Kraken, Bitfinex, and any other exchange with IP whitelisting. One pair covers them all.
TLS passthrough means the proxy can't read your traffic. API keys, secrets, and order data stay private.
Starting from €19/month. Flexible plans for every scale. Cancel anytime.
Stop letting dynamic IPs break your exchange API access and cost you trades. Set one env var and every order routes through two fixed EU IPs.
€19/month starter plan • 7-day refund policy • Direct founder support
Yes, all four exchanges support IP restrictions on API keys. Binance and Kraken allow you to add specific IPs to each API key in their dashboard. Coinbase requires IP whitelisting for certain API key types. Bitfinex also supports trusted IP addresses. OutboundGateway gives you two fixed IPs to register on every exchange.
Yes. If you use ccxt for multi-exchange trading, pass an HttpsProxyAgent as the agent option when you instantiate the exchange. In Python, ccxt uses requests under the hood, so HTTPS_PROXY is picked up automatically.
The proxy adds one network hop. For most trading strategies (market making, arbitrage scanning, grid trading), the added latency is negligible compared to exchange API response times. For ultra-low-latency strategies (sub-millisecond HFT), you should run your bot on a bare-metal server co-located with the exchange, where you can pin your own IP without a proxy.
Happy to talk through how a two-IP EU egress fits your trading setup, whether you run one bot or a fleet.
Contact Our Founders →