Kripto Piyasa Verisi İçin Proksiler: Neden ve Nasıl?
Kripto piyasalarında algoritmik ticaret, risk yönetimi ve DeFi analitiği yapan ekiplerin en büyük engeli veriye erişimdir. Binance, Coinbase, OKX ve Bybit gibi merkezi borsalar (CEX), public API endpoint'lerini agresif rate limit'e tabi tutar; geo-restriction uygulayan borsalar ABD IP'lerini tamamen engeller. Bu rehber, kripto piyasa verisi scraping işleminde proksilerin rolünü, on-chain veri toplama ile CEX scraping arasındaki mimari farkları ve ProxyHat ile production-grade kurulumu açıklıyor.
Temel ayrım: On-chain veri (blok zinciri RPC'leri) için proksi genelde gerekmez; CEX web ve REST API verisi için residential proksi kritik bir altyapı bileşenidir.
Hedef Veri: CEX vs On-Chain
Kripto piyasasında iki temel veri kaynağı vardır ve her biri farklı erişim desenleri gerektirir:
CEX (Merkezi Borsa) Verileri
- Fiyat akışları (tick data): Binance, Coinbase, OKX, Bybit REST ve WebSocket API'leri üzerinden gerçek zamanlı trade verisi.
- Orderbook snapshotları: Derinlik verisi, bid/ask spread analizi, likidite haritalaması.
- Funding rate'ler: Perpetual futures pozisyon maliyeti, arbitraj fırsatı tespiti.
- Liquidation verileri: Zorla kapatılan pozisyonlar, cascade risk analizi.
- Web arayüzü verileri: API'de sunulmayan UI-spesifik veriler (bazı funding rate geçmişi, earn oranları vb.).
On-Chain (Blok Zinciri) Verileri
- RPC node'ları: Alchemy, Infura, QuickNode gibi sağlayıcılar üzerinden doğrudan blok zinciri sorguları.
- Indexer'lar: The Graph, Dune Analytics, Covalent — on-chain veriyi SQL benzeri arayüzlerle sunan platformlar.
- DEX verileri: Uniswap, Curve, PancakeSwap on-chain swap ve likidite olayları.
| Veri Türü | Kaynak | Erişim Yöntemi | Proksi Gereksinimi |
|---|---|---|---|
| CEX fiyat akışı | Binance / OKX REST API | HTTP REST + Proxy Rotation | Yüksek — rate limit ve geo engeli |
| CEX gerçek zamanlı | Binance / Bybit WebSocket | WS bağlantısı (public) | Düşük-Orta — bağlantı başına limit |
| Orderbook snapshot | CEX REST API | HTTP REST + Proxy Rotation | Yüksek — ağır payload, sık sorgu |
| Funding rate | CEX REST / Web | REST + Browser Scraping | Yüksek — özellikle geçmiş veri |
| On-chain event | Alchemy / Infura RPC | JSON-RPC (HTTPS/WSS) | Genelde gereksiz |
| On-chain indexed | The Graph / Dune | GraphQL / REST | Çoğunlukla gereksiz |
CEX Scraping: Neden Residential Proksi Kritik?
Merkezi borsalar, public API'lerini korumak için katı mekanizmalar uygular. Bu mekanizmalar, veri toplama ekiplerinin en sık karşılaştığı engellerdir:
IP Bazlı Rate Limiting
Binance API dokümantasyonuna göre, tek bir IP'den 1200 request/dakika limiti uygulanır (Binance API Docs). Bu limit, tek bir makineden yapılan sıralı istekler için yeterli görünebilir; ancak 100+ trading pair'in orderbook snapshot'ını 1 saniyede çekmeye çalışan bir quant ekibi için kesinlikle yetersizdir. Coinbase ve OKX benzer limitler uygular; Bybit ise weight-based bir sistem kullanır.
Rate limit aşıldığında HTTP 429 Too Many Requests döner. Sürekli ihlal durumunda ise ceza olarak HTTP 451 Unavailable For Legal Reasons veya geçici IP ban uygulanabilir. Bu yükseliş, 429'dan 451'e, genellikle saatler içinde gerçekleşir ve ban süresi 12 saatten fazla olabilir.
Geo-Restriction (Coğrafi Kısıtlama)
Binance, ABD IP'lerinden gelen erişimi engeller ve kullanıcıları Binance.US'a yönlendirir. Benzer kısıtlamalar OKX ve Bybit tarafından da uygulanır. Bu, ABD'deki bir quant ekibinin Binance global verisine erişemeyeceği anlamına gelir — residential proksi olmadan.
Residential proksi bu noktada devreye girer: Gerçek ISP IP'leri üzerinden yapılan istekler, datacenter IP'lerine kıyasla çok daha düşük şüphe skoru taşır. Borsalar, datacenter IP bloklarını (AWS, GCP, DigitalOcean ranges) tanıyabilir ve daha agresif rate limit uygulayabilir. Residential IP'ler ise gerçek kullanıcı trafiğinden ayırt edilemez.
Finansal veri bütünlüğü için: Her request'e timestamp ekleyin, sıralı delivery garantisi olmayan UDP tabanlı yaklaşımlardan kaçının. Veri kaynağınızın saat senkronizasyonu NTP ile yapılmış olmalı.
On-Chain Veri: Proksi Genelde Gerekmez
Blok zinciri verisi, doğası gereği public ve permissionless'tir. Bir Ethereum node'una JSON-RPC ile eriştiğinizde, IP'nizin kaynağı genelde önemli değildir — çünkü her node aynı veriyi sunar. Alchemy, Infura veya QuickNode gibi sağlayıcılar, API key bazlı kimlik doğrulama kullanır; IP bazlı kısıtlama uygulamaz.
Ancak bazı edge case'lerde proksi faydalı olabilir:
- Throughput artışı: Tek bir API key ile saniyede 300 compute unit limiti varsa, birden fazla IP üzerinden paralel sorgu yaparak throughput'u artırabilirsiniz.
- Geo-optimizasyon: Node'lar farklı bölgelerde replika tutar; Avrupa'daki bir node'a ABD'den erişim, latency artırır. Coğrafi olarak yakın proxy üzerinden erişim, RPC yanıt süresini düşürebilir.
- Rate limit bypass: Free tier Alchemy hesabı ile saniyede 30 compute unit limiti vardır. Birden fazla hesap + residential proxy ile bu limit çoğaltılabilir.
Ama genel kural: On-chain veri için öncelikle RPC sağlayıcı kullanın, proksi ikinci plandadır.
Mimari: WebSocket Öncelikli, REST Fallback
Gerçek zamanlı kripto veri mimarisinde öncelik WebSocket'dir. Binance, OKX ve Bybit public WebSocket endpoint'leri sunar; bu endpoint'ler sürekli veri akışı sağlar ve REST'e kıyasla çok daha verimlidir.
Mimari Katmanlar
- WebSocket Layer (Gerçek Zamanlı): Trade akışı, orderbook güncellemeleri, kline verisi. Her borsa için ayrı WS bağlantısı. Proxy gereksinimi düşük — bağlantı başına limit geçerlidir, IP başına değil.
- REST Layer (Snapshot + Fallback): Orderbook depth snapshot, funding rate geçmişi, historical trade verisi. Agresif rate limit burada devreye girer; residential proxy rotation kritiktir.
- On-Chain Layer (RPC): DEX event'leri, smart contract state okumaları. Alchemy/Infura API key ile erişim, proksi genelde gereksiz.
Python ile Binance REST Proxy Rotation
import requests
import time
from itertools import cycle
# ProxyHat residential proxy rotation
# Her request'te farklı IP: username içinde rastgele session ID
PROXY_BASE = "http://user-country-US-session-{sid}:PASSWORD@gate.proxyhat.com:8080"
SYMBOLS = ["BTCUSDT", "ETHUSDT", "SOLUSDT", "BNBUSDT"]
BINANCE_DEPTH_URL = "https://api.binance.com/api/v3/depth"
def fetch_orderbook(symbol: str, session_id: str, limit: int = 20) -> dict:
"""Binance orderbook snapshot with residential proxy rotation."""
proxy_url = PROXY_BASE.format(sid=session_id)
proxies = {"http": proxy_url, "https": proxy_url}
params = {"symbol": symbol, "limit": limit}
resp = requests.get(
BINANCE_DEPTH_URL,
params=params,
proxies=proxies,
timeout=10
)
resp.raise_for_status()
return resp.json()
# 4 sembol için paralel snapshot — her biri farklı IP
for i, symbol in enumerate(SYMBOLS):
data = fetch_orderbook(symbol, session_id=f"snap{i:04d}")
bid = float(data["bids"][0][0])
ask = float(data["asks"][0][0])
print(f"{symbol}: bid={bid} ask={ask} spread={ask-bid:.2f}")
time.sleep(0.1)
Node.js ile OKX Funding Rate Scraping
const axios = require('axios');
// ProxyHat SOCKS5 proxy for geo-restricted OKX access
const PROXY_HOST = 'gate.proxyhat.com';
const PROXY_PORT = 1080;
async function getFundingRate(instId) {
// Sticky session with specific country for consistent access
const proxyAuth = {
username: 'user-country-SG', // Singapore for SEA exchange proximity
password: 'PASSWORD'
};
const resp = await axios.get(
'https://www.okx.com/api/v5/public/funding-rate',
{
params: { instId },
proxy: {
host: PROXY_HOST,
port: PROXY_PORT,
auth: proxyAuth,
protocol: 'socks5'
},
timeout: 10000
}
);
return resp.data.data[0];
}
getFundingRate('BTC-USDT-SWAP')
.then(d => console.log(
`Funding: ${d.fundingRate} | Next: ${d.nextFundingTime}`
));
curl ile Binance Proxy Testi
# Binance API'ye ABD residential IP üzerinden erişim
# (Binance global, ABD IP'lerini engeller — ABD dışı IP kullanın)
curl -x "http://user-country-DE-session-test123:PASSWORD@gate.proxyhat.com:8080" \
"https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT"
# OKX funding rate — Singapur IP ile düşük latency
curl -x "socks5://user-country-SG-session-funding01:PASSWORD@gate.proxyhat.com:1080" \
"https://www.okx.com/api/v5/public/funding-rate?instId=BTC-USDT-SWAP"
# Bybit orderbook — Japonya IP ile
curl -x "http://user-country-JP-session-obSnapshot:PASSWORD@gate.proxyhat.com:8080" \
"https://api.bybit.com/v5/market/orderbook?category=linear&symbol=BTCUSDT&limit=25"
WebSocket + REST Hibrit Mimari (Python)
import asyncio
import json
import websockets
import requests
from datetime import datetime
# WebSocket: gerçek zamanlı trade akışı (proxy gerekmez)
# REST: orderbook snapshot (proxy rotation ile)
WS_URL = "wss://stream.binance.com:9443/ws/btcusdt@trade"
REST_PROXY = "http://user-country-DE-session-snap:PASSWORD@gate.proxyhat.com:8080"
DEPTH_URL = "https://api.binance.com/api/v3/depth"
async def stream_trades():
"""WS ile gerçek zamanlı trade akışı."""
async with websockets.connect(WS_URL) as ws:
while True:
msg = json.loads(await ws.recv())
price = msg["p"]
qty = msg["q"]
ts = datetime.fromtimestamp(msg["T"] / 1000)
print(f"[WS-TRADE] {ts} price={price} qty={qty}")
def get_depth_snapshot():
"""REST ile orderbook snapshot — residential proxy üzerinden."""
proxies = {"http": REST_PROXY, "https": REST_PROXY}
resp = requests.get(
DEPTH_URL,
params={"symbol": "BTCUSDT", "limit": 20},
proxies=proxies,
timeout=10
)
data = resp.json()
best_bid = float(data["bids"][0][0])
best_ask = float(data["asks"][0][0])
print(f"[REST-DEPTH] bid={best_bid} ask={best_ask} spread={best_ask-best_bid:.2f}")
# Kullanım: WS sürekli akış, REST periyodik snapshot
# asyncio.run(stream_trades()) # Arka planda
# get_depth_snapshot() # Her 5 saniyede bir
Latans Optimizasyonu: Borsa-Proksi Bölge Eşleşmesi
Kripto veri toplamada latans, doğrudan arbitraj kârını etkiler. 50 ms'lik bir gecikme, HFT stratejilerinde anlamlı bir dezavantaj yaratır. Bu nedenle, proxy lokasyonunu borsa sunucu lokasyonuyla eşleştirmek kritiktir:
| Borsa | Sunucu Bölgesi (Tahmini) | Önerilen Proxy Lokasyonu | Beklenen Latans |
|---|---|---|---|
| Binance Global | Singapur / Tokyo | Singapur (SG), Japonya (JP) | 5-20 ms |
| Coinbase | ABD Doğu (Virginia) | ABD (US) | 5-15 ms |
| OKX | Singapur / Hong Kong | Singapur (SG), Hong Kong (HK) | 5-25 ms |
| Bybit | Singapur | Singapur (SG) | 5-20 ms |
| Kraken | ABD / Avrupa | ABD (US), Almanya (DE) | 10-30 ms |
ProxyHat ile desteklenen lokasyonlar arasında seçim yaparak, hedef borsaya en yakın bölgeden bağlanabilirsiniz. Username parametresinde country-SG veya country-JP gibi değerlerle coğrafi hedefleme yapılır.
Yaygın Hatalar ve Edge Case'ler
1. Datacenter IP ile CEX Scraping Yapmak
En sık yapılan hata: AWS veya DigitalOcean IP'leri ile Binance API'sini sorgulamak. Borsalar, datacenter IP bloklarını bilerek ve bu IP'lere karşı 3-5x daha agresif rate limit uygulayarak koruma yapar. İlk 100 request başarılı olabilir, sonrasında aniden 429 veya 451 döner. Çözüm: Residential proxy kullanın.
2. Sticky Session vs Per-Request Rotation Karışıklığı
WebSocket bağlantıları için sticky session (aynı IP'yi koruma) gereklidir — her request'te IP değişirse WS bağlantısı kopar. REST scraping için ise per-request rotation (her istekte yeni IP) tercih edilmelidir. ProxyHat'ta session ID belirterek sticky session, belirterek per-request rotation yapabilirsiniz:
- Sticky:
user-country-SG-session-myWsConn1:PASSWORD - Per-request: Her çağrıda farklı
session-{random}değeri kullanın.
3. Timestamp Senkronizasyonu Eksikliği
Finansal veri bütünlüğü için her veri noktasının doğru timestamp ile kaydedilmesi şarttır. Borsaların döndürdüğü serverTime ile yerel saatiniz arasındaki farkı ölçün ve offset olarak saklayın. NTP senkronizasyonu, quant sistemlerinde standart bir gerekliliktir.
4. WebSocket Reconnect Mantığı Eksikliği
WS bağlantıları kopabilir — bu kaçınılmazdır. Reconnect mantığı olmadan, veri akışında saatlerce boşluk oluşabilir. Exponential backoff ile reconnect, bağlantı sonrası snapshot ile gap doldurma mekanizması kurun.
5. Geo-Restriction'ı Yanlış Yöntemle Aşmak
VPN ile Binance'e erişmek, API çağrıları için güvenilmez bir yöntemdir — VPN IP'leri genelde datacenter bloklarındadır ve engellenebilir. Residential proxy, gerçek ISP IP'leri sunduğu için çok daha güvenilirdir.
Regülatif Hususlar
Kripto veri toplama, birkaç regülatif katmanı beraberinde getirir:
- Borsa Kullanım Şartları (ToS): Çoğu borsa, API erişimini kişisel ticaret için serbest bırakırken, ticari amaçla veri yeniden dağıtımını kısıtlar. Binance API Terms of Use, veriyi üçüncü tarafa satmayı yasaklar. Okuyun ve anlayın.
- Geo-restriction ve Yerel Hukuk: ABD'den Binance Global'e erişmek, Binance'in ToS'unu ihlal etmenin ötesine geçebilir — SEC ve CFTC düzenlemeleri kapsamında değerlendirilmelidir. Bu rehber, hukuki tavsiye niteliği taşımaz; kendi yargı alanınızda danışmanlık alın.
- Market Data Lisansları: Borsa verilerini ticari ürünlerde kullanmak için çoğu borsadan ek lisans gerekebilir. SEC ve MiFID II kapsamında, finansal ürünlerde kullanılan piyasa verisinin kaynağının doğrulanabilir olması gerekebilir.
- GDPR / CCPA: Kişisel veri toplamıyorsanız (sadece anonim piyasa verisi), bu düzenlemeler genelde uygulanmaz. Ancak kullanıcı portföy verisi veya hesap bilgisi topluyorsanız, KVKK/GDPR uyumluluğunu değerlendirin.
Önemli: Bu rehber, teknik mimari açıklaması sunar. Hukuki tavsiye niteliği taşımaz. Borsa ToS ihlali ve yargı alanına göre değişen regülasyon riskleri için mutlaka hukuki danışmanlık alın.
ProxyHat ile Kripto Veri Altyapısı Kurulumu
ProxyHat fiyatlandırması, ihtiyacınıza göre ölçeklenebilir. Kripto veri toplama için önerilen konfigürasyon:
- Residential Proxy: CEX REST API scraping için.
country-{CODE}ile borsa bölgesine yakın IP seçimi. Per-request rotation ile rate limit avoidance. - Datacenter Proxy: On-chain RPC istekleri için (düşük latency, yüksek throughput). RPC sağlayıcı zaten API key ile kimlik doğrulama yapar; residential IP gerekmez.
- Mobile Proxy: En agresif anti-bot koruması olan borsalar için. Mobil IP'ler, en düşük şüphe skoruna sahiptir.
Kurulum adımları:
- ProxyHat dashboard'a giriş yapın.
- Proksi paketinizi seçin — residential, datacenter veya mobile.
- Username parametresinde bölge ve session ayarlarınızı yapılandırın.
- Kodunuzda HTTP proxy URL'sini kullanın:
http://user-country-SG-session-abc123:PASSWORD@gate.proxyhat.com:8080 - Ayrıntılı konfigürasyon için ProxyHat dokümantasyonu'na başvurun.
Daha geniş scraping senaryoları için web scraping kullanım senaryoları ve SERP tracking sayfalarımızı inceleyin.
Temel Çıkarımlar
- On-chain vs CEX ayrımını net yapın: RPC verisi için proksi genelde gereksizdir; CEX API scraping için residential proksi kritiktir.
- WebSocket öncelikli mimari kurun: Gerçek zamanlı veri için WS, snapshot ve geçmiş veri için REST + proxy rotation.
- Borsa bölgesine yakın proxy seçin: Binance için Singapur/Japonya, Coinbase için ABD, OKX için Singapur — latans doğrudan kârı etkiler.
- 429'dan 451'e geçiş riskini ciddiye alın: Datacenter IP ile agresif scraping, hızla kalıcı IP ban'a dönüşebilir. Residential proxy bu riski minimize eder.
- Timestamp bütünlüğünü garanti edin: NTP senkronizasyonu, serverTime offset hesabı, ve sıralı delivery kontrolü — finansal veride bunlar vazgeçilmezdir.
- Regülasyonu ihmal etmeyin: Borsa ToS okuyun, market data lisans gereksinimlerini kontrol edin, geo-restriction'ı yerel hukuka uygun şekilde aşın.
SSS
Aşağıda, kripto piyasa verisi proksileri hakkında en sık sorulan soruları yanıtlıyoruz:






