API рыночных данных · v1

API рыночных данных, которым можно доверять

Market Oracle — REST и WebSocket API рыночных данных для торговых систем и AI-агентов: закрытые бары, проверенные индикаторы, микроструктура стакана, макро-контекст и режим рынка. Одним запросом. Решения принимаете вы — мы поставляем только факты.

Документация →
1запрос вместо 8–10
8таймфреймов с индикаторами
6торговых пар в API
≥70data_quality gate
BTCUSDT ГОТОВ онлайн
Цена 1m (закрытый бар)$81 735.63 +0.04%
RSI14 / ADX1456.3 / 28.8
ATR_PCT (1m)0.066%
Дисбаланс стакана0.04 · давление продавцов
H1 к EMA50H1 ниже EMA50
Фандинг0.0067%
Страх и жадность50 · нейтрально
Режим волатильностинизкая вола · диапазон
Качество данных
Оценка90
Живой GET /v1/context/BTCUSDT — бар, стакан, макро, режим
Принципы

Не советчик. Поставщик фактов.

Oracle не открывает сделки и не управляет позициями. Его задача — дать вашим алгоритмам корректные данные, на которых можно строить решения.

🎯

Сигнал только по закрытому бару

Торговые решения формируются исключительно по закрытому 1m-бару (closed: true). Никакого заглядывания в будущее — данные всегда point-in-time корректны.

🧮

Проверенная корректность

EMA, RSI, ATR, ADX(+DI), VWAP, Bollinger, OBV, MFI и CVD считаются на каждом нативном ТФ и покрыты тестами. Закрытый бар и индикаторы пишутся атомарно, состояние восстанавливается после сбоев.

🤖

Спроектирован для агентов

Один вызов GET /v1/context/{symbol} отдаёт всё для решения: бар, стакан, деривативы, макро и режим рынка. Машинно-читаемые форматы, явные лимиты, предсказуемые ошибки.

Возможности

Всё для торгового решения — в одном API

Context, quotes и история — только по этим символам. Свой тикер добавить нельзя; актуальный ready — в GET /v1/symbols.

BTCUSDTETHUSDTSOLUSDTBNBUSDTDOGEUSDTXRPUSDT
⚡

Context одним запросом

Главный endpoint для бота и AI-агента. Бар с индикаторами, тикер, live-стакан, trade_cost / cost_risk, live HTF, деривативы, макро, сверка котировок, режим рынка и data_quality — вместо 8–10 отдельных вызовов.

GET /v1/context/{symbol}

Единственный источник сигнала — закрытый бар (closed: true). Остальное — фильтры: tradable, макро-пауза, data_quality.score ≥ 70.

📊

Индикаторы на каждом ТФ

Один core на 1m и на нативных 5m/15m/30m/1h/4h/1d/1w. Decimal-строки; во время прогрева поле null, не ноль.

EMA20/50/200RSI14ATR14/50ADX+DIVWAPBB 20,2OBVMFI14CVDswings
🧱

Микроструктура

Закрытая минутная агрегация top-20: spread, imbalance, стены, pressure.

/v1/microstructure/{symbol}
🌍

Макро-контекст

Fear&Greed, dominance, stablecoins, DXY, 10Y yield.

/v1/macro
🔥

Деривативы

Funding, open interest, каскады ликвидаций.

/v1/derivatives/{symbol}
🧭

Режим рынка

Корреляция с BTC, realized vol, breadth рынка.

/v1/market-regime
🔗

Консенсус цены

Медиана mid по нескольким источникам с контролем расхождений — защита от «битого» тика перед входом. Символ — только из списка выше.

/v1/quotes/{symbol}
📡

WebSocket

bar_close + opt-in microstructure_close; REST для восстановления пропусков.

WS /v1/stream
🗓

Макро-календарь

Ближайшие события (FOMC, CPI) с уровнем влияния.

/v1/calendar
📚

История всех таймфреймов

Нативные свечи, не склейка минуток: 5m 60д, 15m 90д, 30m 120д, 1h ~9 мес, 4h 2г, 1d 3г, 1w 5л. WS закрывает только 1m.

/v1/history/{symbol}?interval=…
Как это работает

Шесть шагов от подключения до сигнала

Типовой сценарий для AI-агента или торгового бота.

