Introducción#
La API de Catapult impulsa una plataforma de derivados de tokens sintéticos —operativa y datos de tokens— a través de un
único endpoint GraphQL para operaciones petición/respuesta, y un endpoint
WebSocket para suscripciones en tiempo real.
Endpoints base#
| Transporte |
URL |
| GraphQL (HTTP) |
https://public-api.catapult.trade/graphql |
| WebSocket |
wss://public-api.catapult.trade/graphql |
Todas las solicitudes HTTP usan POST con un cuerpo JSON con la forma
{ "query": "...", "variables": { ... } }.
Autenticación#
Las operaciones autenticadas usan un token JWT (bearer), enviado en la cabecera Authorization:
Authorization: Bearer <your-jwt-token>
El token es un JSON Web Token (JWT), válido por 730 días (≈2 años) desde su emisión
por defecto: rótalo antes de que caduque. Solo ping es público; el resto de
operaciones requiere el token bearer, y las lecturas como tokens y turboToken
también necesitan el permiso tokens.read.
Crear una clave API#
Genera tu token desde el panel de tu cuenta en catapult.trade/settings/api-key (Ajustes → API Key). Puedes gestionar tu cuenta en catapult.trade.
Convenciones#
- Los IDs son cadenas opacas; no los parsees.
- Los importes monetarios son enteros codificados como cadena de tipo
String! (p. ej. balanceUsdtDrops):
parséalos como BigInt, nunca como float. El único escalar personalizado es DateTime.
- Las marcas de tiempo usan el escalar
DateTime (ISO-8601, UTC).
- Las consultas de listas se paginan por cursor mediante
input.pagination: limit (10 por defecto)
con afterCursor / beforeCursor.
Ejemplo rápido#
query Tokens {
# consulta la pestaña Reference para PublicTokenListInput y los campos del token
tokens(input: { pagination: { limit: 5 } }) {
items { id }
}
}
OAuth de clave API#
Este enlace te permite obtener la clave API de un usuario para crear distintas funciones, por ejemplo copy trading. El usuario concede los permisos sobre su clave API y esta se envía a tu URL de callback incluida en la lista blanca.
https://catapult.trade/settings/api-key?bot_id=<WHITELISTED_BOT_ID>
Reemplaza <WHITELISTED_BOT_ID> por el ID de tu bot incluido en la lista blanca.
Inclusión del bot en la lista blanca#
Incluye tu bot en la lista blanca contactando con nuestro equipo de desarrollo:
[email protected]
Unidades y convenciones#
Lee esto primero: cada campo monetario de la API depende de estas convenciones.
USDT drops (*UsdtDrops)#
Todos los importes en USDT son enteros de USDT × 1,000,000 (6 decimales), con el
sufijo UsdtDrops. Se envían como String! (enteros codificados como cadena): parséalos como BigInt, nunca como float.
| Campo |
Valor en bruto |
USDT |
balanceUsdtDrops |
6666670000 |
6,666.67 |
Convierte con usdt = drops / 1e6 y drops = round(usdt × 1e6): calcula en BigInt.
Apalancamiento (leverageX10)#
El apalancamiento se codifica como apalancamiento × 10. leverageX10: 125 significa
12.5×; 30 significa 3×.
Colateral vs nocional#
notional = collateral × leverage. Lo que aportas es el colateral; el valor nominal
de la posición en USDT es el nocional.
Al abrir una posición, el importe es colateral, antes de comisión. tradeOpen toma
exactamente uno de usdtDrops (en USDT) o amountWei (en tokens): el motor deriva
el nocional a partir de él y del apalancamiento. No es el nocional.
Saldos#
userBalance { balanceUsdtDrops, inPositionsBalanceUsdtDrops }:
| Campo |
Significado |
balanceUsdtDrops |
Saldo libre: antes de comisión, los USDT que realmente se mueven al abrir. |
inPositionsBalanceUsdtDrops |
Colateral actualmente bloqueado en posiciones abiertas (después de comisión). |
Medios del token (fileId)#
La imagen de un token se adjunta pasando un fileId a tokenCreate. Hay dos formas
de obtenerlo:
- Aleatorizador —
tokenRandomizedPreset devuelve un fileId listo para usar
(además de nombre, símbolo, modo, etc.) que puedes pasar directamente a tokenCreate.
- Subida propia — un flujo S3 presigned-POST de tres pasos:
fileUpload(input) → devuelve una URL S3 presigned-POST más los campos de
formulario que el cliente debe incluir en el POST multipart.
- El cliente hace POST de la imagen a esa URL de S3 con esos campos exactos.
fileFinalize(id) → marca la subida como finalizada tras el POST a S3 y devuelve la
URL pública del archivo; usa el archivo resultante como imagen del token.
Límites de subida: solo JPEG o PNG, máximo 5 MB, mínimo
314×314 px. El POST prefirmado debe completarse en
15 segundos tras la llamada a fileUpload, y las subidas están
limitadas a 200 por hora por IP.
Modos de velocidad de tokens#
Cada token funciona en uno de cinco modos de velocidad. El campo de
creación/aleatorización es turboTokenMode; los registros de token exponen speedMode.
SLOW y NORMAL son el mismo modo con dos nombres.
Los valores de apalancamiento máximo y de vida útil siguientes son configuración
actual que puede cambiar en el servidor: trátalos como valores actuales y verifícalos
con la consulta de leverage-config en vivo.
| Modo |
Vida útil típica |
Apalancamiento máx. (motor) |
SLOW / NORMAL |
4h |
125× |
FAST |
1h |
40× |
FLASH |
15mins |
15× |
CRACK |
3mins |
5× |
MAYHEM |
30s |
5× |
El apalancamiento máximo es un límite fijo del motor#
El apalancamiento máximo de cada modo es un límite estricto que aplica el motor: usa el
valor de la tabla directamente. El motor rechaza cualquier orden por encima.
Comisiones y tamaño de posición#
Comisión de apertura (~1%)#
Abrir una posición cobra una comisión de apertura de ~1% (0.01),
deducida del colateral que envías:
collateral_post_fee = collateral_sent × (1 − fee)
Para que el colateral bloqueado quede exactamente en notional / leverage, envía:
collateral_sent = (notional / leverage) / (1 − fee)
Límite de nocional por posición#
El servidor aplica un límite de nocional por posición: actualmente 20,000 USDT
por (token, apalancamiento, lado). Superarlo devuelve Maximum notional limit … exceeded.
Verifica el valor exacto con la configuración en vivo; puede variar según el modo o el
apalancamiento.
Posición máxima disponible (nocional)#
Sea fee = 0.01, free = balanceUsdtDrops / 1e6,
inPos = inPositionsBalanceUsdtDrops / 1e6, capTotal = tu límite total de colateral
opcional, capPos = límite de nocional por posición (~20,000), L = apalancamiento:
maxCollateralFromBalance = free × (1 − fee)
remainingTotalBudget = capTotal − inPos # si aplicas un límite total
maxNewCollateral = min(maxCollateralFromBalance, remainingTotalBudget)
maxNotionalAchievable = maxNewCollateral × L
maxPositionNotional = min(maxNotionalAchievable, capPos)
Colateral a enviar = (maxPositionNotional / L) / (1 − fee).
Trampa de redondeo. Tras dividir por (1 − fee), un round(collateral × 1e6)
ingenuo supera el límite por unos drops y la apertura se rechaza. Redondea hacia
abajo el colateral en drops (BigInt) a un paso pequeño (p. ej. 10 drops =
0.00001 USDT) antes de enviar. Pierdes una fracción insignificante de céntimo y te
mantienes bajo el límite en cualquier apalancamiento.
Ejemplo resuelto#
FLASH, 3×, comisión 1%, límite 20,000 de nocional:
collateral_post_fee target = 20,000 / 3 = 6,666.67
collateral_sent = 6,666.67 / 0.99 ≈ 6,734.01 (redondeado hacia abajo en drops)
→ bloqueado tras comisión ≈ 6,666.67, nocional ≈ 20,000
Códigos de estado#
Las respuestas GraphQL devuelven HTTP 200 incluso cuando una operación falla: inspecciona
el array errors[] y el extensions.code de cada error. Los problemas de transporte usan
códigos HTTP estándar.
Códigos de estado HTTP#
| Código |
Significado |
200 |
Respuesta estándar. TODOS los resultados de operación —éxito y errores, incluidos autenticación, permisos, límite de tasa, no encontrado y reglas de negocio— devuelven 200; inspecciona errors[] y errors[].extensions.code. |
400 |
Solicitud GraphQL malformada o inválida (error de análisis, campo desconocido, variable incorrecta). |
500 |
Error inesperado del servidor. Seguro reintentar con backoff. |
El servicio GraphQL devuelve los fallos de autenticación, permisos y límite de tasa dentro
de la respuesta como 200 (ver códigos de error GraphQL). Los 401 / 403 / 429 de
transporte solo ocurren si un gateway/CDN upstream rechaza la solicitud antes de llegar a la API.
Códigos de error GraphQL#
Los códigos distinguen mayúsculas; coincide con la cadena exacta. Los códigos de dominio son
PascalCase (p. ej. RateLimited); algunos códigos del framework van en mayúsculas con guion
bajo (p. ej. UNAUTHENTICATED).
| Código |
Significado |
UNAUTHENTICATED |
No hay un token válido, o el token expiró/está deshabilitado, o el usuario está bloqueado. |
BAD_USER_INPUT |
Un argumento o variable no superó la validación. |
GRAPHQL_VALIDATION_FAILED |
La consulta es estructuralmente inválida (campo/tipo desconocido). |
RateLimited |
Límite de tasa superado (ver Límites de uso). |
NotFound |
El recurso referenciado no existe. |
InternalError |
Error inesperado del servidor. |
{
"errors": [
{ "message": "Token not found", "extensions": { "code": "NotFound" } }
],
"data": null
}
Límites de uso#
Las operaciones GraphQL comparten un único bucket de límite, indexado por token de API
(jti) e IP: 600 consultas/min y 60 mutaciones/min. Al
superar un límite se devuelve una respuesta HTTP 200 cuyo errors[] contiene un único
error con extensions.code = RateLimited. La API no envía un estado 429 ni una cabecera
Retry-After; las sugerencias de reintento se incluyen en extensions del error.
Límites HTTP (GraphQL)#
| Operación |
Límite |
Ventana |
| Consultas |
600 |
1 minuto |
| Mutaciones |
60 |
1 minuto |
Límites de WebSocket#
| Ámbito |
Límite |
| Suscripciones por conexión |
1000 |
| Mensajes entrantes |
200 / segundo (ráfaga 400) |
Tiempo de espera de connection_init |
10 s (código de cierre 4408) |
Los límites de WebSocket son configurables en el servidor, por lo que en producción pueden
diferir de estos valores por defecto. Se aplican por conexión, no por IP.
Cabeceras de respuesta#
La API no emite cabeceras de límite (X-RateLimit-*, Retry-After). Un gateway upstream
podría añadirlas; no dependas de ellas.
Trampas e idempotencia#
Una lista de lo que los integradores suelen equivocar.
Dinero y dimensionamiento#
- Los drops son enteros: BigInt de principio a fin; nunca parsees
*UsdtDrops como float.
- El importe de apertura que envías (
usdtDrops o amountWei) es colateral, antes de
comisión, no el nocional.
- El límite de nocional se aplica en drops; redondea hacia abajo tu colateral para
evitar superarlo por unos drops (ver «Comisiones y tamaño de posición»).
- El apalancamiento máximo es un límite fijo del motor por modo (ver «Modos de
velocidad de tokens»): úsalo directamente.
Tokens#
- El aleatorizador devuelve un
rank aleatorio (Competition | Private | Public).
Fuerza Public si el token debe listarse / poder copiarse.
tokenCreate siempre usa pago desde el saldo: el tipo de pago no se puede anular.
- No hay una marca de «activo» en el servidor para
tokens: filtra en el cliente por endDate.
Apertura y cierre#
tradeOpen requiere exactamente uno de usdtDrops (en USDT) o amountWei (en
tokens): nunca ambos ni ninguno.
tradeClose cierra una posición abierta mediante USER_SELL.
Take-profit / stop-loss (tradeLimit*)#
tradeLimitCreate requiere al menos un disparador (SL o TP).
- En update, un
null explícito para un lado lo borra; un campo omitido se conserva.
tradeLimitUpdate rechaza una entrada totalmente nula (Validation failed: input=MissingValue):
usa tradeLimitDelete para borrar.
- No hay borrado por lado;
tradeLimitDelete elimina ambos, TP y SL.
Suscripciones (WebSocket)#
- Autentícate en
connection_init con payload: { Authorization: "Bearer <apiKey>" }.
- La suscripción
positions transmite la unión PublicPositionEvent —
PublicPositionOpenedEvent | PublicPositionClosedEvent | PublicPositionUpdatedEvent.
Discrimina por el campo type antes de leer los campos específicos del evento.
PublicPositionClosedEvent lleva positionId, tokenId, type, closeType, closedAt, closePriceUsdtDrops, receivedAmountUsdtDrops, pnlUsdtDrops. Los campos buyPriceUsdtDrops, collateralUsdtDrops, notionalUsdtDrops, leverageX10 pertenecen a
PublicPositionOpenedEvent, no al de cierre.
- Los eventos de cierre son at-least-once y no se reproducen. Un cierre emitido
mientras te reconectas lo pierde la nueva suscripción: sondea cada posición abierta al
(re)suscribirte para detectar cierres perdidos y deduplica por
positionId.
API WebSocket#
Los datos en tiempo real se entregan por una conexión WebSocket usando el protocolo
GraphQL sobre WebSocket (graphql-transport-ws). Úsalo para operaciones de tipo
subscription, como las actualizaciones de precio en vivo.
Conexión#
Abre un WebSocket en:
wss://public-api.catapult.trade/graphql
Negocia el subprotocolo graphql-transport-ws. Tras abrir el socket, envía un mensaje
connection_init; el servidor responde con connection_ack.
| Propiedad |
Valor |
| URL |
wss://public-api.catapult.trade/graphql |
| Subprotocolo |
graphql-transport-ws |
| Keep-alive |
el servidor envía ping cada 30s; responde con pong |
| Máx. suscripciones |
1000 por conexión |
Ciclo de vida#
- El cliente abre el socket con el subprotocolo
graphql-transport-ws.
- Cliente →
{"type":"connection_init"}.
- Servidor →
{"type":"connection_ack"}.
- Cliente →
subscribe con un id único y un documento GraphQL.
- Servidor → uno o varios mensajes
next, después complete.
Suscripción#
{
"id": "1",
"type": "subscribe",
"payload": {
"query": "subscription($t: ID!) { priceTicks(tokenId: $t) { tokenId price } }",
"variables": { "t": "<tokenId>" }
}
}
Mensaje de datos#
{
"id": "1",
"type": "next",
"payload": { "data": { "priceTicks": { "tokenId": "tok_123", "price": "0.0123" } } }
}
Cancelar suscripción#
Envía un mensaje complete para detener una suscripción; cierra el socket para
detenerlas todas.
{ "id": "1", "type": "complete" }
Errores#
Los errores a nivel de operación llegan como un mensaje error para el id
correspondiente:
{ "id": "1", "type": "error", "payload": [{ "message": "Mercado desconocido" }] }
Las conexiones que no envían connection_init en 10 segundos se cierran con el código
4408 (tiempo de inicialización agotado).
Queries
boosterAvailability#
Disponibilidad global del booster: ranuras activas/máximas/disponibles y configuración por nivel (precio, duración, incremento de puntos, modos de velocidad aplicables).
boosterAvailability: PublicBoosterAvailabilityOutput!
Argumentos
Sin argumentos.
boosters#
Todos los tokens con un boost actualmente activo, incluyendo el porcentaje de retorno actual con decaimiento temporal.
boosters: [PublicBoostedTokenOutput!]!
Argumentos
Sin argumentos.
checkReferral#
Devuelve el perfil mínimo del referido y su saldo libre en USDT cuando el ID de usuario indicado es uno de los referidos del solicitante. Devuelve null cuando el usuario no es un referido del solicitante autenticado (o no existe).
checkReferral(referralUserId: ID!): PublicCheckReferralOutput
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
referralUserId |
ID! |
— |
|
closedPositions#
Lista paginada por cursor de las posiciones cerradas del usuario autenticado, de más reciente a más antigua. Opcionalmente filtrada a un único token.
closedPositions(input: PublicClosedPositionsInput!): PublicClosedPositionsOutput!
Argumentos
ping#
Sonda de estado para la API pública de GraphQL. Devuelve "pong". No requiere autenticación.
ping: String!
Argumentos
Sin argumentos.
tokenChartData#
Chart candles and current price for a token.
tokenChartData(tokenId: ID!): PublicTokenChartDataOutput!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
tokenId |
ID! |
— |
|
tokenRandomizedPreset#
Devuelve una plantilla de token aleatoria (nombre, símbolo, avatar, flags de modo) útil para rellenar previamente los campos de creación de tokens.
tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!
Argumentos
tokens#
Lista tokens con paginación por cursor, ordenamiento y filtrado.
tokens(input: PublicTokenListInput!): PublicTokenListOutput!
Argumentos
turboToken#
Obtiene un único token por id con estadísticas de trading agregadas.
turboToken(tokenId: ID!): PublicTokenDetailsOutput!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
tokenId |
ID! |
— |
|
userBalance#
Saldo del usuario autenticado. Devuelve el saldo libre y el importe asignado a posiciones abiertas, en USDT drops.
userBalance: PublicBalanceOutput!
Argumentos
Sin argumentos.
userMe#
Perfil del usuario autenticado. Excluye el rol, la atribución de kaito y la información de sesión.
userMe: PublicUserOutput!
Argumentos
Sin argumentos.
Mutations
boosterBuy#
Compra un booster para uno de los tokens del usuario autenticado. Devuelve true si tiene éxito.
boosterBuy(input: PublicBoosterBuyInput!): Boolean!
Argumentos
claimAllCreatorFees#
Claim all available creator fees across tokens.
claimAllCreatorFees: PublicClaimAllCreatorFeesOutput!
Argumentos
Sin argumentos.
claimCreatorFee#
Claim accumulated creator fees for a single token.
claimCreatorFee(input: PublicClaimCreatorFeeInput!): PublicClaimCreatorFeeOutput!
Argumentos
fileFinalize#
Marca una subida como finalizada después de que el POST a S3 tenga éxito. Devuelve la URL pública del archivo.
fileFinalize(id: String!): PublicFileFinalizeOutput!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
id |
String! |
— |
|
fileUpload#
Inicia la subida de un archivo. Devuelve una URL de POST prefirmada de S3 con los campos de formulario que el cliente debe incluir en la subida multipart.
fileUpload(input: PublicFileUploadInput!): PublicFileUploadOutput!
Argumentos
tokenCreate#
Crea un nuevo turbo token. Siempre usa el pago basado en saldo; el tipo de pago no se puede sobrescribir.
tokenCreate(input: PublicTokenCreateInput!): String!
Argumentos
tradeClose#
Cierra una posición abierta mediante USER_SELL.
tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!
Argumentos
tradeLimitCreate#
Adjunta un límite SL/TP a una posición abierta. Debe especificarse al menos un disparador (SL o TP).
tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!
Argumentos
tradeLimitDelete#
Elimina el límite SL/TP de una posición abierta.
tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!
Argumentos
tradeLimitUpdate#
Reemplaza el límite SL/TP de una posición abierta.
tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!
Argumentos
tradeOpen#
Abre una posición. El cuerpo debe especificar exactamente uno entre `usdtDrops` (denominado en USDT) o `amountWei` (denominado en token).
tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!
Argumentos
Subscriptions
positions#
Flujo de eventos de posiciones para el usuario autenticado. Al iniciarse emite una instantánea de cada posición abierta (cada una como POSITION_OPENED) y luego transmite en vivo los eventos POSITION_OPENED / POSITION_CLOSED / POSITION_UPDATED.
positions: PublicPositionEvent!
Argumentos
Sin argumentos.
priceTicks#
Ticks de precio en vivo para un token en USDT.
priceTicks(tokenId: ID!): PublicPriceTick!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
tokenId |
ID! |
— |
|
tokenCreated#
Flujo de turbo tokens recién creados
tokenCreated: PublicTokenCreatedEvent!
Argumentos
Sin argumentos.
unclaimedReward#
Stream of unclaimed reward balances for the authenticated user.
unclaimedReward: PublicUnclaimedRewardOutput!
Argumentos
Sin argumentos.
Objects
PublicBalanceOutput object#
Campos
| Nombre | Tipo | Descripción |
balanceUsdtDrops |
String! |
Saldo libre disponible para operar. USDT drops (1e6 = 1 USDT). |
inPositionsBalanceUsdtDrops |
String! |
Capital actualmente asignado a posiciones abiertas. USDT drops. |
PublicBoostedTokenOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarUrl |
String! |
|
boostedUntil |
DateTime! |
Cuándo expira el boost. |
boosterType |
TokenBoosterType! |
|
currentReturnPercentage |
Float! |
Porcentaje de retorno actual del boost con decaimiento temporal. |
name |
String! |
|
symbol |
String! |
|
tokenId |
ID! |
|
PublicBoosterAvailabilityOutput object#
Campos
| Nombre | Tipo | Descripción |
active |
Int! |
Ranuras de boost actualmente activas. |
available |
Int! |
Ranuras de boost libres restantes (max - active, con mínimo en 0). |
max |
Int! |
Número máximo de tokens con boost simultáneo. |
types |
[PublicBoosterTypeConfigOutput!]! |
Configuración de cada nivel de booster disponible. |
PublicBoosterTypeConfigOutput object#
Campos
| Nombre | Tipo | Descripción |
availableModes |
[SpeedMode!]! |
Modos de velocidad de token a los que se puede aplicar este nivel. |
durationSeconds |
Int! |
Duración del boost en segundos. |
pointsBoost |
Float! |
Multiplicador de puntos aplicado mientras el boost está activo. |
priceUsdtDrops |
String! |
Precio de este nivel. USDT drops (1e6 = 1 USDT). |
type |
TokenBoosterType! |
|
PublicCandleOutput object#
Campos
| Nombre | Tipo | Descripción |
close |
Float! |
|
high |
Float! |
|
low |
Float! |
|
open |
Float! |
|
time |
Float! |
|
PublicCheckReferralOutput object#
Campos
| Nombre | Tipo | Descripción |
balanceUsdtDrops |
String! |
Saldo libre del usuario referido. USDT drops (1e6 = 1 USDT). |
user |
PublicMinimalUserOutput! |
|
PublicClaimAllCreatorFeesOutput object#
Campos
| Nombre | Tipo | Descripción |
balanceAfterUsdtDrops |
String! |
|
claimedAmountUsdtDrops |
String! |
|
claimedCount |
Int! |
|
PublicClaimCreatorFeeOutput object#
Campos
| Nombre | Tipo | Descripción |
claimedAmountUsdtDrops |
String! |
|
PublicClosedPositionOutput object#
Campos
| Nombre | Tipo | Descripción |
amountWei |
String! |
Cantidad de token en wei. |
boughtUsdtDrops Obsoleto |
String! |
Obsoleto; reemplazado por `paidAmountUsdtDrops`. Importe en USDT drops (1e6 = 1 USDT). |
buyPriceUsdtDrops |
String! |
Precio de entrada en USDT drops (1e6 = 1 USDT). |
closePriceUsdtDrops |
String |
Precio de cierre en USDT drops (1e6 = 1 USDT); null hasta que se liquide. |
closeType |
TurboTokenPositionCloseType |
Cómo se cerró la posición (manual, liquidación, etc.). |
closedAt |
DateTime |
Cuándo se cerró/liquidó la posición; null si aún está abierta. |
collateralUsdtDrops |
String! |
Importe de colateral en USDT drops (1e6 = 1 USDT). |
currentPriceUsdtDrops |
String! |
Precio actual en USDT drops (1e6 = 1 USDT). |
endTimestamp |
DateTime! |
Hora de finalización programada de la posición. |
id |
ID! |
|
isScoreBoosted |
Boolean! |
Si la puntuación de la posición fue potenciada con boost. |
leverageX10 |
Int! |
Apalancamiento X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x). |
limit |
PublicTradeLimitOutput |
Límite stop-loss / take-profit adjunto, si lo hay. |
liquidationPriceUsdtDrops |
String |
Precio de liquidación en USDT drops (1e6 = 1 USDT); null para SPOT 1x LONG. |
notionalUsdtDrops |
String! |
Valor nocional en USDT drops (collateral * leverage, 1e6 = 1 USDT). |
paidAmountUsdtDrops |
String! |
Importe pagado para abrir la posición en USDT drops (1e6 = 1 USDT). |
pnlUsdtDrops |
String! |
PnL realizado en USDT drops (1e6 = 1 USDT). |
positionType |
PositionType! |
Tipo de posición: SPOT (1x LONG) o FUTURES (LONG / SHORT apalancado). |
realizedFeesUsdtDrops |
String! |
Total de comisiones pagadas por esta posición en USDT drops (1e6 = 1 USDT). |
scoreForPosition |
Float! |
Puntuación del programa de puntos obtenida por esta posición. |
side |
PositionSide! |
Lado de la posición: LONG o SHORT. |
timestamp |
DateTime! |
Cuándo se abrió la posición. |
token |
PublicClosedPositionTokenInfoOutput! |
El token sobre el que se abrió esta posición. |
PublicClosedPositionsOutput object#
Campos
PublicClosedPositionTokenInfoOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarUrl |
String! |
|
id |
String! |
|
name |
String! |
|
rank |
TurboTokenRank! |
Rango/nivel del token. |
speedMode |
SpeedMode! |
Modo de velocidad de trading del token. |
symbol |
String! |
|
tokenDecimals |
Int! |
Número de decimales para la cantidad del token. |
PublicFileFinalizeOutput object#
Campos
| Nombre | Tipo | Descripción |
id |
ID! |
|
url |
String! |
URL pública del archivo finalizado. |
PublicFileUploadOutput object#
Campos
| Nombre | Tipo | Descripción |
fields |
[PublicFormField!]! |
Campos de formulario para el POST prefirmado de S3. Añade cada (key, value) a tu `FormData` y luego añade `file` al final. |
id |
ID! |
Id del archivo; pásalo a `fileFinalize` después del POST a S3. |
uploadUrl |
String! |
URL a la que enviar el formulario multipart mediante POST. |
PublicFormField object#
Campos
| Nombre | Tipo | Descripción |
key |
String! |
|
value |
String! |
|
PublicMinimalUserOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarToken |
String! |
|
id |
ID! |
|
profileName |
String! |
|
PublicPositionClosedEvent object#
Campos
PublicPositionOpenedEvent object#
Campos
| Nombre | Tipo | Descripción |
amountWei |
String! |
|
buyPriceUsdtDrops |
String! |
Precio de entrada en USDT drops. |
collateralUsdtDrops |
String! |
Importe de colateral en USDT drops (entrada del usuario menos comisiones). |
currentPriceUsdtDrops |
String! |
Precio actual en USDT drops. |
leverageX10 |
Int! |
|
limit |
PublicTradeLimitOutput |
|
liquidationPriceUsdtDrops |
String |
Precio de liquidación en USDT drops (null para SPOT 1x LONG). |
notionalUsdtDrops |
String! |
Valor nocional en USDT drops (collateral * leverage). |
paidAmountUsdtDrops |
String! |
Importe pagado en USDT drops. |
pnlUsdtDrops |
String! |
PnL en vivo en USDT drops. |
positionId |
ID! |
|
positionType |
PositionType! |
|
side |
PositionSide! |
|
timestamp |
DateTime! |
|
tokenId |
String! |
|
type |
TurboTokenPositionEventType! |
|
PublicPositionUpdatedEvent object#
Campos
PublicPriceTick object#
Campos
| Nombre | Tipo | Descripción |
price |
Float! |
|
tokenId |
ID! |
|
PublicTokenChartDataOutput object#
Campos
PublicTokenCreatedEvent object#
Campos
PublicTokenDetailsOutput object#
Campos
PublicTokenListItemOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarUrl |
String! |
|
boostedUntil |
DateTime |
Cuándo expira el boost activo de este token, o null si no tiene boost. |
buysCount |
Int! |
|
creator |
PublicMinimalUserOutput! |
|
description |
String |
|
endDate |
DateTime! |
|
id |
ID! |
|
initialPrice |
Float! |
|
name |
String! |
|
price |
Float! |
|
rank |
TurboTokenRank! |
|
sellsCount |
Int! |
|
speedMode |
SpeedMode! |
|
startDate |
DateTime! |
|
symbol |
String! |
|
uniqueTradersCount |
Int! |
|
volumeUsdtDrops |
String! |
Volumen acumulado de operaciones (USDT drops, 1e6 = 1 USDT). |
PublicTokenListOutput object#
Campos
PublicTokenPresetOutput object#
Campos
PublicTokenStatisticsOutput object#
Campos
| Nombre | Tipo | Descripción |
buysCount |
Int! |
|
nonMmVolumeFromBoostersUsdtDrops |
String! |
|
sellsCount |
Int! |
|
totalVolumeUsdtDrops |
String! |
|
uniqueTradersCount |
Int! |
|
volumeFromBoostersUsdtDrops |
String! |
|
PublicTradeCloseOutput object#
Campos
| Nombre | Tipo | Descripción |
amountUsdtDrops |
String! |
Importe de la posición en USDT drops sin comisiones. |
closePriceUsdtDrops |
String! |
|
closeType |
TurboTokenPositionCloseType! |
Cómo se cerró la posición. |
closedAt |
DateTime! |
|
leverageX10 |
Int! |
Apalancamiento X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x). |
paidAmountUsdtDrops |
String! |
Importe pagado en USDT drops. |
pnlPercentage |
String! |
|
pnlUsdtDrops |
String! |
|
positionId |
String! |
|
positionType |
PositionType! |
Tipo de posición (SPOT o FUTURES). |
receivedAmountUsdtDrops |
String! |
Importe recibido tras cerrar la posición en USDT drops. |
side |
PositionSide! |
Lado de la posición (LONG o SHORT). |
tokenId |
String! |
|
totalCloseFeeUsdtDrops |
String! |
Comisión de cierre + comisión de beneficio en USDT drops. |
PublicTradeLimitOutput object#
Campos
| Nombre | Tipo | Descripción |
positionId |
ID! |
Id de la posición a la que está adjunto este límite. |
slTriggerPnlUsdtDrops |
String |
PnL del disparador de stop-loss en USDT drops (1e6 = 1 USDT); null si no está definido. |
slTriggerPriceUsdtDrops |
String |
Precio del disparador de stop-loss en USDT drops (1e6 = 1 USDT); null si no está definido. |
tokenId |
String! |
Id del token con el que opera la posición. |
tpTriggerPnlUsdtDrops |
String |
PnL del disparador de take-profit en USDT drops (1e6 = 1 USDT); null si no está definido. |
tpTriggerPriceUsdtDrops |
String |
Precio del disparador de take-profit en USDT drops (1e6 = 1 USDT); null si no está definido. |
userId |
String! |
Id del usuario propietario. |
PublicTradePositionOutput object#
Campos
| Nombre | Tipo | Descripción |
amountUsdtDrops |
String! |
|
amountWei |
String! |
|
collateralUsdtDrops |
String! |
Importe de colateral en USDT drops (entrada del usuario menos comisiones). |
id |
ID! |
|
leverageX10 |
Int! |
|
limit |
PublicTradeLimitOutput |
|
liquidationPriceUsdtDrops |
String |
Precio de liquidación en USDT drops (null para SPOT 1x LONG). |
notionalUsdtDrops |
String! |
Valor nocional en USDT drops (collateral * leverage). |
positionType |
PositionType! |
|
priceUsdtDrops |
String! |
|
side |
PositionSide! |
|
timestamp |
DateTime! |
|
PublicUnclaimedRewardOutput object#
Campos
PublicUserOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarToken |
String! |
|
createdAt |
DateTime! |
|
description |
String |
|
evmWalletAddress |
String |
|
id |
ID! |
|
profileName |
String! |
|
referralCode |
String! |
|
solanaWalletAddress |
String |
|
status |
UserStatus! |
|
telegram |
String |
|
tiktok |
String |
|
twitter |
String |
|
waitlistEmail |
String |
|
walletType |
UserWalletType! |
|
xUsername |
String |
|
Enums
PositionSide enum#
Valores
| Nombre | Descripción |
|---|
LONG | |
SHORT | |
PositionType enum#
Tipo de posición: SPOT (1x LONG) o FUTURES (LONG / SHORT apalancado)
Valores
| Nombre | Descripción |
|---|
FUTURES | |
SPOT | |
PublicUnclaimedBalanceType enum#
Valores
| Nombre | Descripción |
|---|
BONDED_TURBO_TOKEN_FEE | |
CREATOR_FEE | |
CREATOR_PROGRAM_REFERRAL_REWARD | |
MINDSHARE_REWARD | |
PRESALE_REFERRAL_REWARD | |
REFERRAL_REWARD | |
SEASON_REWARD | |
SortDirection enum#
Valores
SpeedMode enum#
Valores
| Nombre | Descripción |
|---|
CRACK | |
FAST | |
FLASH | |
MAYHEM | |
NORMAL | |
TokenBoosterType enum#
Valores
| Nombre | Descripción |
|---|
B1 | |
B2 | |
B3 | |
B4 | |
B5 | |
B6 | |
TurboPriceMode enum#
Valores
| Nombre | Descripción |
|---|
FiveHundred | |
Hundred | |
One | |
Ten | |
TurboTokenListSorting enum#
Valores
| Nombre | Descripción |
|---|
BuysCount | |
SellsCount | |
StartTime | |
TimeLeft | |
TradersCount | |
Volume | |
TurboTokenMode enum#
Valores
| Nombre | Descripción |
|---|
Crack | |
Fast | |
Flash | |
Mayhem | |
Slow | |
TurboTokenPositionCloseType enum#
Valores
| Nombre | Descripción |
|---|
EXPIRED | |
LIQUIDATION | |
STOP_LOSS | |
TAKE_PROFIT | |
USER_SELL | |
TurboTokenPositionEventType enum#
Valores
| Nombre | Descripción |
|---|
POSITION_CLOSED | |
POSITION_OPENED | |
POSITION_UPDATED | |
TurboTokenRank enum#
Valores
| Nombre | Descripción |
|---|
Competition | |
Private | |
Public | |
UserStatus enum#
Valores
| Nombre | Descripción |
|---|
GUEST | |
MEMBER | |
UserWalletType enum#
Valores
| Nombre | Descripción |
|---|
Embedded | |
External | |
Scalars
DateTime scalar#
Una cadena de fecha y hora en UTC, como 2019-12-03T09:54:33Z, conforme al formato date-time.