Hız Limitleri
Emir işlemleri ve API istekleri için cüzdan başına hız limitleme.
Genel Bakış
Hız limitleme, sabit pencere (fixed-window) algoritması kullanılarak cüzdan başına uygulanır. Limitler şunlara uygulanır:
- Emir gönderimleri (
POST /order) - Emir iptalleri (
DELETE /order) - API istekleri (genel uç nokta kullanımı)
Limitler her 60 saniyede bir sıfırlanır.
Varsayılan Limitler
| Katman | Emir/dk | İptal/dk | API İsteği/dk | Maks. Açık Emir | Maks. Pozisyon |
|---|---|---|---|---|---|
| Varsayılan | 60 | 120 | 600 | 100 | 50 |
| Katman 1 | 30 | 60 | 300 | 50 | 20 |
| Katman 2 | 120 | 300 | 1.200 | 500 | 200 |
| Piyasa Yapıcı | 600 | 1.200 | 6.000 | 2.000 | Sınırsız |
Yeni cüzdanlar varsayılan limitleri alır. Katman yükseltmeleri için destek ekibiyle iletişime geçin.
Hız Limiti Yanıtı
Bir hız limiti aşıldığında, API 429 Too Many Requests döndürür:
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded for OrderPlacement: 60 per minute, retry after 45 seconds",
"retry_after_secs": 45,
"limit": 60
}
Yanıt Başlıkları
Hız limitine tabi tüm uç noktalar, hem başarılı hem de hatalı yanıtlarda şu başlıkları içerir:
| Başlık | Açıklama | Örnek |
|---|---|---|
X-RateLimit-Limit | Pencere başına izin verilen maksimum istek sayısı | 60 |
X-RateLimit-Remaining | Mevcut pencerede kalan istek sayısı | 42 |
X-RateLimit-Reset | Pencerenin sıfırlanacağı Unix zaman damgası | 1737312060 |
Retry-After | Yeniden denemeye kadar geçmesi gereken saniye (yalnızca 429'da) | 45 |
Örnek Yanıt Başlıkları
Başarılı istek:
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1737312060
Hız limitine takılan istek:
HTTP/1.1 429 Too Many Requests
Retry-After: 45
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1737312060
Hız Limiti Kategorileri
Hız limitleri her işlem türü için ayrı ayrı takip edilir:
Emir Gönderimi
Şunlara uygulanır:
POST /order(opsiyon emirleri)POST /bulk_order(toplu emirler, gruptaki her emir sayılır)PUT /bulk_order(toplu değiştirmeler, her değiştirme sayılır)
Emir İptali
Şunlara uygulanır:
DELETE /orderDELETE /bulk_order(toplu iptaller, her iptal sayılır)DELETE /bulk_order_cloid(müşteri emir kimliğine göre toplu iptaller, her iptal sayılır)
API İstekleri
Kimliği doğrulanmış tüm uç noktalardaki genel API kullanımına uygulanır.
Pozisyon ve Emir Limitleri
Hız limitlerine ek olarak, cüzdanların maksimum açık emir ve pozisyon limitleri vardır:
| Limit Türü | Açıklama | Reddedilme |
|---|---|---|
| Maks. Açık Emir | Eşzamanlı maksimum açık emir sayısı | Emir, motora ulaşmadan reddedilir |
| Maks. Pozisyon | Maksimum benzersiz pozisyon sayısı (-1 = sınırsız) | Yeni pozisyon oluşturacaksa emir reddedilir |
Limitler aşıldığında:
{
"error": "limit_exceeded",
"message": "Maximum open orders limit exceeded (100)"
}
En İyi Uygulamalar
Hız Limitlerini Yönetme
- Başlıkları izleyin:
X-RateLimit-Remainingdeğerini proaktif olarak takip edin - Retry-After'a uyun: Yeniden denemeden önce belirtilen süre kadar bekleyin
- Backoff uygulayın: Tekrarlayan 429'larda üstel backoff (exponential backoff) kullanın
import time
def place_order_with_retry(order, max_retries=3):
for attempt in range(max_retries):
response = api.place_order(order)
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue
return response
raise RateLimitError("Max retries exceeded")
İstek Kullanımını Optimize Etme
- Toplu uç noktaları kullanın: Tek istekte birden fazla emir için
POST /bulk_order - İptalleri gruplayın: Birden fazla
DELETE /orderisteği yerineDELETE /bulk_orderveyaDELETE /bulk_order_cloid - Güncellemeler için WebSocket:
GET /ordersile sürekli sorgulama (polling) yerine emir güncellemelerine abone olun
İzleme
Şu istemci taraflı metrikleri takip edin:
- İşlem türü başına istek oranı
X-RateLimit-Remainingeğilimleri- 429 yanıt sıklığı
- Ortalama
Retry-Aftersüreleri
Hata Referansı
| HTTP Durumu | Hata Kodu | Açıklama |
|---|---|---|
| 429 | rate_limit_exceeded | Hız limiti aşıldı, belirtilen süreden sonra yeniden deneyin |
Hataların tam referansı için Errors sayfasına bakın.