Сначала API-ключ mo_… (кнопка «Получить ключ»). Дальше каждый запрос к /v1/* и WebSocket — заголовок Authorization: Bearer mo_…. Без ключа бары, context и stream недоступны. Публичный только GET /health.

GET /health

Проверить сервер

Убедиться, что status=ok и бары свежие.

GET /v1/me

Узнать тариф

Дневные лимиты, RPM, число WS и срок действия ключа — чтобы подобрать частоту запросов.

GET /v1/symbols

Выбрать пары

Только базовый набор (BTC, ETH, SOL, BNB, DOGE, XRP) и только ready=true, желательно history=full_day.

WS /v1/stream

Подписаться

Получать bar_close в реальном времени. Стакан — опционально через microstructure:true.

GET /v1/context

Снимок для решения

Перед входом: cost, HTF, quality. Вход только если tradable и score ≥ 70.

signal

Сформировать сигнал

Ровно один раз на закрытый бар, с дедупликацией по ключу symbol:ts.

Тарифы

Прозрачные лимиты. Без регистраций и кабинетов.

Получаете API-ключ — и работаете. Всё управление с одной страницы.

Free
0 ₽ / бессрочно
  • ✓2 000 запросов в день
  • ✓30 запросов в минуту
  • ✓Мин. пауза между запросами 2000 мс
  • ✓1 WebSocket-соединение
  • ✓Только пара BTCUSDT
Basic
4 990 ₽ / мес
  • ✓5 000 запросов в день
  • ✓60 запросов в минуту
  • ✓Мин. пауза между запросами 200 мс
  • ✓2 WebSocket-соединения
  • ✓WS bar_close не тратит дневной лимит
Pro
6 490 ₽ / мес
  • ✓8 000 запросов в день
  • ✓90 запросов в минуту
  • ✓Мин. пауза между запросами 150 мс
  • ✓3 WebSocket-соединения
  • ✓Максимальный клиентский тариф

Уже есть ключ?

Оплата в рублях: только российские карты МИР, Visa и Mastercard (банки РФ) и СБП. Карты иностранных банков не принимаются. Услуга электронная: API-ключ на e-mail. Условия, отказ и возврат — в лицензионном соглашении (публичная оферта).

Документация

Полная спецификация для интеграции

Мануал написан так, чтобы разработчик мог подключить Oracle без лишних вопросов. AI-агенту скормите Markdown-спеку — отдельная ссылка ниже.

📖
REST API referenceВсе endpoint'ы с примерами запросов и ответов, расшифровкой полей.
📡
WebSocket-протоколПодписка, события bar_close и microstructure_close, reconnect с backoff.
🧮
Форматы баров и индикаторовDecimal-строки для точности, семантика каждого индикатора.
⚠️
Лимиты и ошибкиТарифы, дневные лимиты, RPM, обработка 429 и key_expired.
Открыть документацию → Спека для агента (Markdown) llms.txt
oracle-client
# Python — только стандартная библиотека
import json, urllib.request

BASE = "https://api.market-oracle.pro"
KEY = "mo_…"

req = urllib.request.Request(BASE + "/v1/context/BTCUSDT",
    headers={"Authorization": f"Bearer {KEY}"})
with urllib.request.urlopen(req, timeout=15) as r:
    ctx = json.load(r)

# Сигнал — только по закрытому бару
if (ctx["bar"]["closed"] and ctx["data_quality"]["score"] >= 70
        and ctx["cost_risk"]["tradable"]):
    decide(ctx["bar"])
GET /v1/context/BTCUSDTпример ответа (статический)
{
    "symbol": "BTCUSDT",
    "market": "spot",
    "interval": "1m",
    "ts": 1784179275000,
    "context_scope": "live_snapshot",
    "historical_safe": false,
    "bar": {
        "ts": 1784179200000,
        "open": "65000.00",
        "high": "65080.00",
        "low": "64950.00",
        "close": "65040.00",
        "volume": "123.45",
        "quote_volume": "8023456.78",
        "trades": 4120,
        "closed": true,
        "taker_buy_volume": "60.10",
        "indicators": {
            "ema20": "64910.12",
            "ema50": "64500.00",
            "ema200": "62000.00",
            "rsi14": "54.20",
            "atr14": "180.50",
            "vwap": "64980.00",
            "vol_sma20": "95.00",
            "adx14": "22.10",
            "plus_di14": "24.50",
            "minus_di14": "17.80",
            "di_side": "1",
            "obv": "1500000.00",
            "mfi14": "48.00",
            "cvd_delta": "-3.25",
            "ema50_slope_pct": "0.031000",
            "ema_slope_abs": "0.031000",
            "atr50": "210.00",
            "atr_ratio_14_50": "0.859524",
            "volume_usd": "8023456.78",
            "volume_rate": "8023456.78",
            "bb_mid": "64900.00",
            "bb_upper": "65200.00",
            "bb_lower": "64600.00",
            "bb_width": "0.009244",
            "body": "0.307692",
            "wick_balance": "0.153846",
            "close_pos": "0.692308",
            "candle_q": "0.261538",
            "range_ratio": "0.720222",
            "atr_pct": "0.277521",
            "last_swing_high": "65200.00",
            "last_swing_low": "64400.00"
        }
    },
    "ticker": {
        "ts": 1784179274000,
        "last": "65042.10",
        "bid": "65042.00",
        "ask": "65042.20",
        "open_24h": "64200.00",
        "high_24h": "65300.00",
        "low_24h": "63800.00",
        "volume_24h": "28000.50",
        "quote_volume_24h": "1800000000.00",
        "price_change_pct_24h": "1.25",
        "weighted_avg_24h": "64890.00"
    },
    "depth": {
        "ts": 1784179274000,
        "best_bid": "65042.00",
        "best_ask": "65042.20",
        "spread_pct": "0.000307",
        "bid_volume": "55.00",
        "ask_volume": "45.00",
        "imbalance": "0.5500",
        "bid_wall": {
            "price": "65000.00",
            "qty": "12.50",
            "distance_pct": "-0.064727"
        },
        "ask_wall": {
            "price": "65100.00",
            "qty": "8.00",
            "distance_pct": "0.089019"
        },
        "levels": 20
    },
    "bar_count": 30240,
    "ready": true,
    "history": "full_day",
    "lag_sec": 75,
    "indicators_ready": true,
    "data_quality": {
        "score": 92,
        "flags": []
    },
    "freshness": {
        "ticker": {
            "available": true,
            "fresh": true,
            "age_sec": 1,
            "max_age_sec": 30
        },
        "depth": {
            "available": true,
            "fresh": true,
            "age_sec": 1,
            "max_age_sec": 10
        },
        "macro_snapshot": {
            "available": true,
            "fresh": true,
            "age_sec": 900,
            "max_age_sec": 7200
        },
        "market_regime": {
            "available": true,
            "fresh": true,
            "age_sec": 900,
            "max_age_sec": 7200
        }
    },
    "macro_event_soon": false,
    "next_macro_event": {
        "ts": 1784246400000,
        "title": "CPI m/m",
        "country": "USD",
        "impact": "high"
    },
    "derivatives": {
        "snapshot": {
            "ts": 1784179270000,
            "mark_ts": 1784179270000,
            "mark_price": "65045.10",
            "index_price": "65040.00",
            "funding_rate": "0.000100",
            "next_funding_ts": 1784196000000,
            "open_interest": "85000.50",
            "open_interest_ts": 1784179260000
        },
        "funding_7d": {
            "samples": 21,
            "from_ts": 1783574475000,
            "to_ts": 1784160000000,
            "funding_ma_7d": "0.000080",
            "funding_std_7d": "0.000050"
        },
        "stale": false
    },
    "liquidations": {
        "windows": {
            "five_min": {
                "window_sec": 300,
                "from_ts": 1784178975000,
                "to_ts": 1784179275000,
                "count": 3,
                "total_long_qty": "1.80",
                "total_short_qty": "0.60",
                "total_long_value": "120000.00",
                "total_short_value": "40000.00"
            },
            "one_hour": {
                "window_sec": 3600,
                "from_ts": 1784175675000,
                "to_ts": 1784179275000,
                "count": 40,
                "total_long_qty": "14.00",
                "total_short_qty": "8.00",
                "total_long_value": "900000.00",
                "total_short_value": "500000.00"
            }
        }
    },
    "macro_snapshot": {
        "ts": 1784178375000,
        "fear_greed": {
            "ts": 1784073600000,
            "value": 25,
            "classification": "Extreme Fear"
        },
        "fear_greed_updated_ts": 1784178375000,
        "btc_dominance_pct": "56.27",
        "eth_dominance_pct": "12.10",
        "total_market_cap_usd": "2400000000000.00",
        "total_volume_24h_usd": "90000000000.00",
        "global_updated_ts": 1784178375000,
        "stablecoin_total_usd": "300000000000.00",
        "usdt_supply_usd": "110000000000.00",
        "usdc_supply_usd": "34000000000.00",
        "stablecoins_updated_ts": 1784178375000,
        "usd_index": "120.50",
        "usd_index_ts": 1783987200000,
        "us_10y_yield_pct": "4.62",
        "us_10y_ts": 1783987200000
    },
    "cross_exchange": {
        "symbol": "BTCUSDT",
        "ts": 1784179270000,
        "consensus_mid": "65052.765",
        "fresh_venues": 3,
        "divergence_warning": false,
        "venues": [
            {
                "id": "v1",
                "quote": {
                    "bid": "65052.76",
                    "ask": "65052.77",
                    "bid_qty": "1.20",
                    "ask_qty": "0.85",
                    "source_ts": 1784179269700,
                    "received_ts": 1784179270000
                },
                "mid": "65052.765",
                "divergence_bps": "0.0000",
                "age_ms": 0,
                "stale": false,
                "connected": true
            },
            {
                "id": "v2",
                "quote": {
                    "bid": "65051.90",
                    "ask": "65052.40",
                    "bid_qty": "0.90",
                    "ask_qty": "1.10",
                    "source_ts": 1784179269200,
                    "received_ts": 1784179269500
                },
                "mid": "65052.150",
                "divergence_bps": "0.9450",
                "age_ms": 500,
                "stale": false,
                "connected": true
            },
            {
                "id": "v3",
                "quote": {
                    "bid": "65053.10",
                    "ask": "65053.60",
                    "bid_qty": "0.70",
                    "ask_qty": "0.60",
                    "source_ts": 1784179268800,
                    "received_ts": 1784179269300
                },
                "mid": "65053.350",
                "divergence_bps": "0.8990",
                "age_ms": 700,
                "stale": false,
                "connected": true
            }
        ]
    },
    "market_regime": {
        "ts": 1784178375000,
        "interval": "1h",
        "lookback_days": 7,
        "benchmark": "BTCUSDT",
        "symbol_count": 2,
        "breadth_above_ema20_pct": 80,
        "breadth_above_ema50_pct": 60,
        "median_return_1h_pct": -0.05,
        "median_return_24h_pct": 1.2,
        "decoupling_count": 1,
        "symbols": [
            {
                "symbol": "BTCUSDT",
                "correlation_btc_7d": 1,
                "correlation_btc_24h": 1,
                "realized_volatility_24h_pct": 38.5,
                "realized_volatility_7d_pct": 42,
                "volatility_regime": "low_vol_range",
                "decoupling_detected": false,
                "return_1h_pct": -0.05,
                "return_24h_pct": 1.25,
                "above_ema20": true,
                "above_ema50": true
            },
            {
                "symbol": "ETHUSDT",
                "correlation_btc_7d": 0.85,
                "correlation_btc_24h": 0.4,
                "realized_volatility_24h_pct": 45,
                "realized_volatility_7d_pct": 48,
                "volatility_regime": "low_vol_range",
                "decoupling_detected": true,
                "return_1h_pct": -0.1,
                "return_24h_pct": 2.5,
                "above_ema20": true,
                "above_ema50": true
            }
        ]
    },
    "volatility_regime": "low_vol_range",
    "decoupling_detected": false,
    "trade_cost": {
        "source": "preset",
        "fee_buy": "0.001",
        "fee_sell": "0.001",
        "spread_bps": "2.0",
        "spread_from_depth": true,
        "slip_bps": "2.0",
        "half_spread": "0.0001",
        "c_spot": "0.0025",
        "funding_rate": "0.0001",
        "c_perp": "0.0026"
    },
    "cost_risk": {
        "atr_pct": "0.28",
        "d_sl_pct": "0.56",
        "c_r": "0.446429",
        "p_be": "0.482143",
        "tradable": true,
        "params": {
            "k_sl": "2.0",
            "rr": "2.0",
            "tradable_c_r_max": "0.45"
        }
    },
    "htf": {
        "m15": {
            "ts": 1784178300000,
            "open": "64980.00",
            "high": "65040.00",
            "low": "64920.00",
            "close": "65020.00",
            "volume": "1840.20",
            "quote_volume": "120351851.70",
            "trades": 61020,
            "closed": true,
            "taker_buy_volume": "980.00",
            "indicators": {
                "ema20": "64950.00",
                "ema50": "64500.00",
                "ema200": "62000.00",
                "rsi14": "54.20",
                "atr14": "180.50",
                "vwap": "64980.00",
                "vol_sma20": "95.00",
                "adx14": "24.10",
                "plus_di14": "24.50",
                "minus_di14": "17.80",
                "di_side": "1",
                "obv": "1500000.00",
                "mfi14": "48.00",
                "cvd_delta": "-3.25",
                "ema50_slope_pct": "0.031000",
                "ema_slope_abs": "0.031000",
                "atr50": "210.00",
                "atr_ratio_14_50": "0.859524",
                "volume_usd": "120351851.70",
                "volume_rate": "8023456.78",
                "bb_mid": "64900.00",
                "bb_upper": "65200.00",
                "bb_lower": "64600.00",
                "bb_width": "0.009244",
                "body": "0.307692",
                "wick_balance": "0.153846",
                "close_pos": "0.692308",
                "candle_q": "0.261538",
                "range_ratio": "0.720222",
                "atr_pct": "0.277521",
                "last_swing_high": "65200.00",
                "last_swing_low": "64400.00"
            }
        },
        "h1": {
            "ts": 1784174400000,
            "open": "64800.00",
            "high": "64920.00",
            "low": "64740.00",
            "close": "64880.00",
            "volume": "7420.00",
            "quote_volume": "481407406.80",
            "trades": 240000,
            "closed": true,
            "taker_buy_volume": "3900.00",
            "indicators": {
                "ema20": "64910.12",
                "ema50": "64500.00",
                "ema200": "62000.00",
                "rsi14": "54.20",
                "atr14": "180.50",
                "vwap": "64980.00",
                "vol_sma20": "95.00",
                "adx14": "25.40",
                "plus_di14": "24.50",
                "minus_di14": "17.80",
                "di_side": "1",
                "obv": "1500000.00",
                "mfi14": "48.00",
                "cvd_delta": "-3.25",
                "ema50_slope_pct": "0.031000",
                "ema_slope_abs": "0.031000",
                "atr50": "210.00",
                "atr_ratio_14_50": "0.859524",
                "volume_usd": "481407406.80",
                "volume_rate": "8023456.78",
                "bb_mid": "64900.00",
                "bb_upper": "65200.00",
                "bb_lower": "64600.00",
                "bb_width": "0.009244",
                "body": "0.307692",
                "wick_balance": "0.153846",
                "close_pos": "0.692308",
                "candle_q": "0.261538",
                "range_ratio": "0.720222",
                "atr_pct": "0.277521",
                "last_swing_high": "65200.00",
                "last_swing_low": "64400.00"
            }
        },
        "h4": {
            "ts": 1784160000000,
            "open": "64500.00",
            "high": "64700.00",
            "low": "64400.00",
            "close": "64620.00",
            "volume": "28000.00",
            "quote_volume": "1925629627.20",
            "trades": 900000,
            "closed": true,
            "taker_buy_volume": "14000.00",
            "indicators": {
                "ema20": "64410.00",
                "ema50": "64500.00",
                "ema200": "62000.00",
                "rsi14": "54.20",
                "atr14": "180.50",
                "vwap": "64980.00",
                "vol_sma20": "95.00",
                "adx14": "22.10",
                "plus_di14": "24.50",
                "minus_di14": "17.80",
                "di_side": "1",
                "obv": "1500000.00",
                "mfi14": "48.00",
                "cvd_delta": "-3.25",
                "ema50_slope_pct": "0.031000",
                "ema_slope_abs": "0.031000",
                "atr50": "210.00",
                "atr_ratio_14_50": "0.859524",
                "volume_usd": "1925629627.20",
                "volume_rate": "8023456.78",
                "bb_mid": "64900.00",
                "bb_upper": "65200.00",
                "bb_lower": "64600.00",
                "bb_width": "0.009244",
                "body": "0.307692",
                "wick_balance": "0.153846",
                "close_pos": "0.692308",
                "candle_q": "0.261538",
                "range_ratio": "0.720222",
                "atr_pct": "0.277521",
                "last_swing_high": "65200.00",
                "last_swing_low": "64400.00"
            }
        },
        "d1": {
            "ts": 1784073600000,
            "open": "63800.00",
            "high": "65300.00",
            "low": "63600.00",
            "close": "64200.00",
            "volume": "180000.00",
            "quote_volume": "11553777763.20",
            "trades": 5200000,
            "closed": true,
            "taker_buy_volume": "90000.00",
            "indicators": {
                "ema20": "64910.12",
                "ema50": "64500.00",
                "ema200": "61800.00",
                "rsi14": "54.20",
                "atr14": "180.50",
                "vwap": "64980.00",
                "vol_sma20": "95.00",
                "adx14": "22.10",
                "plus_di14": "24.50",
                "minus_di14": "17.80",
                "di_side": "1",
                "obv": "1500000.00",
                "mfi14": "48.00",
                "cvd_delta": "-3.25",
                "ema50_slope_pct": "0.031000",
                "ema_slope_abs": "0.031000",
                "atr50": "210.00",
                "atr_ratio_14_50": "0.859524",
                "volume_usd": "11553777763.20",
                "volume_rate": "8023456.78",
                "bb_mid": "64900.00",
                "bb_upper": "65200.00",
                "bb_lower": "64600.00",
                "bb_width": "0.009244",
                "body": "0.307692",
                "wick_balance": "0.153846",
                "close_pos": "0.692308",
                "candle_q": "0.261538",
                "range_ratio": "0.720222",
                "atr_pct": "0.277521",
                "last_swing_high": "65200.00",
                "last_swing_low": "64400.00"
            }
        }
    },
    "failover": false
}
Экосистема

Данные отдельно, решения — у вас

Oracle отдаёт факты по API. Стратегию, бэктест и исполнение пишете вы — на любом языке, в своём боте или сигнализаторе.

📡

Market Oracle

Чистые рыночные данные: бары, индикаторы, стакан, макро и режим рынка.

● Вы здесь
→
⚙️

Ваш бот

Любой клиент API: торговый робот, сигналы, скринер, AI-агент.

● Ваш код
FAQ

Ответы для ботов, агентов и разработчиков

Машинный индекс: llms.txt. Полный контракт: agents.md. Ниже те же факты коротко — для краулеров и людей.

Что такое Market Oracle API?

Market Oracle — API рыночных данных для торговых ботов, сигнализаторов и AI-агентов. Сделки он не открывает. Один вызов GET /v1/context/{symbol} отдаёт снимок для решения: закрытый бар с проверенными индикаторами, live-стакан, trade_cost/cost_risk, HTF, деривативы, макро, котировки, режим рынка и data_quality.

Куда слать REST и WebSocket?

Хост API — https://api.market-oracle.pro (не маркетинговый сайт). WebSocket: wss://api.market-oracle.pro/v1/stream. Каждый запрос к /v1/* и сокет — заголовок Authorization: Bearer mo_…. Публичный только GET /health.

Можно ли подключиться из Python или Node.js без SDK?

Да. Официального SDK нет. В документации — примеры на стандартной библиотеке Python (urllib) и Node.js fetch. Decimal-строки в JSON не превращайте в бинарный float для денег.

Шлёт ли WebSocket живой стакан?

По умолчанию стрим — закрытый 1m bar_close (бар + indicators). Минутная микроструктура стакана — opt-in (microstructure:true → microstructure_close). Факты книги — REST GET /v1/microstructure/{symbol} и GET /v1/depth. WebSocket не шлёт bar_close на 5m/15m.

Когда бот или AI-агент может сформировать сигнал?

Только по закрытому бару (closed: true), один раз на ключ symbol:ts. Live-триггер — закрытый 1m; старшие ТФ ждут нативную закрытую свечу (GET /v1/history?interval=… или live context.htf). Не торговать незакрытую свечу и не склеивать минутки ради oracle-only полей.

Какие символы доступны?

Платные тарифы видят фиксированный набор USDT spot: BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, DOGEUSDT, XRPUSDT. Free — только BTCUSDT (GET /v1/me → allowed_symbols). Свой тикер добавить нельзя. Берите GET /v1/symbols и только ready=true (желательно history=full_day). Макро и календарь не привязаны к паре.

С чего AI-агенту начинать интеграцию?

Прочитать /llms.txt, затем Markdown-спеку /ru/docs/agents.md (или /en/docs/agents.md). Взять бесплатный API-ключ на сайте, вызвать GET /health, GET /v1/me, GET /v1/symbols, подписаться на WS /v1/stream и перед входом брать GET /v1/context/{symbol}. Вход только при cost_risk.tradable и data_quality.score ≥ 70.

Можно ли оплатить иностранной картой?

Нет. Платные тарифы — только в рублях. Принимаются российские карты МИР, Visa и Mastercard (банки РФ) и СБП. Карты иностранных банков не принимаются. Тариф Free карту не требует.