Перейти к основному содержимому

API для разработчиков

Как выпустить API-ключ и забирать данные SpreadFighter в свои программы: REST с заголовком X-API-KEY, потоки NATS по websocket, темы по тарифам и ограничения. Ключи доступны на Pro и Max.

Что это​

Данные, которые видны на дашборде, — скринеры, индикаторы, стакан, фандинг, биржевые потоки — можно получать в собственные программы: бота, таблицу, свой сервер. Для этого нужен API-ключ. Один и тот же ключ работает и для REST, и для потоков NATS.

Полная документация — на странице Доступ по API в приложении. Она открывается после входа в аккаунт и состоит из разделов «Начало», «REST», «NATS», «Темы и тарифы» и «Ограничения». Эта статья — краткий обзор; списки методов и тем смотрите там: они берутся с сервера и всегда актуальны.

Тарифы​

ТарифAPI
FreeНет: ключ выпустить нельзя
ProЕсть: REST и темы NATS своего тарифа
MaxЕсть: REST и темы NATS своего тарифа

Тариф проверяется при каждом использовании ключа, а не только при выпуске. Если подписка закончилась или тариф понижен до Free, ключ перестаёт работать сам, отзывать его не нужно. Смена тарифа доходит до проверки ключа примерно за минуту.

Как получить ключ​

  1. Откройте профиль: аватар в правом верхнем углу → «Профиль».
  2. Найдите карточку «API-ключи».
  3. Введите название ключа, например «бот на сервере», и нажмите «Выпустить ключ».
  4. Скопируйте ключ кнопкой «Скопировать» и нажмите «Я сохранил».
warning

Ключ целиком показывается один раз — в момент выпуска. У нас хранится только его хэш, поэтому восстановить ключ нельзя. Потеряли — выпустите новый и отзовите старый.

Ключ выглядит так: sf_live_<идентификатор>_<номер ключа>_<секрет>.

В списке ключей видны название, номер ключа, дата создания, последнее использование и статус: действует, отозван или истёк. Ненужный ключ отзовите кнопкой «Отозвать». Ссылка «Как подключиться» в карточке ведёт на страницу документации.

REST​

REST — запросы по требованию: история, срезы, справочники. Ключ передаётся только заголовком X-API-KEY. В параметрах адреса и в теле запроса он не принимается — так ключ не попадёт в логи прокси и историю браузера.

curl -H "X-API-KEY: sf_live_..." \
"https://core-api.hel1.prod.hz.spreadfighter.cloud/api/hftActivities?symbol=BTCUSDT&timeFrame=1m&limit=10"
ХостДанные
https://core-api.hel1.prod.hz.spreadfighter.cloudСигналы, индикаторы, скринеры
https://depth-api.hel1.prod.hz.spreadfighter.cloudСтакан
https://funding-api.hel1.prod.hz.spreadfighter.cloudФандинг

Полный список методов с параметрами — в Swagger сервиса сигналов. У двух других сервисов Swagger нет.

NATS​

NATS — потоковые данные в реальном времени. Подключение идёт по websocket к wss://nats-ws.hel1.prod.hz.spreadfighter.cloud, тот же ключ передаётся как token. Клиентская библиотека должна поддерживать авторизацию по token: в @nats-io/nats-core это поле token, в nats.go — опция nats.Token.

import { wsconnect } from "@nats-io/nats-core";

const nc = await wsconnect({
servers: ["wss://nats-ws.hel1.prod.hz.spreadfighter.cloud"],
token: "sf_live_...",
});

const sub = nc.subscribe("sf.core.scripts.screener.marketPower.1m.all.dict");
for await (const m of sub) {
console.log(m.json());
}

Пример на Go — на странице документации.

Темы​

Адреса тем устроены так:

ШаблонЧто это
sf.core.scripts.screener.<название>.>Расчёты скринеров
binance.futures.<поток>.>Биржевые потоки
private.<ваш-uid>.>Ваши собственные события
  • Знак > закрывает весь остаток адреса, * — ровно один сегмент.
  • Подписка на тему не своего тарифа не даёт ошибки: данные просто не приходят.
  • Публиковать можно только в своё пространство private.<ваш-uid>. Писать в общие потоки нельзя.

Какие темы открыты на каждом тарифе, показывает раздел «Темы и тарифы» на странице документации. Список приходит с сервера — из того же места, по которому выдаются права на подключение. Темы, недоступные на вашем тарифе, там приглушены.

Ограничения​

ЧтоОграничение
КлючиДо 10 действующих ключей на аккаунт. Отозванные не считаются
Отзыв ключаДействует примерно через минуту: проверка ключа кэшируется. Если ключ скомпрометирован, считайте, что до минуты он ещё работает
Смена тарифаДоходит до проверки ключа примерно за минуту
Медленное чтение NATSЕсли подписчик не успевает читать, сервер копит до 64 МБ данных и разрывает соединение
Переподключения к NATSЧастые подключения одного пользователя ограничены: в среднем 12 в минуту, подряд — до 30

Чтобы не упираться в лимит чтения, подписывайтесь точечно, а не на всё сразу, и не делайте тяжёлую работу прямо в обработчике сообщения: складывайте сообщения в очередь и разбирайте отдельно.

Связанные статьи​