Frais et limites
Limites de requêtes et erreurs
Limites et erreurs de l’API Seeryx : format JSON des erreurs, codes comme below_minimum et rate_limited, statuts HTTP, limites et nouvelles tentatives.
Format des erreurs
Chaque erreur est un objet JSON avec une phrase lisible par un humain dans error ; lorsqu’un programme doit réagir, un code stable et parfois d’autres champs.
{ "error": "Invalid limit" }
{ "error": "Minimum order is 5 shares", "code": "below_minimum", "minimum": 5 }
{ "error": "Post only: this order would trade at once at 16¢; lower the price or turn Post only off", "code": "would_take" }
{ "error": "Too many open orders ...", "code": "open_orders_limit", "limit": { "account": 200, "round": 100 } }
{ "error": "Too many orders", "code": "rate_limited", "retryAfter": 4 }Codes d’erreur
| code | Statut | Signification | Que faire |
|---|---|---|---|
below_minimum | 400 | Moins de parts que le minimum ; minimum indique combien | Augmentez la taille |
would_take | 400 | Un ordre Post-only s’exécuterait aussitôt | Éloignez le prix de l’autre côté du carnet |
open_orders_limit | 400 | Trop d’ordres en attente ; limit contient les plafonds par compte et par marché | Annulez-en d’abord quelques-uns |
trading_paused | 400 | La clé de session qui l’a signé a été fermée | Ouvrez une nouvelle session et signez de nouveau |
rate_limited | 429 | Trop de requêtes d’ordre ; retryAfter en secondes | Attendez, puis renvoyez la même requête |
trading_halted | 503 | Le trading est suspendu pour tous ; GET /api/notice peut en indiquer la raison | Attendez ; les annulations fonctionnent toujours |
Les réponses aux ordres peuvent aussi contenir un champ reason qui n’est pas une erreur : no_liquidity, beyond_limit et share_limit (voir Trading).
Statuts HTTP
| Statut | Cas |
|---|---|
| 400 | Entrée invalide, liquidités ou parts libres insuffisantes, manche non négociable ou en cours de clôture, ordre inférieur au minimum, ordre Post-only qui s’exécuterait, ordre signé qui ne correspond pas, en-tête Idempotency-Key manquant ou réutilisé |
| 401 | Jeton de connexion manquant, invalide ou expiré (seeryx.com répond à ces cas par un 403) |
| 403 | Jeton de connexion manquant, invalide ou expiré sur seeryx.com ("Authentication required", "Invalid or expired token"), ou compte bloqué |
| 404 | Manche, marché ou profil inconnu |
| 408 | La requête a pris plus de 30 secondes |
| 409 | Impossible pour le moment : pas encore de compte, une opération encore en cours de règlement, un retrait pas encore prêt |
| 413 | Corps trop volumineux : 16 Ko pour un ordre, une scission ou une fusion, 15 fois plus pour un lot, 100 Ko pour tout le reste |
| 429 | Une limite de requêtes : attendez le nombre de secondes indiqué par Retry-After |
| 502 | Solana ou le pont n’a pas répondu |
| 503 | Trading suspendu (code trading_halted), horloge de la plateforme indisponible, ou serveur surchargé (Retry-After) |
Limites de requêtes
| Opération | Limite | Compté par |
|---|---|---|
| Ordres (chaque ordre d’un lot compte), annulations, scissions, fusions | 250 par tranche de 10 secondes | Compte |
| Ordres en attente | 200 au total, 100 sur un même marché | Compte |
| Votre compte, vos ordres, vos positions, votre solde, /auth/me | 12 000 par minute au total | Compte |
| Votre activité, vos positions réglées, votre flux, vos gains et pertes | 300 par minute au total | Compte |
| Marchés et manches (/markets..., /rounds/:slug) | 1 200 par minute | Adresse IP |
| Carnet d’ordres, transactions, volume, résumé des marchés, activité de la manche | 3 000 par minute | Adresse IP |
| Statistiques, classement, profils, détenteurs | 300 par minute | Adresse IP |
| /auth/nonce, /auth/verify | 30 par minute chacun | Adresse IP |
| /deposit/recover | 2 par minute | Compte |
| WebSocket | Voir WebSocket | Connexion, adresse IP |
Au-delà d’une limite, la réponse est 429 avec Retry-After en secondes. Un serveur surchargé répond 503 avec Retry-After. Les réponses des statistiques, du classement et des détenteurs peuvent dater de quelques secondes. GET https://seeryx.com/health répond { "status": "ok" } pour les vérifications de disponibilité.
Réessayer sans risque
- 429 et 503 : attendez le temps indiqué par
Retry-After, puis renvoyez la même requête. - Une erreur réseau ou un 5xx sur une écriture : renvoyez le même corps avec le même en-tête
Idempotency-Key; si la première tentative a abouti, vous recevez sa réponse, et rien n’est passé deux fois. - 400 : ne la répétez pas telle quelle ; corrigez la requête, puis envoyez-la avec une nouvelle clé (et un nouvel id signé).
- 401 ou 403 : reconnectez-vous.