Comisiones y límites
Límites de solicitudes y errores
Límites y errores de la API de Seeryx: el formato JSON de los errores, códigos como below_minimum y rate_limited, estados HTTP, límites y reintentos.
Formato de los errores
Todo error es un JSON con una frase para personas en error y, cuando un programa debe actuar en consecuencia, un code estable y, a veces, más campos.
{ "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 }Códigos de error
| code | Estado | Significado | Qué hacer |
|---|---|---|---|
below_minimum | 400 | Menos acciones que el mínimo; minimum indica cuántas | Aumenta el tamaño |
would_take | 400 | Una orden solo maker se ejecutaría al instante | Aleja el precio del otro lado |
open_orders_limit | 400 | Demasiadas órdenes en el libro; limit contiene los topes por cuenta y por mercado | Cancela algunas primero |
trading_paused | 400 | La clave de sesión que la firmó se cerró | Abre una sesión nueva y vuelve a firmar |
rate_limited | 429 | Demasiadas solicitudes de órdenes; retryAfter en segundos | Espera y envía la misma solicitud |
trading_halted | 503 | Las operaciones están detenidas para todos; GET /api/notice puede indicar el motivo | Espera; las cancelaciones siguen funcionando |
Las respuestas a las órdenes también pueden llevar un reason que no es un error: no_liquidity, beyond_limit y share_limit (consulta Operar).
Códigos de estado HTTP
| Estado | Cuándo |
|---|---|
| 400 | Entrada no válida, efectivo o acciones libres insuficientes, una ronda que no se opera o que está cerrando, una orden por debajo del mínimo, una orden solo maker que se ejecutaría, una orden firmada que no coincide, una Idempotency-Key ausente o reutilizada |
| 401 | Un token de inicio de sesión ausente, no válido o vencido (seeryx.com responde a estos casos con 403) |
| 403 | Un token de inicio de sesión ausente, no válido o vencido en seeryx.com ("Authentication required", "Invalid or expired token"), o una cuenta bloqueada |
| 404 | Ronda, mercado o perfil desconocido |
| 408 | La solicitud tardó más de 30 segundos |
| 409 | No es posible en este momento: aún no hay cuenta, una operación se sigue liquidando, un retiro no está disponible |
| 413 | Cuerpo demasiado grande: 16 KB para una orden, una división o una combinación, 15 veces eso para un lote y 100 KB para todo lo demás |
| 429 | Un límite de solicitudes: espera los segundos que indique Retry-After |
| 502 | Solana o el puente no respondieron |
| 503 | Operaciones detenidas (código trading_halted), reloj del exchange no disponible o servidor ocupado (Retry-After) |
Límites de solicitudes
| Concepto | Límite | Se cuenta por |
|---|---|---|
| Órdenes (cuenta cada orden de un lote), cancelaciones, divisiones, combinaciones | 250 cada 10 segundos | Cuenta |
| Órdenes en el libro | 200 en total, 100 en un mismo mercado | Cuenta |
| Tu cuenta, órdenes, posiciones, saldo, /auth/me | 12.000 por minuto en conjunto | Cuenta |
| Tu actividad, /settled, /feed, G/P | 300 por minuto en conjunto | Cuenta |
| Mercados y rondas (/markets..., /rounds/:slug) | 1200 por minuto | Dirección IP |
| Libro de órdenes, operaciones, volumen, resumen de mercados, actividad de la ronda | 3000 por minuto | Dirección IP |
| Estadísticas, clasificación, perfiles, tenedores | 300 por minuto | Dirección IP |
| /auth/nonce, /auth/verify | 30 por minuto cada uno | Dirección IP |
| /deposit/recover | 2 por minuto | Cuenta |
| WebSocket | Ver WebSocket | Conexión, dirección IP |
Al superar un límite, la respuesta es 429 con Retry-After en segundos. Un servidor ocupado responde 503 con Retry-After. Las respuestas de estadísticas, de la clasificación y de los tenedores pueden tener unos segundos de antigüedad. GET https://seeryx.com/health responde { "status": "ok" } para las comprobaciones de disponibilidad.
Reintentar con seguridad
- 429 y 503: espera lo que indique
Retry-Aftery vuelve a enviar la misma solicitud. - Un error de red o un 5xx en una escritura: reenvía el mismo cuerpo con la misma
Idempotency-Key; si el primer intento se procesó, recibes su respuesta y nada se coloca dos veces. - 400: no la repitas sin cambios; corrige la solicitud y envíala con una clave nueva (y un id firmado nuevo).
- 401 o 403: vuelve a iniciar sesión.