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#
Global booster availability: active/max/available slots and per-tier configuration (price, duration, points boost, applicable speed modes).
boosterAvailability: PublicBoosterAvailabilityOutput!
Argumentos
Sin argumentos.
boosters#
All tokens with a currently active boost, including the time-decayed current return percentage.
boosters: [PublicBoostedTokenOutput!]!
Argumentos
Sin argumentos.
checkReferral#
Returns the referral's minimal profile and free USDT balance when the given user ID is one of the caller's referrals. Returns null when the user is not a referral of the authenticated caller (or does not exist).
checkReferral(referralUserId: ID!): PublicCheckReferralOutput
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
referralUserId |
ID! |
— |
|
closedPositions#
Cursor-paginated list of the authenticated user's closed positions, newest first. Optionally filtered to a single token.
closedPositions(input: PublicClosedPositionsInput!): PublicClosedPositionsOutput!
Argumentos
ping#
Health probe for the public GraphQL API. Returns "pong". Does not require authentication.
ping: String!
Argumentos
Sin argumentos.
tokenRandomizedPreset#
Returns a randomized token preset (name, symbol, avatar, mode flags) useful for pre-filling token creation inputs.
tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!
Argumentos
tokens#
List tokens with cursor pagination, sort, and filter.
tokens(input: PublicTokenListInput!): PublicTokenListOutput!
Argumentos
turboToken#
Get a single token by id with aggregated trading statistics.
turboToken(tokenId: ID!): PublicTokenDetailsOutput!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
tokenId |
ID! |
— |
|
userBalance#
Authenticated user balance. Returns free balance and amount allocated to open positions, in USDT drops.
userBalance: PublicBalanceOutput!
Argumentos
Sin argumentos.
userMe#
Authenticated user profile. Excludes role, kaito attribution, and session info.
userMe: PublicUserOutput!
Argumentos
Sin argumentos.
Mutations
boosterBuy#
Purchase a booster for one of the authenticated user's tokens. Returns true on success.
boosterBuy(input: PublicBoosterBuyInput!): Boolean!
Argumentos
fileFinalize#
Mark an upload as finished after the S3 POST succeeds. Returns the public file URL.
fileFinalize(id: String!): PublicFileFinalizeOutput!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
id |
String! |
— |
|
fileUpload#
Start a file upload. Returns an S3 presigned-POST URL with form fields the client must include in the multipart upload.
fileUpload(input: PublicFileUploadInput!): PublicFileUploadOutput!
Argumentos
tokenCreate#
Create a new turbo token. Always uses balance-based payment; payment type cannot be overridden.
tokenCreate(input: PublicTokenCreateInput!): String!
Argumentos
tradeClose#
Close an open position via USER_SELL.
tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!
Argumentos
tradeLimitCreate#
Attach an SL/TP limit to an open position. At least one trigger (SL or TP) must be specified.
tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!
Argumentos
tradeLimitDelete#
Remove the SL/TP limit from an open position.
tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!
Argumentos
tradeLimitUpdate#
Replace the SL/TP limit on an open position.
tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!
Argumentos
tradeOpen#
Open a position. Body must specify exactly one of `usdtDrops` (USDT-denominated) or `amountWei` (token-denominated).
tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!
Argumentos
Subscriptions
positions#
Stream of position events for the authenticated user. Emits a snapshot of every open position once at start (as POSITION_OPENED), then live POSITION_OPENED / POSITION_CLOSED / POSITION_UPDATED events.
positions: PublicPositionEvent!
Argumentos
Sin argumentos.
priceTicks#
Live price ticks for a token in USDT.
priceTicks(tokenId: ID!): PublicPriceTick!
Argumentos
| Nombre | Tipo | Por defecto | Descripción |
tokenId |
ID! |
— |
|
tokenCreated#
Stream of newly created turbo tokens
tokenCreated: PublicTokenCreatedEvent!
Argumentos
Sin argumentos.
Objects
PublicBalanceOutput object#
Campos
| Nombre | Tipo | Descripción |
balanceUsdtDrops |
String! |
Free balance available for trading. USDT drops (1e6 = 1 USDT). |
inPositionsBalanceUsdtDrops |
String! |
Capital currently allocated to open positions. USDT drops. |
PublicBoostedTokenOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarUrl |
String! |
|
boostedUntil |
DateTime! |
When the boost expires. |
boosterType |
TokenBoosterType! |
|
currentReturnPercentage |
Float! |
Current time-decayed return percentage of the boost. |
name |
String! |
|
symbol |
String! |
|
tokenId |
ID! |
|
PublicBoosterAvailabilityOutput object#
Campos
| Nombre | Tipo | Descripción |
active |
Int! |
Boost slots currently active. |
available |
Int! |
Remaining free boost slots (max - active, floored at 0). |
max |
Int! |
Maximum number of concurrently boosted tokens. |
types |
[PublicBoosterTypeConfigOutput!]! |
Configuration for each available booster tier. |
PublicBoosterTypeConfigOutput object#
Campos
| Nombre | Tipo | Descripción |
availableModes |
[SpeedMode!]! |
Token speed modes this tier can be applied to. |
durationSeconds |
Int! |
Boost duration in seconds. |
pointsBoost |
Float! |
Points multiplier applied while the boost is active. |
priceUsdtDrops |
String! |
Price of this tier. USDT drops (1e6 = 1 USDT). |
type |
TokenBoosterType! |
|
PublicCheckReferralOutput object#
Campos
| Nombre | Tipo | Descripción |
balanceUsdtDrops |
String! |
Free balance of the referral user. USDT drops (1e6 = 1 USDT). |
user |
PublicMinimalUserOutput! |
|
PublicClosedPositionOutput object#
Campos
| Nombre | Tipo | Descripción |
amountWei |
String! |
Token amount in wei. |
boughtUsdtDrops Obsoleto |
String! |
Deprecated; superseded by `paidAmountUsdtDrops`. Amount in USDT drops (1e6 = 1 USDT). |
buyPriceUsdtDrops |
String! |
Entry price in USDT drops (1e6 = 1 USDT). |
closePriceUsdtDrops |
String |
Close price in USDT drops (1e6 = 1 USDT); null until settled. |
closeType |
TurboTokenPositionCloseType |
How the position was closed (manual, liquidation, etc.). |
closedAt |
DateTime |
When the position was closed/settled; null if still open. |
collateralUsdtDrops |
String! |
Collateral amount in USDT drops (1e6 = 1 USDT). |
currentPriceUsdtDrops |
String! |
Current price in USDT drops (1e6 = 1 USDT). |
endTimestamp |
DateTime! |
Scheduled end time of the position. |
id |
ID! |
|
isScoreBoosted |
Boolean! |
Whether the position score was boosted. |
leverageX10 |
Int! |
Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x). |
limit |
PublicTradeLimitOutput |
Attached stop-loss / take-profit limit, if any. |
liquidationPriceUsdtDrops |
String |
Liquidation price in USDT drops (1e6 = 1 USDT); null for SPOT 1x LONG. |
notionalUsdtDrops |
String! |
Notional value in USDT drops (collateral * leverage, 1e6 = 1 USDT). |
paidAmountUsdtDrops |
String! |
Amount paid to open the position in USDT drops (1e6 = 1 USDT). |
pnlUsdtDrops |
String! |
Realized PnL in USDT drops (1e6 = 1 USDT). |
positionType |
PositionType! |
Position type: SPOT (1x LONG) or FUTURES (leveraged LONG / SHORT). |
realizedFeesUsdtDrops |
String! |
Total fees paid for this position in USDT drops (1e6 = 1 USDT). |
scoreForPosition |
Float! |
Points-program score earned for this position. |
side |
PositionSide! |
Position side: LONG or SHORT. |
timestamp |
DateTime! |
When the position was opened. |
token |
PublicClosedPositionTokenInfoOutput! |
The token this position was opened on. |
PublicClosedPositionsOutput object#
Campos
PublicClosedPositionTokenInfoOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarUrl |
String! |
|
id |
String! |
|
name |
String! |
|
rank |
TurboTokenRank! |
Rank/tier of the token. |
speedMode |
SpeedMode! |
Trading speed mode of the token. |
symbol |
String! |
|
tokenDecimals |
Int! |
Number of decimals for the token amount. |
PublicFileFinalizeOutput object#
Campos
| Nombre | Tipo | Descripción |
id |
ID! |
|
url |
String! |
Public URL of the finalized file. |
PublicFileUploadOutput object#
Campos
| Nombre | Tipo | Descripción |
fields |
[PublicFormField!]! |
Form fields for the S3 presigned POST. Append each (key, value) to your `FormData`, then append `file` last. |
id |
ID! |
File id; pass to `fileFinalize` after the S3 POST. |
uploadUrl |
String! |
URL to POST the multipart form to. |
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! |
Entry price in USDT drops. |
collateralUsdtDrops |
String! |
Collateral amount in USDT drops (user input minus fees). |
currentPriceUsdtDrops |
String! |
Current price in USDT drops. |
leverageX10 |
Int! |
|
limit |
PublicTradeLimitOutput |
|
liquidationPriceUsdtDrops |
String |
Liquidation price in USDT drops (null for SPOT 1x LONG). |
notionalUsdtDrops |
String! |
Notional value in USDT drops (collateral * leverage). |
paidAmountUsdtDrops |
String! |
Paid amount in USDT drops. |
pnlUsdtDrops |
String! |
Live PnL in 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! |
|
PublicTokenCreatedEvent object#
Campos
PublicTokenDetailsOutput object#
Campos
PublicTokenListItemOutput object#
Campos
| Nombre | Tipo | Descripción |
avatarUrl |
String! |
|
boostedUntil |
DateTime |
When the active boost on this token expires, or null if not boosted. |
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! |
Cumulative trade volume (USDT drops, 1e6 = 1 USDT). |
PublicTokenListOutput object#
Campos
PublicTokenPresetOutput object#
Campos
PublicTokenStatisticsOutput object#
Campos
| Nombre | Tipo | Descripción |
buysCount |
Int! |
|
sellsCount |
Int! |
|
totalVolumeUsdtDrops |
String! |
|
uniqueTradersCount |
Int! |
|
volumeFromBoostersUsdtDrops |
String! |
|
PublicTradeCloseOutput object#
Campos
| Nombre | Tipo | Descripción |
amountUsdtDrops |
String! |
Position amount in USDT drops without fees. |
closePriceUsdtDrops |
String! |
|
closeType |
TurboTokenPositionCloseType! |
How the position was closed. |
closedAt |
DateTime! |
|
leverageX10 |
Int! |
Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x). |
paidAmountUsdtDrops |
String! |
Paid amount in USDT drops. |
pnlPercentage |
String! |
|
pnlUsdtDrops |
String! |
|
positionId |
String! |
|
positionType |
PositionType! |
Position type (SPOT or FUTURES). |
receivedAmountUsdtDrops |
String! |
Amount received after closing position in USDT drops. |
side |
PositionSide! |
Position side (LONG or SHORT). |
tokenId |
String! |
|
totalCloseFeeUsdtDrops |
String! |
Close fee + profit fee in USDT drops. |
PublicTradeLimitOutput object#
Campos
| Nombre | Tipo | Descripción |
positionId |
ID! |
Id of the position this limit is attached to. |
slTriggerPnlUsdtDrops |
String |
Stop-loss trigger PnL in USDT drops (1e6 = 1 USDT); null if unset. |
slTriggerPriceUsdtDrops |
String |
Stop-loss trigger price in USDT drops (1e6 = 1 USDT); null if unset. |
tokenId |
String! |
Id of the token the position trades. |
tpTriggerPnlUsdtDrops |
String |
Take-profit trigger PnL in USDT drops (1e6 = 1 USDT); null if unset. |
tpTriggerPriceUsdtDrops |
String |
Take-profit trigger price in USDT drops (1e6 = 1 USDT); null if unset. |
userId |
String! |
Id of the owning user. |
PublicTradePositionOutput object#
Campos
| Nombre | Tipo | Descripción |
amountUsdtDrops |
String! |
|
amountWei |
String! |
|
collateralUsdtDrops |
String! |
Collateral amount in USDT drops (user input minus fees). |
id |
ID! |
|
leverageX10 |
Int! |
|
limit |
PublicTradeLimitOutput |
|
liquidationPriceUsdtDrops |
String |
Liquidation price in USDT drops (null for SPOT 1x LONG). |
notionalUsdtDrops |
String! |
Notional value in USDT drops (collateral * leverage). |
positionType |
PositionType! |
|
priceUsdtDrops |
String! |
|
side |
PositionSide! |
|
timestamp |
DateTime! |
|
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#
Position type: SPOT (1x LONG) or FUTURES (leveraged LONG / SHORT)
Valores
| Nombre | Descripción |
|---|
FUTURES | |
SPOT | |
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#
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.