Обзор#
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#
Глобальная доступность бустеров: активные/максимальные/доступные слоты и конфигурация по уровням (цена, длительность, буст очков, применимые режимы скорости).
boosterAvailability: PublicBoosterAvailabilityOutput!
Аргументы
Без аргументов.
boosters#
Все токены с активным в данный момент бустом, включая текущий процент доходности с учётом затухания по времени.
boosters: [PublicBoostedTokenOutput!]!
Аргументы
Без аргументов.
checkReferral#
Возвращает минимальный профиль реферала и свободный баланс USDT, если указанный ID пользователя является одним из рефералов вызывающего. Возвращает null, если пользователь не является рефералом аутентифицированного вызывающего (или не существует).
checkReferral(referralUserId: ID!): PublicCheckReferralOutput
Аргументы
| Имя | Тип | По умолчанию | Описание |
referralUserId |
ID! |
— |
|
closedPositions#
Список закрытых позиций аутентифицированного пользователя с курсорной пагинацией, новейшие первыми. Опционально фильтруется по одному токену.
closedPositions(input: PublicClosedPositionsInput!): PublicClosedPositionsOutput!
Аргументы
ping#
Проверка работоспособности публичного GraphQL API. Возвращает "pong". Не требует аутентификации.
ping: String!
Аргументы
Без аргументов.
tokenChartData#
Chart candles and current price for a token.
tokenChartData(tokenId: ID!): PublicTokenChartDataOutput!
Аргументы
| Имя | Тип | По умолчанию | Описание |
tokenId |
ID! |
— |
|
tokenRandomizedPreset#
Возвращает случайный пресет токена (имя, символ, аватар, флаги режима), полезный для предзаполнения полей создания токена.
tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!
Аргументы
tokens#
Список токенов с курсорной пагинацией, сортировкой и фильтрацией.
tokens(input: PublicTokenListInput!): PublicTokenListOutput!
Аргументы
turboToken#
Получить один токен по id с агрегированной торговой статистикой.
turboToken(tokenId: ID!): PublicTokenDetailsOutput!
Аргументы
| Имя | Тип | По умолчанию | Описание |
tokenId |
ID! |
— |
|
userBalance#
Баланс аутентифицированного пользователя. Возвращает свободный баланс и сумму, выделенную под открытые позиции, в USDT drops.
userBalance: PublicBalanceOutput!
Аргументы
Без аргументов.
userMe#
Профиль аутентифицированного пользователя. Не включает роль, атрибуцию kaito и информацию о сессии.
userMe: PublicUserOutput!
Аргументы
Без аргументов.
Mutations
boosterBuy#
Купить бустер для одного из токенов аутентифицированного пользователя. Возвращает true при успехе.
boosterBuy(input: PublicBoosterBuyInput!): Boolean!
Аргументы
claimAllCreatorFees#
Claim all available creator fees across tokens.
claimAllCreatorFees: PublicClaimAllCreatorFeesOutput!
Аргументы
Без аргументов.
claimCreatorFee#
Claim accumulated creator fees for a single token.
claimCreatorFee(input: PublicClaimCreatorFeeInput!): PublicClaimCreatorFeeOutput!
Аргументы
fileFinalize#
Отметить загрузку как завершённую после успешного S3 POST. Возвращает публичный URL файла.
fileFinalize(id: String!): PublicFileFinalizeOutput!
Аргументы
| Имя | Тип | По умолчанию | Описание |
id |
String! |
— |
|
fileUpload#
Начать загрузку файла. Возвращает предподписанный S3 POST URL с полями формы, которые клиент должен включить в multipart-загрузку.
fileUpload(input: PublicFileUploadInput!): PublicFileUploadOutput!
Аргументы
tokenCreate#
Создать новый turbo-токен. Всегда использует оплату с баланса; тип оплаты нельзя переопределить.
tokenCreate(input: PublicTokenCreateInput!): String!
Аргументы
tradeClose#
Закрыть открытую позицию через USER_SELL.
tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!
Аргументы
tradeLimitCreate#
Прикрепить SL/TP лимит к открытой позиции. Должен быть указан хотя бы один триггер (SL или TP).
tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!
Аргументы
tradeLimitDelete#
Удалить SL/TP лимит с открытой позиции.
tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!
Аргументы
tradeLimitUpdate#
Заменить SL/TP лимит на открытой позиции.
tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!
Аргументы
tradeOpen#
Открыть позицию. В теле запроса должен быть указан ровно один из параметров: `usdtDrops` (в USDT) или `amountWei` (в токенах).
tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!
Аргументы
Subscriptions
positions#
Поток событий по позициям для аутентифицированного пользователя. При инициализации выдаёт снимок каждой открытой позиции (каждая как POSITION_OPENED), затем транслирует в реальном времени события POSITION_OPENED / POSITION_CLOSED / POSITION_UPDATED.
positions: PublicPositionEvent!
Аргументы
Без аргументов.
priceTicks#
Тики цены токена в реальном времени в USDT.
priceTicks(tokenId: ID!): PublicPriceTick!
Аргументы
| Имя | Тип | По умолчанию | Описание |
tokenId |
ID! |
— |
|
tokenCreated#
Поток новосозданных turbo-токенов
tokenCreated: PublicTokenCreatedEvent!
Аргументы
Без аргументов.
unclaimedReward#
Stream of unclaimed reward balances for the authenticated user.
unclaimedReward: PublicUnclaimedRewardOutput!
Аргументы
Без аргументов.
Objects
PublicBalanceOutput object#
Поля
| Имя | Тип | Описание |
balanceUsdtDrops |
String! |
Свободный баланс, доступный для торговли. USDT drops (1e6 = 1 USDT). |
inPositionsBalanceUsdtDrops |
String! |
Капитал, выделенный в данный момент под открытые позиции. USDT drops. |
PublicBoostedTokenOutput object#
Поля
| Имя | Тип | Описание |
avatarUrl |
String! |
|
boostedUntil |
DateTime! |
Когда истекает буст. |
boosterType |
TokenBoosterType! |
|
currentReturnPercentage |
Float! |
Текущий процент доходности буста с учётом затухания по времени. |
name |
String! |
|
symbol |
String! |
|
tokenId |
ID! |
|
PublicBoosterAvailabilityOutput object#
Поля
| Имя | Тип | Описание |
active |
Int! |
Активные в данный момент слоты буста. |
available |
Int! |
Оставшиеся свободные слоты буста (max - active, не менее 0). |
max |
Int! |
Максимальное число одновременно забустенных токенов. |
types |
[PublicBoosterTypeConfigOutput!]! |
Конфигурация для каждого доступного уровня бустера. |
PublicBoosterTypeConfigOutput object#
Поля
| Имя | Тип | Описание |
availableModes |
[SpeedMode!]! |
Режимы скорости токена, к которым применим этот уровень. |
durationSeconds |
Int! |
Длительность буста в секундах. |
pointsBoost |
Float! |
Множитель очков, применяемый, пока буст активен. |
priceUsdtDrops |
String! |
Цена этого уровня. USDT drops (1e6 = 1 USDT). |
type |
TokenBoosterType! |
|
PublicCandleOutput object#
Поля
| Имя | Тип | Описание |
close |
Float! |
|
high |
Float! |
|
low |
Float! |
|
open |
Float! |
|
time |
Float! |
|
PublicCheckReferralOutput object#
Поля
| Имя | Тип | Описание |
balanceUsdtDrops |
String! |
Свободный баланс реферального пользователя. USDT drops (1e6 = 1 USDT). |
user |
PublicMinimalUserOutput! |
|
PublicClaimAllCreatorFeesOutput object#
Поля
| Имя | Тип | Описание |
balanceAfterUsdtDrops |
String! |
|
claimedAmountUsdtDrops |
String! |
|
claimedCount |
Int! |
|
PublicClaimCreatorFeeOutput object#
Поля
| Имя | Тип | Описание |
claimedAmountUsdtDrops |
String! |
|
PublicClosedPositionOutput object#
Поля
| Имя | Тип | Описание |
amountWei |
String! |
Количество токенов в wei. |
boughtUsdtDrops Устарело |
String! |
Устарело; заменено на `paidAmountUsdtDrops`. Сумма в USDT drops (1e6 = 1 USDT). |
buyPriceUsdtDrops |
String! |
Цена входа в USDT drops (1e6 = 1 USDT). |
closePriceUsdtDrops |
String |
Цена закрытия в USDT drops (1e6 = 1 USDT); null до расчёта. |
closeType |
TurboTokenPositionCloseType |
Каким образом была закрыта позиция (вручную, ликвидация и т. д.). |
closedAt |
DateTime |
Когда позиция была закрыта/рассчитана; null, если ещё открыта. |
collateralUsdtDrops |
String! |
Сумма залога в USDT drops (1e6 = 1 USDT). |
currentPriceUsdtDrops |
String! |
Текущая цена в USDT drops (1e6 = 1 USDT). |
endTimestamp |
DateTime! |
Запланированное время завершения позиции. |
id |
ID! |
|
isScoreBoosted |
Boolean! |
Был ли счёт позиции забустен. |
leverageX10 |
Int! |
Кредитное плечо X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x). |
limit |
PublicTradeLimitOutput |
Прикреплённый лимит stop-loss / take-profit, если есть. |
liquidationPriceUsdtDrops |
String |
Цена ликвидации в USDT drops (1e6 = 1 USDT); null для SPOT 1x LONG. |
notionalUsdtDrops |
String! |
Номинальная стоимость в USDT drops (collateral * leverage, 1e6 = 1 USDT). |
paidAmountUsdtDrops |
String! |
Сумма, уплаченная за открытие позиции, в USDT drops (1e6 = 1 USDT). |
pnlUsdtDrops |
String! |
Реализованный PnL в USDT drops (1e6 = 1 USDT). |
positionType |
PositionType! |
Тип позиции: SPOT (1x LONG) или FUTURES (LONG / SHORT с плечом). |
realizedFeesUsdtDrops |
String! |
Суммарные комиссии, уплаченные за эту позицию, в USDT drops (1e6 = 1 USDT). |
scoreForPosition |
Float! |
Счёт программы очков, начисленный за эту позицию. |
side |
PositionSide! |
Сторона позиции: LONG или SHORT. |
timestamp |
DateTime! |
Когда позиция была открыта. |
token |
PublicClosedPositionTokenInfoOutput! |
Токен, на котором открыта эта позиция. |
PublicClosedPositionsOutput object#
Поля
PublicClosedPositionTokenInfoOutput object#
Поля
| Имя | Тип | Описание |
avatarUrl |
String! |
|
id |
String! |
|
name |
String! |
|
rank |
TurboTokenRank! |
Ранг/уровень токена. |
speedMode |
SpeedMode! |
Режим торговой скорости токена. |
symbol |
String! |
|
tokenDecimals |
Int! |
Число десятичных знаков для количества токена. |
PublicFileFinalizeOutput object#
Поля
| Имя | Тип | Описание |
id |
ID! |
|
url |
String! |
Публичный URL финализированного файла. |
PublicFileUploadOutput object#
Поля
| Имя | Тип | Описание |
fields |
[PublicFormField!]! |
Поля формы для предподписанного S3 POST. Добавьте каждую пару (key, value) в ваш `FormData`, затем добавьте `file` последним. |
id |
ID! |
Id файла; передайте в `fileFinalize` после S3 POST. |
uploadUrl |
String! |
URL, на который нужно отправить multipart-форму методом POST. |
PublicFormField object#
Поля
| Имя | Тип | Описание |
key |
String! |
|
value |
String! |
|
PublicMinimalUserOutput object#
Поля
| Имя | Тип | Описание |
avatarToken |
String! |
|
id |
ID! |
|
profileName |
String! |
|
PublicPositionClosedEvent object#
Поля
PublicPositionOpenedEvent object#
Поля
| Имя | Тип | Описание |
amountWei |
String! |
|
buyPriceUsdtDrops |
String! |
Цена входа в USDT drops. |
collateralUsdtDrops |
String! |
Сумма залога в USDT drops (ввод пользователя за вычетом комиссий). |
currentPriceUsdtDrops |
String! |
Текущая цена в USDT drops. |
leverageX10 |
Int! |
|
limit |
PublicTradeLimitOutput |
|
liquidationPriceUsdtDrops |
String |
Цена ликвидации в USDT drops (null для SPOT 1x LONG). |
notionalUsdtDrops |
String! |
Номинальная стоимость в USDT drops (collateral * leverage). |
paidAmountUsdtDrops |
String! |
Уплаченная сумма в USDT drops. |
pnlUsdtDrops |
String! |
PnL в реальном времени в USDT drops. |
positionId |
ID! |
|
positionType |
PositionType! |
|
side |
PositionSide! |
|
timestamp |
DateTime! |
|
tokenId |
String! |
|
type |
TurboTokenPositionEventType! |
|
PublicPositionUpdatedEvent object#
Поля
PublicPriceTick object#
Поля
| Имя | Тип | Описание |
price |
Float! |
|
tokenId |
ID! |
|
PublicTokenChartDataOutput object#
Поля
PublicTokenCreatedEvent object#
Поля
PublicTokenDetailsOutput object#
Поля
PublicTokenListItemOutput object#
Поля
| Имя | Тип | Описание |
avatarUrl |
String! |
|
boostedUntil |
DateTime |
Когда истекает активный буст на этом токене, или null, если буст не активен. |
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! |
Совокупный торговый объём (USDT drops, 1e6 = 1 USDT). |
PublicTokenListOutput object#
Поля
PublicTokenPresetOutput object#
Поля
PublicTokenStatisticsOutput object#
Поля
| Имя | Тип | Описание |
buysCount |
Int! |
|
nonMmVolumeFromBoostersUsdtDrops |
String! |
|
sellsCount |
Int! |
|
totalVolumeUsdtDrops |
String! |
|
uniqueTradersCount |
Int! |
|
volumeFromBoostersUsdtDrops |
String! |
|
PublicTradeCloseOutput object#
Поля
| Имя | Тип | Описание |
amountUsdtDrops |
String! |
Сумма позиции в USDT drops без комиссий. |
closePriceUsdtDrops |
String! |
|
closeType |
TurboTokenPositionCloseType! |
Каким образом была закрыта позиция. |
closedAt |
DateTime! |
|
leverageX10 |
Int! |
Кредитное плечо X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x). |
paidAmountUsdtDrops |
String! |
Уплаченная сумма в USDT drops. |
pnlPercentage |
String! |
|
pnlUsdtDrops |
String! |
|
positionId |
String! |
|
positionType |
PositionType! |
Тип позиции (SPOT или FUTURES). |
receivedAmountUsdtDrops |
String! |
Сумма, полученная после закрытия позиции, в USDT drops. |
side |
PositionSide! |
Сторона позиции (LONG или SHORT). |
tokenId |
String! |
|
totalCloseFeeUsdtDrops |
String! |
Комиссия за закрытие + комиссия с прибыли в USDT drops. |
PublicTradeLimitOutput object#
Поля
| Имя | Тип | Описание |
positionId |
ID! |
Id позиции, к которой прикреплён этот лимит. |
slTriggerPnlUsdtDrops |
String |
Триггерный PnL stop-loss в USDT drops (1e6 = 1 USDT); null, если не задан. |
slTriggerPriceUsdtDrops |
String |
Триггерная цена stop-loss в USDT drops (1e6 = 1 USDT); null, если не задана. |
tokenId |
String! |
Id токена, которым торгует позиция. |
tpTriggerPnlUsdtDrops |
String |
Триггерный PnL take-profit в USDT drops (1e6 = 1 USDT); null, если не задан. |
tpTriggerPriceUsdtDrops |
String |
Триггерная цена take-profit в USDT drops (1e6 = 1 USDT); null, если не задана. |
userId |
String! |
Id пользователя-владельца. |
PublicTradePositionOutput object#
Поля
| Имя | Тип | Описание |
amountUsdtDrops |
String! |
|
amountWei |
String! |
|
collateralUsdtDrops |
String! |
Сумма залога в USDT drops (ввод пользователя за вычетом комиссий). |
id |
ID! |
|
leverageX10 |
Int! |
|
limit |
PublicTradeLimitOutput |
|
liquidationPriceUsdtDrops |
String |
Цена ликвидации в USDT drops (null для SPOT 1x LONG). |
notionalUsdtDrops |
String! |
Номинальная стоимость в USDT drops (collateral * leverage). |
positionType |
PositionType! |
|
priceUsdtDrops |
String! |
|
side |
PositionSide! |
|
timestamp |
DateTime! |
|
PublicUnclaimedRewardOutput object#
Поля
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#
Тип позиции: SPOT (1x LONG) или FUTURES (LONG / SHORT с плечом)
Значения
PublicUnclaimedBalanceType enum#
Значения
| Имя | Описание |
|---|
BONDED_TURBO_TOKEN_FEE | |
CREATOR_FEE | |
CREATOR_PROGRAM_REFERRAL_REWARD | |
MINDSHARE_REWARD | |
PRESALE_REFERRAL_REWARD | |
REFERRAL_REWARD | |
SEASON_REWARD | |
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#
Строка даты-времени в UTC, например 2019-12-03T09:54:33Z, соответствующая формату date-time.