Обзор#
API Catapult обслуживает платформу деривативов на синтетические токены — торговлю и данные о токенах — через единую точку
GraphQL для операций запрос/ответ и точку WebSocket для подписок в реальном
времени.
Базовые эндпоинты#
| Транспорт |
URL |
| GraphQL (HTTP) |
https://public-api.catapult.trade/graphql |
| WebSocket |
wss://public-api.catapult.trade/graphql |
Все HTTP-запросы выполняются методом POST с JSON-телом вида
{ "query": "...", "variables": { ... } }.
Аутентификация#
Аутентифицированные операции используют JWT-токен (bearer), передаваемый в заголовке Authorization:
Authorization: Bearer <your-jwt-token>
Токен — это JSON Web Token (JWT), по умолчанию действительный 730 дней (≈2 года) с
момента выпуска — обновляйте его до истечения срока. Публичен только ping; все
остальные операции требуют bearer-токен, а для чтения, например tokens и turboToken,
дополнительно нужно разрешение tokens.read.
Создание API-ключа#
Сгенерируйте токен в панели управления аккаунтом на catapult.trade/settings/api-key (Настройки → API Key). Управлять аккаунтом можно на catapult.trade.
Соглашения#
- Идентификаторы — непрозрачные строки; не разбирайте их.
- Денежные значения — строково-кодированные целые числа типа
String! (например, balanceUsdtDrops)
— разбирайте их как BigInt, а не как float. Единственный пользовательский скаляр — DateTime.
- Метки времени используют скаляр
DateTime (ISO-8601, UTC).
- Списочные запросы пагинируются по курсору через
input.pagination: limit (по умолчанию 10)
и afterCursor / beforeCursor.
Быстрый пример#
query Tokens {
# полный PublicTokenListInput и поля токена см. на вкладке Reference
tokens(input: { pagination: { limit: 5 } }) {
items { id }
}
}
OAuth для API-ключа#
Эта ссылка позволяет получить API-ключ пользователя для создания различных функций, например копитрейдинга. Пользователь выдаёт разрешения для своего API-ключа, и он передаётся на ваш callback URL из белого списка.
https://catapult.trade/settings/api-key?bot_id=<WHITELISTED_BOT_ID>
Замените <WHITELISTED_BOT_ID> на идентификатор вашего бота из белого списка.
Внесение бота в белый список#
Внесите своего бота в белый список, связавшись с нашей командой разработчиков:
[email protected]
Единицы и соглашения#
Прочитайте это первым — каждое денежное поле API зависит от этих соглашений.
USDT drops (*UsdtDrops)#
Все суммы в USDT — целые числа вида USDT × 1,000,000 (6 знаков после запятой) с
суффиксом UsdtDrops. Они передаются как String! (строково-кодированные целые числа) — разбирайте их как BigInt, а не как float.
| Поле |
Сырое значение |
USDT |
balanceUsdtDrops |
6666670000 |
6,666.67 |
Преобразование: usdt = drops / 1e6 и drops = round(usdt × 1e6) — вычисляйте в BigInt.
Кредитное плечо (leverageX10)#
Плечо кодируется как плечо × 10. leverageX10: 125 означает 12.5×; 30 означает 3×.
Залог и номинал#
notional = collateral × leverage. Сумма, которую вы вносите, — это залог (collateral);
номинальная стоимость позиции в USDT — это номинал (notional).
При открытии позиции сумма — это залог до вычета комиссии. tradeOpen принимает
ровно одно из usdtDrops (в USDT) или amountWei (в токенах) — движок выводит
номинал из неё и плеча. Это не номинал.
Балансы#
userBalance { balanceUsdtDrops, inPositionsBalanceUsdtDrops }:
| Поле |
Значение |
balanceUsdtDrops |
Свободный баланс — до вычета комиссии, фактически списываемые USDT при открытии. |
inPositionsBalanceUsdtDrops |
Залог, заблокированный в открытых позициях (после вычета комиссии). |
Медиа токена (fileId)#
Изображение токена прикрепляется передачей fileId в tokenCreate. Получить его
можно двумя способами:
- Рандомайзер —
tokenRandomizedPreset возвращает готовый fileId (а также имя,
символ, режим и т. д.), который можно сразу передать в tokenCreate.
- Своя загрузка — трёхшаговый процесс S3 presigned-POST:
fileUpload(input) → возвращает URL S3 presigned-POST и поля формы, которые
клиент должен включить в multipart-POST.
- Клиент отправляет (POST) изображение на этот URL S3 с этими полями формы.
fileFinalize(id) → отмечает загрузку завершённой после успешного S3 POST и
возвращает публичный URL файла; используйте полученный файл как изображение токена.
Ограничения загрузки: только JPEG или PNG, максимум 5 МБ,
минимум 314×314 px. Presigned POST должен завершиться в
течение 15 секунд после вызова fileUpload, а загрузки ограничены
200 в час на IP.
Скоростные режимы токенов#
Каждый токен работает в одном из пяти скоростных режимов. Поле при
создании/рандомизации — turboTokenMode; записи токенов содержат speedMode. SLOW и
NORMAL — один и тот же режим под двумя именами.
Значения максимального плеча и времени жизни ниже — текущая конфигурация, которая
может меняться на стороне сервера: считайте их актуальными значениями и сверяйтесь с
живым запросом leverage-config.
| Режим |
Типичное время жизни |
Макс. плечо (движок) |
SLOW / NORMAL |
4h |
125× |
FAST |
1h |
40× |
FLASH |
15mins |
15× |
CRACK |
3mins |
5× |
MAYHEM |
30s |
5× |
Максимальное плечо — фиксированный лимит движка#
Максимальное плечо каждого режима — жёсткий лимит, применяемый движком; используйте
значение из таблицы напрямую. Движок отклоняет любой ордер выше него.
Комиссии и размер позиции#
Комиссия за открытие (~1%)#
При открытии позиции взимается комиссия за открытие ~1% (0.01),
вычитаемая из отправляемого вами залога:
collateral_post_fee = collateral_sent × (1 − fee)
Чтобы заблокированный залог точно составил notional / leverage, отправьте:
collateral_sent = (notional / leverage) / (1 − fee)
Лимит номинала на позицию#
На стороне сервера действует лимит номинала на позицию — сейчас 20,000 USDT
на (токен, плечо, сторону). Превышение возвращает Maximum notional limit … exceeded.
Сверяйте точное значение с живой конфигурацией; оно может зависеть от режима или плеча.
Максимально доступная позиция (номинал)#
Пусть fee = 0.01, free = balanceUsdtDrops / 1e6,
inPos = inPositionsBalanceUsdtDrops / 1e6, capTotal — ваш необязательный общий лимит
залога, capPos — лимит номинала на позицию (~20,000), L — плечо:
maxCollateralFromBalance = free × (1 − fee)
remainingTotalBudget = capTotal − inPos # если используете общий лимит
maxNewCollateral = min(maxCollateralFromBalance, remainingTotalBudget)
maxNotionalAchievable = maxNewCollateral × L
maxPositionNotional = min(maxNotionalAchievable, capPos)
Залог к отправке = (maxPositionNotional / L) / (1 − fee).
Подводный камень округления. После деления на (1 − fee) наивное
round(collateral × 1e6) превышает лимит на несколько drops, и открытие отклоняется.
Округляйте вниз залог в drops (BigInt) до небольшого шага (например,
10 drops = 0.00001 USDT) перед отправкой. Вы теряете ничтожную долю цента и остаётесь
в пределах лимита при любом плече.
Разобранный пример#
FLASH, 3×, комиссия 1%, лимит 20,000 номинала:
collateral_post_fee target = 20,000 / 3 = 6,666.67
collateral_sent = 6,666.67 / 0.99 ≈ 6,734.01 (округлено вниз в drops)
→ заблокировано после комиссии ≈ 6,666.67, номинал ≈ 20,000
Коды состояния#
Ответы GraphQL возвращают HTTP 200 даже при сбое операции — анализируйте массив
errors[] и поле extensions.code каждой ошибки. Проблемы транспортного уровня
используют стандартные коды HTTP.
Коды состояния HTTP#
| Код |
Значение |
200 |
Стандартный ответ. ВСЕ исходы операций — успех и ошибки, включая аутентификацию, права доступа, лимиты, отсутствие ресурса и бизнес-правила — возвращают 200; анализируйте errors[] и errors[].extensions.code. |
400 |
Некорректный или недопустимый запрос GraphQL (ошибка разбора, неизвестное поле, неверная переменная). |
500 |
Непредвиденная ошибка сервера. Можно повторить с экспоненциальной задержкой. |
Сервис GraphQL возвращает ошибки аутентификации, прав доступа и лимитов внутри ответа
как 200 (см. коды ошибок GraphQL). Транспортные 401 / 403 / 429 возникают только
если вышестоящий шлюз/CDN отклоняет запрос до того, как он достигнет API.
Коды ошибок GraphQL#
Коды чувствительны к регистру; сопоставляйте точную строку. Доменные коды — в PascalCase
(например, RateLimited); некоторые системные коды — в верхнем регистре через подчёркивание
(например, UNAUTHENTICATED).
| Код |
Значение |
UNAUTHENTICATED |
Нет действительного токена, либо токен истёк/отключён, либо пользователь заблокирован. |
BAD_USER_INPUT |
Аргумент или переменная не прошли валидацию. |
GRAPHQL_VALIDATION_FAILED |
Запрос структурно некорректен (неизвестное поле/тип). |
RateLimited |
Превышен лимит запросов (см. Ограничения запросов). |
NotFound |
Указанный ресурс не существует. |
InternalError |
Непредвиденная ошибка сервера. |
Структура ошибки#
{
"errors": [
{ "message": "Token not found", "extensions": { "code": "NotFound" } }
],
"data": null
}
Ограничения запросов#
Операции GraphQL используют единый лимит-бакет, привязанный к API-токену (jti) и IP:
600 запросов/мин и 60 мутаций/мин. При превышении лимита
возвращается ответ HTTP 200, в errors[] которого содержится единственная ошибка с
extensions.code = RateLimited. API не возвращает статус 429 и заголовок Retry-After;
подсказки по времени повторной попытки передаются в extensions ошибки.
Лимиты HTTP (GraphQL)#
| Операция |
Лимит |
Окно |
| Запросы |
600 |
1 минута |
| Мутации |
60 |
1 минута |
Лимиты WebSocket#
| Область |
Лимит |
| Подписок на соединение |
1000 |
| Входящие сообщения |
200 / сек (всплеск 400) |
Тайм-аут connection_init |
10 с (код закрытия 4408) |
Лимиты WebSocket настраиваются на сервере, поэтому в проде они могут отличаться от этих
значений по умолчанию. Лимиты применяются на соединение, а не на IP.
Заголовки ответа#
API не отправляет заголовки лимитов (X-RateLimit-*, Retry-After). Их может добавить
вышестоящий шлюз; не полагайтесь на них.
Подводные камни и идемпотентность#
Чек-лист того, в чём интеграторы чаще всего ошибаются.
Деньги и размер#
- Drops — целые числа — BigInt от начала до конца; никогда не разбирайте
*UsdtDrops как float.
- Отправляемая сумма открытия (
usdtDrops или amountWei) — это залог до вычета
комиссии, а не номинал.
- Лимит номинала применяется в drops; округляйте вниз залог, чтобы избежать
превышения на несколько drops (см. «Комиссии и размер позиции»).
- Максимальное плечо — фиксированный лимит движка для каждого режима (см. «Скоростные
режимы токенов») — используйте его напрямую.
Токены#
- Рандомайзер возвращает случайный
rank (Competition | Private | Public).
Принудительно ставьте Public, если токен должен быть в листинге / доступен для копи-трейдинга.
tokenCreate всегда использует оплату с баланса — тип оплаты переопределить нельзя.
- На стороне сервера нет флага «активно» у
tokens — фильтруйте на клиенте по endDate.
Открытие и закрытие#
tradeOpen требует ровно одно из usdtDrops (в USDT) или amountWei (в токенах)
— не оба и не ни одного.
tradeClose закрывает открытую позицию через USER_SELL.
Тейк-профит / стоп-лосс (tradeLimit*)#
tradeLimitCreate требует хотя бы один триггер (SL или TP).
- При обновлении явный
null для стороны очищает её; опущенное поле сохраняется.
tradeLimitUpdate отклоняет полностью пустой ввод (Validation failed: input=MissingValue)
— используйте tradeLimitDelete для очистки.
- Удаления по одной стороне нет;
tradeLimitDelete удаляет обе — TP и SL.
Подписки (WebSocket)#
- Аутентифицируйтесь в
connection_init с payload: { Authorization: "Bearer <apiKey>" }.
- Подписка
positions транслирует объединение PublicPositionEvent —
PublicPositionOpenedEvent | PublicPositionClosedEvent | PublicPositionUpdatedEvent.
Сопоставляйте по полю type, прежде чем читать поля конкретного события.
PublicPositionClosedEvent содержит positionId, tokenId, type, closeType, closedAt, closePriceUsdtDrops, receivedAmountUsdtDrops, pnlUsdtDrops. Поля buyPriceUsdtDrops, collateralUsdtDrops, notionalUsdtDrops, leverageX10 принадлежат
PublicPositionOpenedEvent, а не событию закрытия.
- События закрытия доставляются как минимум один раз и не воспроизводятся повторно.
Закрытие, отправленное во время переподключения, пропускается новой подпиской —
опрашивайте каждую открытую позицию при (пере)подписке, чтобы отловить пропущенные
закрытия, и устраняйте дубликаты по
positionId.
WebSocket API#
Данные в реальном времени передаются по WebSocket-соединению по протоколу
GraphQL over WebSocket (graphql-transport-ws). Используйте его для операций
subscription, например для обновлений цен в реальном времени.
Соединение#
Откройте WebSocket по адресу:
wss://public-api.catapult.trade/graphql
Согласуйте подпротокол graphql-transport-ws. После открытия сокета отправьте
сообщение connection_init; сервер ответит connection_ack.
| Свойство |
Значение |
| URL |
wss://public-api.catapult.trade/graphql |
| Подпротокол |
graphql-transport-ws |
| Keep-alive |
сервер отправляет ping каждые 30 с; отвечайте pong |
| Макс. подписок |
1000 на соединение |
Жизненный цикл#
- Клиент открывает сокет с подпротоколом
graphql-transport-ws.
- Клиент →
{"type":"connection_init"}.
- Сервер →
{"type":"connection_ack"}.
- Клиент →
subscribe с уникальным id и документом GraphQL.
- Сервер → одно или несколько сообщений
next, затем complete.
Подписка#
{
"id": "1",
"type": "subscribe",
"payload": {
"query": "subscription($t: ID!) { priceTicks(tokenId: $t) { tokenId price } }",
"variables": { "t": "<tokenId>" }
}
}
Сообщение с данными#
{
"id": "1",
"type": "next",
"payload": { "data": { "priceTicks": { "tokenId": "tok_123", "price": "0.0123" } } }
}
Отписка#
Отправьте сообщение complete, чтобы остановить одну подписку; закройте сокет, чтобы
остановить все.
{ "id": "1", "type": "complete" }
Ошибки#
Ошибки уровня операции приходят как сообщение error для соответствующего id:
{ "id": "1", "type": "error", "payload": [{ "message": "Token not found" }] }
Соединения, не отправившие connection_init в течение 10 секунд, закрываются с кодом
4408 (тайм-аут инициализации соединения).
Queries
boosterAvailability#
Global booster availability: active/max/available slots and per-tier configuration (price, duration, points boost, applicable speed modes).
boosterAvailability: PublicBoosterAvailabilityOutput!
Аргументы
Без аргументов.
boosters#
All tokens with a currently active boost, including the time-decayed current return percentage.
boosters: [PublicBoostedTokenOutput!]!
Аргументы
Без аргументов.
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
Аргументы
| Имя | Тип | По умолчанию | Описание |
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!
Аргументы
ping#
Health probe for the public GraphQL API. Returns "pong". Does not require authentication.
ping: String!
Аргументы
Без аргументов.
tokenRandomizedPreset#
Returns a randomized token preset (name, symbol, avatar, mode flags) useful for pre-filling token creation inputs.
tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!
Аргументы
tokens#
List tokens with cursor pagination, sort, and filter.
tokens(input: PublicTokenListInput!): PublicTokenListOutput!
Аргументы
turboToken#
Get a single token by id with aggregated trading statistics.
turboToken(tokenId: ID!): PublicTokenDetailsOutput!
Аргументы
| Имя | Тип | По умолчанию | Описание |
tokenId |
ID! |
— |
|
userBalance#
Authenticated user balance. Returns free balance and amount allocated to open positions, in USDT drops.
userBalance: PublicBalanceOutput!
Аргументы
Без аргументов.
userMe#
Authenticated user profile. Excludes role, kaito attribution, and session info.
userMe: PublicUserOutput!
Аргументы
Без аргументов.
Mutations
boosterBuy#
Purchase a booster for one of the authenticated user's tokens. Returns true on success.
boosterBuy(input: PublicBoosterBuyInput!): Boolean!
Аргументы
fileFinalize#
Mark an upload as finished after the S3 POST succeeds. Returns the public file URL.
fileFinalize(id: String!): PublicFileFinalizeOutput!
Аргументы
| Имя | Тип | По умолчанию | Описание |
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!
Аргументы
tokenCreate#
Create a new turbo token. Always uses balance-based payment; payment type cannot be overridden.
tokenCreate(input: PublicTokenCreateInput!): String!
Аргументы
tradeClose#
Close an open position via USER_SELL.
tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!
Аргументы
tradeLimitCreate#
Attach an SL/TP limit to an open position. At least one trigger (SL or TP) must be specified.
tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!
Аргументы
tradeLimitDelete#
Remove the SL/TP limit from an open position.
tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!
Аргументы
tradeLimitUpdate#
Replace the SL/TP limit on an open position.
tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!
Аргументы
tradeOpen#
Open a position. Body must specify exactly one of `usdtDrops` (USDT-denominated) or `amountWei` (token-denominated).
tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!
Аргументы
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!
Аргументы
Без аргументов.
priceTicks#
Live price ticks for a token in USDT.
priceTicks(tokenId: ID!): PublicPriceTick!
Аргументы
| Имя | Тип | По умолчанию | Описание |
tokenId |
ID! |
— |
|
tokenCreated#
Stream of newly created turbo tokens
tokenCreated: PublicTokenCreatedEvent!
Аргументы
Без аргументов.
Objects
PublicBalanceOutput object#
Поля
| Имя | Тип | Описание |
balanceUsdtDrops |
String! |
Free balance available for trading. USDT drops (1e6 = 1 USDT). |
inPositionsBalanceUsdtDrops |
String! |
Capital currently allocated to open positions. USDT drops. |
PublicBoostedTokenOutput object#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
balanceUsdtDrops |
String! |
Free balance of the referral user. USDT drops (1e6 = 1 USDT). |
user |
PublicMinimalUserOutput! |
|
PublicClosedPositionOutput object#
Поля
| Имя | Тип | Описание |
amountWei |
String! |
Token amount in wei. |
boughtUsdtDrops Устарело |
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#
Поля
PublicClosedPositionTokenInfoOutput object#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
id |
ID! |
|
url |
String! |
Public URL of the finalized file. |
PublicFileUploadOutput object#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
key |
String! |
|
value |
String! |
|
PublicMinimalUserOutput object#
Поля
| Имя | Тип | Описание |
avatarToken |
String! |
|
id |
ID! |
|
profileName |
String! |
|
PublicPositionClosedEvent object#
Поля
PublicPositionOpenedEvent object#
Поля
| Имя | Тип | Описание |
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#
Поля
PublicPriceTick object#
Поля
| Имя | Тип | Описание |
price |
Float! |
|
tokenId |
ID! |
|
PublicTokenCreatedEvent object#
Поля
PublicTokenDetailsOutput object#
Поля
PublicTokenListItemOutput object#
Поля
| Имя | Тип | Описание |
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#
Поля
PublicTokenPresetOutput object#
Поля
PublicTokenStatisticsOutput object#
Поля
| Имя | Тип | Описание |
buysCount |
Int! |
|
sellsCount |
Int! |
|
totalVolumeUsdtDrops |
String! |
|
uniqueTradersCount |
Int! |
|
volumeFromBoostersUsdtDrops |
String! |
|
PublicTradeCloseOutput object#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
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#
Поля
| Имя | Тип | Описание |
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#
Значения
PositionType enum#
Position type: SPOT (1x LONG) or FUTURES (leveraged LONG / SHORT)
Значения
SortDirection enum#
Значения
SpeedMode enum#
Значения
| Имя | Описание |
|---|
CRACK | |
FAST | |
FLASH | |
MAYHEM | |
NORMAL | |
TokenBoosterType enum#
Значения
TurboPriceMode enum#
Значения
| Имя | Описание |
|---|
FiveHundred | |
Hundred | |
One | |
Ten | |
TurboTokenListSorting enum#
Значения
| Имя | Описание |
|---|
BuysCount | |
SellsCount | |
StartTime | |
TimeLeft | |
TradersCount | |
Volume | |
TurboTokenMode enum#
Значения
| Имя | Описание |
|---|
Crack | |
Fast | |
Flash | |
Mayhem | |
Slow | |
TurboTokenPositionCloseType enum#
Значения
| Имя | Описание |
|---|
EXPIRED | |
LIQUIDATION | |
STOP_LOSS | |
TAKE_PROFIT | |
USER_SELL | |
TurboTokenPositionEventType enum#
Значения
| Имя | Описание |
|---|
POSITION_CLOSED | |
POSITION_OPENED | |
POSITION_UPDATED | |
TurboTokenRank enum#
Значения
| Имя | Описание |
|---|
Competition | |
Private | |
Public | |
UserStatus enum#
Значения
UserWalletType enum#
Значения
| Имя | Описание |
|---|
Embedded | |
External | |
Scalars
DateTime scalar#
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.