Códigos de estado HTTP
| Estado | Significado | Reintentable |
|---|---|---|
| 200 | Éxito | N/A |
| 400 | Solicitud incorrecta (parámetros inválidos, mint inválido, programa de token no soportado) | No |
| 401 | No autorizado (clave API faltante o inválida) | No |
| 404 | Mercado no soportado o mint no indexado aún | No (ver abajo) |
| 422 | No procesable (solicitud válida pero sin ruta viable) | No |
| 429 | Límite de tasa excedido | Sí |
| 502 | Bad gateway (fallo de RPC o DEX upstream) | Sí |
| 503 | Servicio no disponible (router no listo o pausado) | Sí |
| 500 | Error interno del servidor | Sí |
Envolventes de respuesta
Éxito
Mercado no soportado
Se devuelve cuando un mint no tiene ruta viable en ningún DEX soportado. El campomessage proporciona una explicación legible por humanos y por IA.
| Razón | Estado | Descripción |
|---|---|---|
no_route | 404 | Ningún DEX soportado tiene un pool para este mint |
invalid_mint | 400 | La dirección mint no existe en cadena |
unsupported_token_program | 400 | El token usa un programa diferente a SPL Token o Token-2022 |
No indexado
Se devuelve cuando el mint existe pero aún no ha sido resuelto. Reintenta después de un breve retraso.Error
Respuestas de error generales para fallos de validación, límites de tasa y errores del servidor.ExitApiError.
Tipos de ExitApiError
Cada SDK expone un ExitApiError (o equivalente) con un discriminador kind:
| Tipo | Disparador | Reintentable |
|---|---|---|
transport | Fallo de red, error DNS, timeout | Sí |
http_status | Respuesta HTTP no 2xx | Sí si estado >= 500 o 429 |
envelope_status | El servidor devolvió { "status": "error" } | No |
parse | El cuerpo de respuesta no pudo ser parseado como JSON | No |
Verificar reintentabilidad
Comportamiento de reintentos integrado
Todos los SDKs incluyen reintentos automáticos con estos valores por defecto:| Configuración | Valor por defecto |
|---|---|
| Intentos máximos | 2 |
| Backoff inicial | 25 ms |
| Backoff máximo | 25 ms |
| Jitter | 25 ms |
| Timeout de conexión | 200 ms |
| Timeout de intento | 900 ms |
isRetryable() devuelve true (fallos de transporte, respuestas 5xx y límites de tasa 429).
Personalizar política de reintentos
Mejores prácticas
- No reintentar errores
400,401o422. Estos indican un problema de solicitud o autenticación que debe corregirse en el código. - No reintentar
404con"status": "unsupported". El mint no tiene mercado soportado. - Reintentar una vez en
404con"status": "not_indexed". El mint puede necesitar un momento para resolverse. - Esperar exponencialmente en respuestas
429. El reintento integrado lo maneja automáticamente. - Reintentar con backoff en errores
502y503. Son problemas transitorios de infraestructura. - Registrar detalles del error incluyendo
kind,statusybodypara depuración. - Si ves errores consistentes de
envelope_status, verifica que tu direcciónmintyuser_pubkeysean correctos.

