Limites de débit
Limitation de débit par portefeuille pour les opérations sur ordres et les requêtes API.
Vue d'ensemble
La limitation de débit est appliquée par portefeuille à l'aide d'un algorithme à fenêtre fixe. Les limites s'appliquent aux :
- Placements d'ordres (
POST /order) - Annulations d'ordres (
DELETE /order) - Requêtes API (utilisation générale des endpoints)
Les limites sont réinitialisées toutes les 60 secondes.
Limites par défaut
| Niveau | Ordres/min | Annulations/min | Requêtes API/min | Ordres ouverts max | Positions max |
|---|---|---|---|---|---|
| Par défaut | 60 | 120 | 600 | 100 | 50 |
| Niveau 1 | 30 | 60 | 300 | 50 | 20 |
| Niveau 2 | 120 | 300 | 1 200 | 500 | 200 |
| Teneur de marché | 600 | 1 200 | 6 000 | 2 000 | Illimité |
Les nouveaux portefeuilles reçoivent les limites par défaut. Contactez le support pour une mise à niveau de votre niveau.
Réponse en cas de limite atteinte
Lorsqu'une limite de débit est dépassée, l'API renvoie 429 Too Many Requests :
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded for OrderPlacement: 60 per minute, retry after 45 seconds",
"retry_after_secs": 45,
"limit": 60
}
En-têtes de réponse
Tous les endpoints soumis à une limitation de débit incluent ces en-têtes, aussi bien dans les réponses de succès que d'erreur :
| En-tête | Description | Exemple |
|---|---|---|
X-RateLimit-Limit | Nombre maximal de requêtes autorisées par fenêtre | 60 |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre en cours | 42 |
X-RateLimit-Reset | Horodatage Unix de réinitialisation de la fenêtre | 1737312060 |
Retry-After | Secondes avant nouvelle tentative (uniquement sur 429) | 45 |
Exemples d'en-têtes de réponse
Requête réussie :
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1737312060
Requête limitée :
HTTP/1.1 429 Too Many Requests
Retry-After: 45
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1737312060
Catégories de limites de débit
Les limites de débit sont suivies séparément pour chaque type d'action :
Placement d'ordres
S'applique à :
POST /order(ordres sur options)POST /bulk_order(ordres groupés, chaque ordre du lot est comptabilisé)PUT /bulk_order(remplacements groupés, chaque remplacement est comptabilisé)
Annulation d'ordres
S'applique à :
DELETE /orderDELETE /bulk_order(annulations groupées, chaque annulation est comptabilisée)DELETE /bulk_order_cloid(annulations groupées par identifiant d'ordre client, chaque annulation est comptabilisée)
Requêtes API
S'applique à l'utilisation générale de l'API sur l'ensemble des endpoints authentifiés.
Limites de positions et d'ordres
En plus des limites de débit, les portefeuilles ont des limites maximales d'ordres ouverts et de positions :
| Type de limite | Description | Rejet |
|---|---|---|
| Ordres ouverts max | Nombre maximal d'ordres ouverts simultanément | Ordre rejeté avant d'atteindre le moteur |
| Positions max | Nombre maximal de positions uniques (-1 = illimité) | Ordre rejeté s'il créerait une nouvelle position |
Lorsque les limites sont dépassées :
{
"error": "limit_exceeded",
"message": "Maximum open orders limit exceeded (100)"
}
Bonnes pratiques
Gestion des limites de débit
- Surveillez les en-têtes : suivez
X-RateLimit-Remainingde manière proactive - Respectez Retry-After : attendez la durée spécifiée avant de réessayer
- Implémentez un backoff : utilisez un backoff exponentiel en cas de 429 répétés
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")
Optimisation de l'utilisation des requêtes
- Utilisez les endpoints groupés :
POST /bulk_orderpour plusieurs ordres en une seule requête - Groupez les annulations :
DELETE /bulk_orderouDELETE /bulk_order_cloidau lieu de multiples requêtesDELETE /order - WebSocket pour les mises à jour : abonnez-vous aux mises à jour d'ordres au lieu d'interroger régulièrement
GET /orders
Surveillance
Suivez ces métriques côté client :
- Taux de requêtes par type d'action
- Tendances de
X-RateLimit-Remaining - Fréquence des réponses 429
- Durées moyennes de
Retry-After
Référence des erreurs
| Statut HTTP | Code d'erreur | Description |
|---|---|---|
| 429 | rate_limit_exceeded | Limite de débit dépassée, réessayez après le délai spécifié |
Consultez Erreurs pour la référence complète des erreurs.