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, ключ перестаёт работать сам, отзывать его не нужно. Смена тарифа доходит до проверки ключа примерно за минуту.
Как получить ключ
- Откройте профиль: аватар в правом верхнем углу → «Профиль».
- Найдите карточку «API-ключи».
- Введите название ключа, например «бот на сервере», и нажмите «Выпустить ключ».
- Скопируйте ключ кнопкой «Скопировать» и нажмите «Я сохранил».
Ключ целиком показывается один раз — в момент выпуска. У нас хранится только его хэш, поэтому восстановить ключ нельзя. Потеряли — выпустите новый и отзовите старый.
Ключ выглядит так: 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 |
Чтобы не упираться в лимит чтения, подписывайтесь точечно, а не на всё сразу, и не делайте тяжёлую работу прямо в обработчике сообщения: складывайте сообщения в очередь и разбирайте отдельно.
Связанные статьи
- Личный кабинет — профиль, тариф и карточка API-ключей.
- Как выбрать тариф — что входит в Pro и Max.