Hız Limitleri
Emir operasyonları ve API istekleri için cüzdan başına hız sınırlaması.
Genel Bakış
Hız sınırlaması sabit 60 saniyelik pencereler kullanır. Cüzdan limitleri cüzdanın seviyesinden (tier) gelir ve şunlara uygulanır:
- Emir girişleri (
POST /order,PUT /order, WebSocketPlaceOrderve TEE rotası üzerinden perp emir gönderimleri) - Emir iptalleri (
DELETE /order,DELETE /order_cloidve TEE rotası üzerinden perp iptalleri) - API istekleri (cüzdan kapsamlı okumalar ve diğer imzalı yazma işlemleri)
İptaller, agent yetkilendirmesi, MMP yazma işlemleri ve herkese açık risk simülasyonları için ağ kaynağına göre anahtarlanan ayrı limitler ile süreç genelinde bir üst sınır uygulanır.
Sayaçlar her API süreci tarafından bellekte tutulur. Replikalar arasında paylaşılmazlar; bu nedenle yayınlanan rakamları küme genelinde bir bütçe olarak değil, tek bir sürecin kabul edeceği azami miktar olarak değerlendirin.
Varsayılan Limitler
| Seviye | Emir/dk | İptal/dk | API İsteği/dk | Azami Açık Emir | Azami Pozisyon |
|---|---|---|---|---|---|
| Varsayılan | 60 | 120 | 600 | 100 | 50 |
| Tier 1 | 30 | 60 | 300 | 50 | 20 |
| Tier 2 | 120 | 300 | 1,200 | 500 | 200 |
| Piyasa Yapıcı | 1,200 | 2,400 | 6,000 | 5,000 | Sınırsız |
Yeni cüzdanlar varsayılan limitleri alır. Seviye yükseltmeleri için destek ekibiyle iletişime geçin. Mevcut API istek limitiniz, cüzdan kapsamlı herhangi bir okuma işleminin (örneğin GET /orders?wallet=...) X-RateLimit-Limit başlığında yer alır.
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ı
Cüzdan limitli uç noktalar şu başlıkları döndürür. Bir 429 yanıtı X-RateLimit-Limit, X-RateLimit-Remaining: 0 ve Retry-After içerir, ancak X-RateLimit-Reset içermez:
| Başlık | Açıklama | Örnek |
|---|---|---|
X-RateLimit-Limit | Pencere başına izin verilen azami istek sayısı | 60 |
X-RateLimit-Remaining | Mevcut pencerede kalan istek sayısı | 42 |
X-RateLimit-Reset | Pencerenin sıfırlanacağı Unix zaman damgası, saniye cinsinden (yalnızca başarılı yanıtlarda) | 1737312060 |
Retry-After | Yeniden denemeye kadar geçecek 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
Hız Limiti Kategorileri
Hız limitleri her işlem türü için ayrı ayrı takip edilir:
Emir Girişi
Cüzdan başına, seviyenin Emir/dk limitine karşı sayılır:
POST /ordervePUT /order- WebSocket
PlaceOrder POST /v1/tee-perp/orders/submitve diğer perp emir gönderimleri, Account yöneticisine (manager) karşı sayılır
POST /bulk_order ve PUT /bulk_order istek başına 50 kayıtla sınırlıdır.
Emir İptali
Cüzdan başına, seviyenin İptal/dk limitine karşı sayılır:
DELETE /orderveDELETE /order_cloid- Perp iptalleri, imzalayan API cüzdanına karşı sayılır
DELETE /bulk_order ve DELETE /bulk_order_cloid dahil her iptal rotası, imza doğrulamasından önce ayrıca dakikada ağ kaynağı başına 6,000 ve süreç genelinde 60,000 iptal ayağıyla sınırlandırılır. Toplu bir iptal, her kayıt için bir ayak olarak sayılır.
API İstekleri
Cüzdan başına, seviyenin API İsteği/dk limitine karşı sayılır:
walletsorgu parametresine göre anahtarlanan cüzdan kapsamlı okumalar- MMP yapılandırması ve teminat modu gibi yukarıda listelenmeyen imzalı yazma işlemleri
RFQ Gönderimi
POST /rfq/request ve WebSocket RFQ gönderim komutları, seviyeden bağımsız olarak cüzdan başına dakikada 10 ile sınırlıdır.
Risk Simülasyonu
Herkese açık portföy ve emir simülasyonları (POST /risk/simulate/portfolio,
POST /risk/simulate/orders ve perp önizlemesi POST /v1/tee-perp/preview)
dakikada ağ kaynağı başına 60 istek ve süreç genelinde 600 istek olmak üzere
ayrı limitlere sahiptir. Tek bir API sürecinde aynı anda en fazla dört
simülasyon çalışır. Bir kotayı aşan veya simülasyon işçilerini dolu bulan
istek 429 Too Many Requests döndürür.
Agent Yetkilendirmesi
POST /approve-agent, DELETE /revoke-agent ve DELETE /revoke-all-agents, imza doğrulamasından önce dakikada ağ kaynağı başına 120 istek ve süreç genelinde 1,200 istekle sınırlandırılır.
MMP Yazma İşlemleri
MMP yapılandırma yazma işlemleri, cüzdanın API istek limitine ek olarak, imza doğrulamasından önce dakikada ağ kaynağı başına 120 istek ve süreç genelinde 1,200 istekle sınırlandırılır.
Pozisyon ve Emir Limitleri
Hız limitlerine ek olarak, cüzdanların azami açık emir ve pozisyon limitleri vardır:
| Limit Türü | Açıklama | Ret |
|---|---|---|
| Azami Açık Emir | Eşzamanlı azami açık emir sayısı | Cüzdan limitteyken yeni emir reddedilir |
| Azami Pozisyon | Azami benzersiz pozisyon sayısı (-1 = sınırsız) | Yeni bir pozisyon açacaksa emir reddedilir |
Bunlar HTTP hataları değil, emir retleridir. Emir yanıtı HTTP 200 olup status: "REJECTED" ve aşağıdakiler gibi bir reason içerir:
max_open_orders_exceeded: current=100, limit=100
max_positions_exceeded: wallet 0x... has 50 positions, limit is 50
En İyi Uygulamalar
Hız Limitlerini Yönetme
- Başlıkları izleyin:
X-RateLimit-Remainingdeğerini proaktif olarak takip edin - Retry-After değerine uyun: Yeniden denemeden önce belirtilen süre kadar bekleyin
- Geri çekilme (backoff) uygulayın: Tekrarlanan 429'larda üstel geri çekilme 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 bir istekte birden fazla emir için
POST /bulk_order - İptalleri toplu yapın: Birden fazla
DELETE /orderisteği yerineDELETE /bulk_orderveyaDELETE /bulk_order_cloid - Güncellemeler için WebSocket:
GET /ordersile yoklama yapmak yerine emir güncellemelerine abone olun
İzleme
Şu istemci tarafı metrikleri takip edin:
- İşlem türü başına istek hızı
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 |
Tam hata referansı için Hatalar sayfasına bakın.