Что изменилось в API, текущая версия и правила совместимости.
v1Текущая версия
2026.11.12Ревизия каталога
Версионирование и совместимость
Версионирование
Публичный API имеет версию v1. Префикс пути — `/api`, номера версии в нём нет.
У каталога своя версия на основе даты (`catalog_version`, например 2026.11.11). Она меняется при любом изменении эндпоинтов, параметров или документации.
Каждый ответ эндпоинтов собственного слоя данных содержит идентификатор `schema` (например, `sd.oi.v1`). Новый идентификатор выпускается только тогда, когда существующее поле меняет смысл или тип.
Совместимость
Добавление эндпоинтов, необязательных параметров, полей ответа, значений перечислений или бирж — обратно совместимое изменение, которое может произойти в любой момент. Клиенты должны игнорировать неизвестные им поля.
Удаление или переименование поля, изменение его типа или единицы измерения, а также превращение необязательного параметра в обязательный — изменение, нарушающее совместимость. О нём объявляется здесь до выпуска.
Исправления — исключение: исправление неверного числа или обработки некорректных входных данных, которые раньше молча принимались, выпускается немедленно и указывается здесь в день выхода с пометкой о нарушении совместимости, если может потребоваться изменение клиентского кода.
Числа могут меняться из-за расширения покрытия (добавляется новая биржа или тип контракта). Покрытие всегда указывается в ответе, поэтому сравнивайте `coverage`, прежде чем сравнивать итоги.
Отсутствующие данные возвращаются как `null` и перечисляются в `coverage.unavailable`; они никогда не заменяются на 0 или оценку. Код, трактующий `null` как 0, будет работать неверно.
Вывод из эксплуатации
Эндпоинты с пометкой `legacy` продолжают работать, но в новых разработках следует использовать указанную замену.
Унаследованный эндпоинт удаляется не ранее чем через 90 дней после появления записи о его выводе из эксплуатации в этом журнале изменений.
Эндпоинты с пометкой `beta` обслуживают страницы сайта; набор их полей может меняться без уведомления за 90 дней, но каждое изменение всё равно указывается здесь.
Изменения
Добавлено2026.11.12Обратно совместимо
`/api/currency/ex-table`: `market=perpetual`, `delivery` and `all`, plus one status vocabulary
New values of `market`: `perpetual` (perpetual contracts), `delivery` (dated futures) and `all` (spot, perpetual and delivery markets of the coin in one list). They return one row per market and number `rank` inside the requested view.
Every per-market row carries `market_status` (`ACTIVE`, `EXPIRING`, `EXPIRED`, `NO_QUOTE`, `STALE`), `reason_code` (`NO_QUOTE`, `EXPIRED`, `STALE`, `UNAVAILABLE` or null), `source_at`, `quality`, `is_stale`, `expires_in_s`, `symbol` and `base`. The state is derived from the contract specification of the exchange (expiry) and from the time the ticker was received. `status` and `status_reason` are unchanged.
`EXPIRING` marks a contract that still trades and expires within 24 hours (`meta.expiring_window_s`). Rows that are not `ACTIVE` or `EXPIRING` return `price: null`; no price is carried over from an earlier quote or from another contract.
`meta` adds `market_status_counts`, `type_counts` and `type_rankable`. The row order is the same for every caller: rankable rows by `volume_usd` descending, then rows without a quote, expired contracts last.
Добавлено2026.11.12Обратно совместимо
`/api/liquidation-events` adds event / account counts and BTC high, low and range
New fields on every row: `btc_high`, `btc_low`, `btc_range` (USD, high − low) and `btc_range_pct` ((high − low) / low × 100), with `btc_range_meta`. Prices are the median of the UTC daily high / low on Binance (BTC/USDT), Coinbase (BTC/USD) and Kraken (BTC/USD) spot. The fields are null unless all three venues have a final daily candle.
New fields on `coinboss` rows: `liquidation_count` (de-duplicated liquidation events; not people) and `account_count` (distinct liquidated accounts on exchanges that expose an account identifier, currently Hyperliquid only; `quality` is `PARTIAL`), each with a `_meta` object giving source, window, quality and coverage. Both are null on baseline rows.
CoinBoss does not publish a liquidated-trader (people) count; `coverage.metrics.people_count.quality` is `UNAVAILABLE`. `liquidated_traders` and `btc_amplitude` are unchanged: they stay the text recorded in the third-party source and are not copied into the new fields.
Изменено2026.11.12Обратно совместимо
`/api/currency/ex-table`: per-contract rows carry their own quote and a `status`
With `group=pair`, every contract row now uses the ticker of that contract. Before, only the main contract of each exchange had a price and the other rows returned `price: null`.
New row fields with `group=pair` and `market=spot`: `status` (`active`, `no_quote`, `not_provided`, `expired`), `status_reason`, `market_type`, `expiry_ts`, `expiry_date`, `native_symbol`, `quote`, `margin_type`, `price_source`, `price_at` and `rank`; the response adds `meta` (freshness window, volume window and unit, sort rule, row counts per status).
Rows that are not `active` return `price: null` and are never filled from another contract. `volume_usd` on such rows is `0` only when the exchange reports zero 24h turnover, otherwise `null`.
Order with `group=pair`: `active` rows first by `volume_usd` descending (these carry `rank`), then rows without a live quote by `oi_usd` descending, expired contracts last. `contract_type` now follows the exchange contract specification, so dated contracts on Deribit, Bybit, Gate and KuCoin are reported as `delivery`; `expiry` is set for all of them.
Requests without `group` return the same rows and fields as before.
Изменено2026.11.12Обратно совместимо
`/api/liquidation-events` returns the Top 10 with a `source` field
This corrects the 2026-11-11 entry below. The historical baseline rows (third-party public historical records) are served again, as recorded and without recalculation.
Rows recorded by CoinBoss are UTC daily totals from its own collectors. A day is added only when its total is greater than the 10th place of the list at that time. Every row carries `source` (`historical_baseline` or `coinboss`) and `basis`.
The list is sorted by `total_usd` and returns 10 rows. New fields: `data[].total_usd` (same value as `amount_usd`), `data[].source`, `data[].basis` and `threshold_usd`. `coverage` is split into `coverage.baseline` and `coverage.coinboss`; the `coverage.source`, `coverage.from` and `coverage.note` fields introduced on 2026-11-11 moved under them.
Изменено2026.11.12Обратно совместимо
При сбоях источников возвращается HTTP 503, JSON-тело ошибки сохраняется
Неудачные запросы, на которые раньше приходил ответ HTTP 502 или 504, теперь получают 503 с заголовком `Retry-After`. CDN, стоящий перед API, подменял тело ответов 502 и 504 собственным текстом, из-за чего терялись `code` и `request_id`; ответ 503 проходит без изменений. Значения `code` остались прежними.
Сбой источника данных, стоящего за одним эндпоинтом, больше не влияет на другие эндпоинты: шлюз повторяет запрос на другом экземпляре только при ошибках соединения и тайм-аутах.
`/api/sd/options/*` и `/api/sd/cme/overview` принимают названия монет, записанные китайскими иероглифами. Для монеты, у которой нет такого рынка, возвращается HTTP 200 с агрегатами `null` вместо 400.
История расчётов финансирования: пропуски внутри 30-дневного окна выявляются и дозаполняются для 150 самых торгуемых монет на Bybit, OKX, Gate и Bitget (на HTX — для 40), поэтому `cum_7d` и `cum_30d` полны для большего числа монет.
Исправлено2026.11.11Обратно совместимо
Индекс вариативности ликвидаций исправлен; при недоступном источнике возвращается 503
`/api/indicators/cdri`: дневной ряд был пустым, поскольку при группировке по дням метка времени в миллисекундах читалась как секунды. Теперь возвращается до 90 полных суток UTC с итогами ликвидаций; `current.days` (новое поле) — число использованных дней, а `current.cdri` / `current.liqCV` равны `null`, если дней меньше двух.
`/api/indicators/reddit-subs`: пока источник отклоняет запросы, эндпоинт отвечает HTTP 503 с кодом `UNAVAILABLE` вместо HTTP 500. Число подписчиков сохраняется, только если источник возвращает положительное число.
Тела ошибок в ответах HTTP 5xx больше не содержат текст ошибки внешнего источника в унаследованном поле `msg`; теперь в нём то же общее сообщение, что и в `error`.
Исправлено2026.11.11Нарушает совместимость
Записи, переставшие обновляться, помечаются и исключаются из итогов
`/api/coins/all` и `/api/coins/search`: запись монеты, не обновлявшаяся более 48 часов, возвращает `market_cap` и `mcap_rank` равными `null` с `is_stale: true` и сортируется после всех актуальных строк. Действующее правило дублируется в `stale_rule`.
`/api/derivatives/coins-full`: ровно одна строка на монету. Раньше символ, общий для нескольких записей монет, давал по строке на каждую запись; теперь строка содержит название, капитализацию и ранг крупнейшей записи, обновлённой в течение 48 часов, либо `null`, если такой нет. `mcap_rank` — новое поле.
`/api/reserves/overview`: у каждой строки есть `updated_at` и `is_stale`. `total` теперь суммирует только биржи, обновлённые в течение 36 часов; прежнее определение сохранено как `total_including_stale`, а исключённые биржи перечислены в `stale_exchanges`.
`/api/margin/rates` и `/api/margin-fee/matrix`: активы и ячейки, ставка которых перестала обновляться, содержат `is_stale: true`; пороги и счётчики возвращаются на верхнем уровне.
Дневные снимки глобальной капитализации с 2026-10-28 по 2026-11-11 пересчитаны после того, как в сумме были обнаружены две записи с невозможной капитализацией (больше, чем у Bitcoin). Теперь сборщики сохраняют для таких значений `null`.
Изменено2026.11.11Обратно совместимо
О сбоях источников сообщается в ответе — без ошибки и без видимости актуальных данных
`/api/indicators/mempool/pools`: если источник данных о майнинговых пулах не отвечает, вместо HTTP 500 возвращается последний сохранённый результат с `stale: true`, `cached_at` и `stale_reason`.
`/api/etf/funds`: новый объект `frozen_fields`, в котором названы поля уровня фонда, переставшие публиковаться источником 2026-10-08, с датой, к которой относится каждое значение.
`/api/indicators/halving`: новый объект `current_difficulty` (`value`, `as_of`, `source`). `difficulty` (прогресс пересчёта сложности) остаётся `null`, пока его источник недоступен.
`/api/browser/detect`: неудавшийся поиск в сети больше не выдаётся за адрес без активности. `kind` равно `lookup_failed`, если не удалось опросить ни одну сеть.
`/api/currency/flows`: в документации теперь перечислены 22 окна, которые эндпоинт реально отдаёт (от 5 минут до 1 года).
Изменено2026.11.11Нарушает совместимость
Неподдерживаемые значения параметров возвращают 400 вместо данных по умолчанию
`/api/derivatives/kline`: `interval=4h` возвращает настоящие 4-часовые свечи, построенные из свечей 1h по границам UTC (раньше возвращались свечи 1h). Любой интервал, кроме `1h`, `4h` и `1d`, возвращает 400.
Эндпоинты опционов в `/api/options/`: неподдерживаемое значение `currency` возвращает 400 вместо данных по BTC, а `coin` принимается как псевдоним на всех семи эндпоинтах.
`/api/etf/flows`, `/api/etf/detail`, `/api/etf/funds` и `/api/etf/holdings`: неподдерживаемое значение `asset` возвращает 400 вместо данных по BTC.
`/api/liquidations/coins`: неподдерживаемое значение `range` возвращает 400 вместо данных за 24h, а действующее окно дублируется в `range`.
`limit` ограничен значением 1000 на `/api/liquidations`, `/api/liquidations/largest` и `/api/derivatives/coins-full`. Нечисловой `limit` заменяется значением по умолчанию и не приводит к ошибке.
Исправлено2026.11.11Нарушает совместимость
Исправлены дневной объём и статистика исследований
`/api/volume/coin`: `daily_30d` складывал все снимки скользящего 24h-объёма за день и завышал дневной объём примерно в 24 раза. Теперь берётся последний снимок каждых суток UTC.
`/api/research/stats` с `topic=derivatives`: `volume_24h_usd` было завышено таким же образом и исправлено.
`avg_funding_rate_pct` в том же ответе теперь выражено в процентах — примерно в 100 раз больше исходной доли, которую оно возвращало раньше. Исправьте код, который умножал его на 100.
Исправлено2026.11.11Обратно совместимо
Старые рыночные эндпоинты игнорируют строки, переставшие обновляться
Строки учитываются, только пока они актуальны: тикеры — в течение 1 часа, открытый интерес — 3 часов (CME: 120 часов), финансирование — 4 часов, соотношения лонг/шорт — 24 часов.
Итоги стали немного ниже, а некоторые списки — короче. Контракты, по которым прекратилась торговля, показывают цены `null` вместо последнего значения.
Исправлено2026.11.11Обратно совместимо
Контракты с множителем сопоставлены с базовой монетой
`/api/funding/coin`, `/api/funding/history`, `/api/funding/chart` и `/api/ls/coin` теперь сопоставляют контракты, котируемые в кратных количествах монеты (например, `1000PEPE`), с базовой монетой, поэтому по таким монетам отображается больше бирж.
Добавлено2026.11.11Обратно совместимо
Данные по опционам с шести площадок
Новые эндпоинты `/api/sd/options/overview`, `/api/sd/options/expiries`, `/api/sd/options/strikes`, `/api/sd/options/chain` и `/api/sd/options/history`.
Открытый интерес, номинальный объём за 24h, соотношения пут/колл, макс. боль, ATM IV, перекос 25-дельта и временная структура IV рассчитываются CoinBoss по спискам контрактов Deribit, Binance, Bybit, OKX, Gate и Coincall.
Номинальный объём и оборот по премии — отдельные поля, и они никогда не суммируются. Столбцы, которые площадка не публикует, равны `null` и перечислены в `coverage.field_gaps`.
История ведётся по часам и начинается 2026-11-11; более ранние часы задним числом не заполняются.
Добавлено2026.11.11Обратно совместимо
Данные по спотовым ETF, CME и CFTC из первичных публикаций
Новые эндпоинты `/api/sd/etf/overview`, `/api/sd/etf/funds` и `/api/sd/etf/history`, построенные на раскрытиях эмитентов. Итоги охватывают фонды, данные которых CoinBoss может собирать; все остальные фонды перечислены с указанием причины, а `totals_scope` всегда равно `covered_funds_only`.
Поток средств фонда рассчитывается CoinBoss по паям в обращении и NAV (либо по чистым активам и NAV). Использованная формула возвращается для каждого фонда в `flow_method`.
Новые эндпоинты `/api/sd/cme/overview` (дневной объём и открытый интерес по восьми продуктам CME) и `/api/sd/cme/cot` (еженедельное позиционирование по данным CFTC по категориям трейдеров).
Расчётные цены CME пока не собираются. Для значений в USD используется референсная цена с пометкой (`price_src`), и по этой причине обзор помечен как PARTIAL.
Добавлено2026.11.11Обратно совместимо
Глубина книги ордеров и проскальзывание
Новые эндпоинты `/api/sd/liquidity`, `/api/sd/liquidity/history` и `/api/sd/liquidity/rank`.
Глубина в пределах ±0.5 %, ±1 % и ±2 % от средней цены и проскальзывание рыночных ордеров на 10k / 100k / 1M USD рассчитываются по реальным снимкам книг ордеров 24 бирж, отдельно для бессрочных контрактов и спота.
Снимок, не достигающий границы диапазона, помечается `complete: false`, сообщается как нижняя граница и не входит в агрегат. `n_included` показывает, сколько книг ордеров входит в итог.
`/api/indicators/large-orderbook` — результат модели, а не книга ордеров; для ликвидности, стоящей в книге, используйте новые эндпоинты.
Добавлено2026.11.11Обратно совместимо
Базис по ценам маркировки и индексным ценам бирж
Новые эндпоинты `/api/sd/basis`, `/api/sd/basis/history` и `/api/sd/basis/rank`.
Базис бессрочного контракта = (mark − index) ÷ index × 100 на одной и той же бирже; базис «спот — бессрочный контракт» сравнивает бессрочный контракт со спотовым рынком той же биржи; для срочных контрактов добавляется значение в годовом выражении.
Агрегаты приводятся взвешенными по OI, взвешенными по объёму и в виде медианы. Строки, не прошедшие правила включения, всё равно возвращаются с `excluded_reason`.
Часовая история начинается 2026-11-11.
Изменено2026.11.11Обратно совместимо
Карты иконок используют публичный origin сайта
`/api/coin-icons` и `/api/exchange-icons` возвращают URL иконок на `https://www.coinboss.com` — том же origin, что и у всех остальных публичных эндпоинтов. Пути (`/api/coin-icon/{coin}`, `/api/exchange-icon/{exchange}`) не изменились.
Не рекомендуется2026.11.11Обратно совместимо
`/api/basis/list` и `/api/cftc/cot` помечены как унаследованные
Используйте `/api/sd/basis/rank` вместо `/api/basis/list` и `/api/sd/cme/cot` вместо `/api/cftc/cot`. Унаследованные эндпоинты продолжают работать.
Изменено2026.11.11Обратно совместимо
`/api/liquidation-events` теперь отдаёт только записи CoinBoss
Список строится из ордеров ликвидации, полученных CoinBoss из лент бирж. Его история начинается 2026-08-19; для более ранних дат строки не возвращаются.
Имена и типы полей не изменились.
Удалено2026.11.11Обратно совместимо
Служебные эндпоинты больше не доступны из интернета
`/api/health/alerts`, `/api/health/server`, `/api/health/history` и `/api/health/ch-read` отвечают 404 на публичные запросы. Они никогда не входили в публичный API.
Для статуса сервиса используйте `/api/meta/status`, для актуальности данных — `/api/meta/quality`.
Добавлено2026.11.11Обратно совместимо
Центр разработчика и машиночитаемые метаданные API
Новые эндпоинты `/api/meta/catalog`, `/api/meta/endpoint`, `/api/meta/status`, `/api/meta/quality`, `/api/meta/changelog` и `/api/meta/openapi`.
Таблицы полей и примеры ответов в документации формируются из реальных ответов автопроверкой API, которая вызывает каждый публичный эндпоинт каждые 5 минут.
Статус эндпоинта (available / partial / degraded / down / unavailable) теперь определяется по этим реальным вызовам, а не по состоянию процесса.
Изменено2026.11.11Обратно совместимо
Единое тело ошибки и ID запросов
Каждый ответ содержит заголовок `X-Request-Id`; в телах ошибок он повторяется как `request_id`.
Тела ошибок теперь имеют вид `{ success: false, code, error, request_id }` на всех эндпоинтах. `error` остаётся строкой, поэтому существующие клиенты продолжают работать.
Неизвестные маршруты `/api/*` отвечают JSON 404 (`NOT_FOUND`) вместо HTML-страницы.
Ответы HTTP 429 содержат `Retry-After`.
Сообщения ошибок 5xx носят общий характер; внутренние подробности больше не выводятся.
Добавлено2026.11.11Обратно совместимо
Эндпоинты собственного слоя данных с покрытием и качеством в каждом ответе
Новые эндпоинты `/api/sd/oi`, `/api/sd/funding`, `/api/sd/liquidations`, `/api/sd/volume`, `/api/sd/ls`, `/api/sd/coin` и `/api/sd/quality`.
Открытый интерес приводится отдельно для контрактов с маржой в USDT, USDC и в монете и для срочных контрактов; указано, какие площадки публикуют значения с двусторонним учётом.
Финансирование возвращается в исходном виде (с указанием интервала), приведённым к 8h и в годовом выражении; площадки, контракт которых не торгуется, исключаются и перечисляются.
Не рекомендуется2026.11.11Обратно совместимо
`/api/market/long-short` помечен как унаследованный
Используйте `/api/market/long-short-v2` для списочного представления или `/api/sd/ls` для соотношений по счетам / по позициям / тейкеров в разбивке по биржам.
Изменено2026.10.31Обратно совместимо
Поля иконок возвращают пути на том же источнике (same-origin)
Поля вроде `image_url` / `icon` теперь содержат путь CoinBoss (`/api/coin-icon/...`) вместо стороннего URL.
Для монеты без проверенной иконки возвращается `null`; клиентам следует отображать собственную заглушку.
Исправлено2026.10.24Обратно совместимо
Устаревшие строки больше не попадают в агрегаты
Итоги по открытому интересу, финансированию и лонг/шорт используют только строки, обновлённые в пределах окна актуальности (для CME, публикующей данные раз в день, оно длиннее).
Контракты, снятые с торгов, перестают учитываться в итогах, как только их последнее обновление выходит за пределы окна.
Унаследованные эндпоинты
Сохранены для совместимости. Они продолжают работать; в новых интеграциях следует использовать замену.
Сохранён для существующих интеграций. Используйте `/api/market/long-short-v2` (добавляет фильтр по бирже) или `/api/sd/ls` (по биржам; соотношения по счетам, по позициям и тейкеров хранятся раздельно).
`apr_pct` — это `basis_pct × 3 × 365`, простая экстраполяция текущего базиса бессрочного контракта, как если бы он выплачивался каждые 8 часов; это не доходность финансирования и не доходность срочного контракта. `/api/sd/basis` сообщает базис «цена маркировки — индекс», «спот — бессрочный контракт» и базис срочных контрактов по отдельности.