Соглашения

Соглашения API

Правила, общие для всех эндпоинтов: структура URL, обёртка ответа, символы, единицы измерения, метки времени, пагинация и кеширование.

Базовый URL и версионирование

Все эндпоинты расположены под одним базовым URL и вызываются методом GET по HTTPS. Текущие пути относятся к версии v1. В рамках v1 изменения только расширяют API: поля и эндпоинты могут добавляться, а существующие поля сохраняют имя, тип и смысл. Изменение, нарушающее совместимость, выйдет под новым путём и будет заранее объявлено в журнале изменений.

Базовый URLhttps://www.coinboss.com/api

Обёртка ответа

В каждом JSON-ответе на верхнем уровне есть флаг success. Эндпоинты собственного слоя данных (пути под /api/sd) дополнительно содержат одинаковые блоки:

ПолеОписание
successtrue, если вызов выполнен. Проверяйте его всегда.
schemaИдентификатор и мажорная версия структуры ответа.
nowВремя сервера в момент формирования ответа, в миллисекундах.
coverageКакие биржи учтены, какие недоступны и почему, какие исключены как устаревшие.
methodФормула или правило расчёта каждого агрегата в ответе.
metaИсточники, метки времени, окно, оценка качества, флаг устаревания, время жизни кеша и поведение при откате на резервное значение.

Более старые эндпоинты возвращают success и поле data и могут не содержать coverage, method и meta. Точный состав полей описан на их страницах справочника.

Монеты, контракты и биржи

  • Параметры coin принимают базовый символ в верхнем регистре, например BTC или PEPE.
  • Контракты с множителем, такие как 1000PEPE или kPEPE, объединяются с базовой монетой с пересчётом количества.
  • Идентификаторы бирж пишутся в нижнем регистре, например binance, okx, bybit, hyperliquid.
  • Символы контрактов возвращаются в том виде, в каком их именует биржа. Там, где эндпоинт объединяет контракты с маржой в USDT, USDC и в монете и срочные фьючерсы, их различает поле типа контракта.
  • Бессрочные контракты на токенизированные акции и сырьевые товары, тикер которых совпадает с криптоактивом, исключаются из криптоагрегатов.

Единицы измерения

  • Поля с окончанием _usd содержат номинальную стоимость в долларах США.
  • Ставки финансирования выражены долями, а не процентами: 0.0001 означает 0.01%. Поля с окончанием _8h приведены к 8-часовому интервалу; исходный интервал возвращается рядом с исходной ставкой.
  • Поля с окончанием _pct содержат проценты: 1.5 означает 1.5%.
  • Открытый интерес — это номинальная стоимость в USD с односторонним учётом, если в описании поля не указано иное. Биржи, публикующие значения с двусторонним учётом, отмечены в блоке method.
  • Некоторые унаследованные эндпоинты возвращают десятичные числа строками, чтобы сохранить точность. В таблице полей такой тип указан как string(decimal).

Метки времени

  • Метки времени — это миллисекунды эпохи Unix в UTC, если в описании поля не указано иное.
  • observed_at — собственная метка времени биржи для самой новой из учтённых записей либо null, если биржа её не предоставляет.
  • received_at — момент, когда коллектор CoinBoss сохранил эту запись.
  • fetched_at — момент формирования ответа. У кешированного ответа он может быть раньше времени вашего вызова на величину до TTL кеша.
  • Дневные ряды используют границы суток по UTC.

Окна и интервалы

  • Параметры окна задаются короткими обозначениями: 1h, 4h, 12h, 24h, а на некоторых эндпоинтах также 3d, 7d, 30d, 90d. Допустимые значения для каждого эндпоинта перечислены на странице справочника.
  • Неизвестное значение окна либо отклоняется с кодом INVALID_PARAM, либо заменяется документированным значением по умолчанию — как указано для конкретного параметра.
  • Шаг временного ряда зависит от окна и указан на странице справочника.

Пагинация и сортировка

  • Списочные эндпоинты используют limit и offset либо page и size — как описано для каждого эндпоинта. Значения ограничены сверху: значение больше максимума уменьшается до максимума.
  • Если в ответе есть total, это число строк до пагинации.
  • Порядок сортировки фиксирован, если для эндпоинта не документирован параметр sort.

Null, ноль и отсутствие поля

  • null означает, что значение неизвестно или недоступно. 0 означает измеренный ноль.
  • На графиках для null должен отображаться разрыв. Не интерполируйте.
  • Поле с пометкой «может отсутствовать» в таблице полей может полностью отсутствовать в объекте; обрабатывайте это так же, как null.

Кеширование

  • У каждого эндпоинта есть TTL серверного кеша; он указан на странице справочника и в поле meta.cache_ttl_s. Заголовок X-Cache сообщает HIT, STALE или MISS.
  • Перед большинством GET-эндпоинтов работает короткий пограничный кеш примерно на десять секунд.
  • Опрос чаще TTL возвращает идентичные данные и лишь расходует лимит запросов.

WebSocket

WebSocketwss://www.coinboss.com/ws
  • Поток передаёт JSON только в одну сторону — от сервера. В каждом сообщении есть поле type.
  • После разрыва соединения переподключайтесь с задержкой и восполняйте пропуск через соответствующий HTTP-эндпоинт.

Машиночитаемая документация

Каталог, параметры и таблица полей каждого эндпоинта, статус и матрица качества доступны в формате JSON по путям под /api/meta, а весь каталог — также в виде документа OpenAPI 3.