EyesOnAssets Public API

Платный B2B-доступ по API-ключу к тем же данным, что видит пользователь на сайте: живой скринер (цена/изменение/объём по крипте, форексу и акциям) и модуль «Аналитика» (технический + фундаментальный скор от −100 до +100 по каждому активу). Никакого аккаунта на сайте заводить не нужно — только ключ.

REST / JSON Base URL: /api/v1/public Auth: заголовок X-API-Key

Аутентификация

Каждый запрос должен содержать заголовок X-API-Key с вашим ключом. Ключи выдаются вручную после согласования тарифа/договора — самостоятельной регистрации на сайте для этого API нет (см. раздел «Как получить доступ»).

Храните ключ в секрете. Никогда не встраивайте его в клиентский (браузерный/мобильный) код — только в серверную часть вашего приложения. Скомпрометированный ключ можно немедленно отозвать по вашему запросу.

Быстрый старт

# Проверить тариф, лимиты и остаток месячной квоты
curl -H "X-API-Key: eoa_live_ВАШ_КЛЮЧ" \
  https://ваш-домен/api/v1/public/usage
# Скор аналитики по всем активам крипторынка
curl -H "X-API-Key: eoa_live_ВАШ_КЛЮЧ" \
  https://ваш-домен/api/v1/public/analytics/crypto/list

Тарифы

ТарифЦенаРынкиRate limitКвота/мес
Starter $250/мес 1 на выбор (crypto / forex / stocks) 30 req/min 20 000
Business $500/мес Все три (бандл скринер + аналитика) 120 req/min 150 000
Enterprise по договору Все три + приоритетная поддержка 600 req/min без ограничения

Текущий тариф, ограничение по рынкам и договорной срок можно в любой момент проверить через GET /usage.

Лимиты и квота

Есть два независимых ограничения:

ТипЧто считаетЧто происходит при превышении
Rate limit Запросов в минуту, зависит от тарифа 429 Too Many Requests, повторите позже
Месячная квота Суммарно запросов за календарный месяц 429 Monthly quota exceeded — обновите тариф или дождитесь начала следующего месяца
Оба лимита применяются к ключу (точнее — к клиенту, если ключей несколько), а не к IP-адресу — можно безопасно ходить в API с нескольких серверов за NAT.

Справочник эндпоинтов

GET/api/v1/public/usage

Ваш текущий тариф, разрешённые рынки, лимиты и сколько запросов уже израсходовано в этом месяце. Не расходует месячную квоту дороже одного обычного запроса.

{
  "org_name": "Acme Trading LLC",
  "tier": "business",
  "status": "active",
  "allowed_markets": ["crypto", "forex", "stocks"],
  "rate_limit": "120/minute",
  "monthly_quota": 150000,
  "used_this_month": 4213,
  "contract_expires_at": null
}

GET/api/v1/public/screener/{market_type}/{exchange}/{instrument}

Живые данные скринера: цена, изменение %, объём по всем инструментам комбинации рынок/биржа/тип.

ПараметрТипОписание
market_typepathcrypto / forex / stocks
exchangepathbybit, binance, okx, moex, nasdaq и т.д. — зависит от рынка и региона развёртывания
instrumentpathspot, perpetual, futures, stock, major и т.д.
volume_min / volume_maxquery, опциональноФильтр по объёму
change_min / change_maxquery, опциональноФильтр по изменению %
# Пример
curl -H "X-API-Key: ..." \
  ".../api/v1/public/screener/crypto/bybit/spot?volume_min=1000000"

GET/api/v1/public/ohlcv/{market_type}/{exchange}/{symbol}/{timeframe}

Свечи OHLCV по конкретному символу.

ПараметрТипОписание
symbolpathНапример BTC_USDT или BTC/USDT
timeframepath1m, 5m, 15m, 1h, 4h, 1d и т.д.
limitquery, опциональноЧисло свечей, по умолчанию 200, максимум 1000

GET/api/v1/public/analytics/{market}/list

Скор аналитики по всем посчитанным активам рынка: вердикт, общий скор, цена, изменение, мини-график цены.

GET/api/v1/public/analytics/{market}/{symbol}

Полный отчёт по одному активу: все факторы (технические + фундаментальные) с весами и объяснениями, технический/фундаментальный/общий скор, текстовое резюме.

{
  "market": "crypto", "symbol": "BTC",
  "overall_score": 16, "verdict": "neutral",
  "factors": [
    { "name": "rsi", "value": "54.1", "sentiment": "neutral", "explanation": "RSI 54 — в норме" }
    // ...
  ]
}

GET/api/v1/public/analytics/top-setups

Топ-идеи по силе перевеса факторов прямо сейчас, а не разбор одного актива — отсортировано по |overall_score| по одному рынку или сразу по всем, доступным вашему тарифу.

ПараметрТипОписание
marketquery, опциональноcrypto/forex/stocks — не указан = все рынки тарифа
verdictquery, опциональноgrowth/decline — не указан = оба
limitquery, опциональноПо умолчанию 10, максимум 100

GET/api/v1/public/analytics/{market}/stats

Историческая эффективность вердикта на этом рынке: win rate и средняя доходность по горизонтам (1/5/21/30 дней), с 95% доверительным интервалом Уилсона. win_rate: null означает недостаточно данных ещё не показываем цифру, а не 0.

[
  { "verdict": "growth", "horizon_days": 21, "sample_size": 142,
    "is_significant": true, "win_rate": 0.61,
    "win_rate_ci_low": 0.54, "win_rate_ci_high": 0.68,
    "avg_return_pct": 3.2, "source": "backfill" }
]

GET/api/v1/public/analytics/{market}/{symbol}/history

Исторические снепшоты скора/вердикта по одному активу — для собственного бэктеста на вашей стороне.

ПараметрТипОписание
limitquery, опциональноПо умолчанию 90, максимум 1000 (новые сначала)

Webhooks — push вместо поллинга

Вместо того чтобы опрашивать /analytics/{market}/{symbol} по расписанию, можно подписаться на уведомление об изменении вердикта (growth ↔ decline ↔ neutral).

POST /api/v1/public/webhooks
{ "callback_url": "https://ваш-сервер/hook", "market": "crypto" }
// ответ содержит "secret" — показывается один раз, сохраните его

GET /api/v1/public/webhooks       // список ваших подписок
DELETE /api/v1/public/webhooks/{id} // отменить подписку

Каждая доставка — POST на ваш callback_url с заголовком X-Webhook-Signature (HMAC-SHA256 тела запроса на вашем секрете — проверяйте его, чтобы отличить нас от подделки). callback_url обязан быть https://. После 10 подряд неудачных доставок подписка автоматически отключается.

{
  "event": "verdict_changed", "market": "crypto", "symbol": "BTC",
  "old_verdict": "neutral", "new_verdict": "growth",
  "overall_score": 24, "timestamp": "2026-07-26T04:00:00+00:00"
}

Коды ошибок

КодПричина
400Неверный market_type (допустимо только crypto/forex/stocks)
401Отсутствует, неверный или отозванный ключ
403Клиент приостановлен/договор истёк, либо рынок не входит в ваш тариф
404Для этого символа ещё нет посчитанной аналитики
429Превышен rate limit или месячная квота
502Временная ошибка провайдера данных (биржи/поставщика котировок) — повторите запрос позже
503Сервис данных ещё не инициализирован (сразу после рестарта сервера)

Рынки и биржи

API покрывает крипту, форекс и акции (без облигаций — они пока не входят в бандл). Конкретный набор доступных бирж на комбинацию exchange/instrument зависит от региона развёртывания сервера; если не уверены, какие биржи доступны — уточните у нас при выдаче ключа или начните с crypto/bybit/spot, который доступен во всех регионах.

Как получить доступ

Доступ выдаётся вручную после согласования тарифа — напишите нам с описанием вашего кейса использования и ожидаемого объёма запросов, мы поможем подобрать тариф и пришлём ключ. Самостоятельной регистрации и мгновенной выдачи ключа на сайте сознательно нет — это защищает и вас (персональное сопровождение), и нас (контроль использования данных).