← Доходности Robinhood

API и MCP

Публичные данные Robinhood Chain (4663). Доступ только для чтения, без ключа и кошелька. API и MCP используют сохранённые данные того же сборщика, что и сайт.

OpenAPI 3.1 · машиночитаемая схема · Источники и свежесть данных

API

GETРезультат
/api/v1/poolsПулы и рынки площадок
/api/v1/merklДополнительные награды Merkl и сроки
/api/v1/revertВыборка позиций Revert
/api/v1/pool?id=…Все поля конкретного пула, программы или позиции
/api/v1/history?id=…Последние 10 наблюдений, от старых к новым
/api/v1/sourcesПлощадки, количество пулов, покрытие и ошибки источников

Пример: стейблы и RWA с TVL от $10 000

curl --get 'https://robinhood.craby.fun/api/v1/pools' \
  --data-urlencode 'asset_types=stable,rwa' \
  --data-urlencode 'min_tvl=10000' \
  --data-urlencode 'min_apr=100' \
  --data-urlencode 'include_stale=false' \
  --data-urlencode 'sort=apr' \
  --data-urlencode 'order=desc' \
  --data-urlencode 'limit=10'

Открыть результат примера

Фильтры

Выгрузка всех записей

limit: 1–100, по умолчанию 25. Начните с offset=0. В следующих запросах сохраняйте фильтры, передавайте полученный snapshot_id и offset=next_offset. Завершите, когда next_offset=null. Снимок доступен 120 секунд, точный срок — snapshot_expires_at. При HTTP 409 начните выгрузку заново: не объединяйте страницы разных снимков.

API обновляет свой снимок не чаще раза в минуту. Сборщик работает независимо от запросов: основные источники каждые 5 минут, Merkl/Revert/Gecko/Fables — 15 минут, DefiLlama — час; при ошибках возможны повторы. Реальное время данных — data_at, состояние источника — fetched_at. Запрос к API не запускает сбор.

MCP

Адрес: https://robinhood.craby.fun/mcp
Транспорт: Streamable HTTP. Авторизация: не требуется.

Добавьте этот URL как удалённый MCP-сервер в поддерживающем приложении. Формат настроек зависит от клиента. Это адрес для MCP-клиента: обычное открытие GET в браузере возвращает 405; протокол использует POST. Сервер stateless, без отдельного SSE-потока и серверных уведомлений.

У методов поиска один необязательный аргумент filters с теми же именами фильтров, что у API:

{"filters":{"asset_types":"stable,rwa","min_tvl":10000,
"min_apr":100,"include_stale":false,"limit":10}}

Подтверждение токенов

asset_types сохраняет прежнюю классификацию. Для официального подтверждения каждого токена добавьте verified_assets_only=true. Выбор категорий — объединение: stable/rwa допускает stable+stable, RWA+RWA и RWA+stable; USDG не обязателен. Все токены должны подходить, полный состав обязателен. Проверка применяется до total, сортировки и страниц.

GET /api/v1/pools?asset_types=stable,rwa&verified_assets_only=true&limit=25
GET /api/v1/pools?verified_asset_types=equity,etf,stable&limit=25
{"filters":{"verified_asset_types":"equity,etf,stable","limit":25}}

verified_asset_types автоматически включает строгий режим: equity, etf, stable, rwa_unknown. Все токены должны принадлежать выбранному набору. rwa_unknown — подтверждённый RWA с неизвестным типом базового актива. Сейчас реестр Robinhood публикует ISIN, статус и множитель, но не тип базового актива: такие токены не проходят equity/etf. Отсутствие результата не означает отсутствие реальных акций в сети.

Каждый assets[].verification содержит: status (verified/inactive/unknown/stale/source_unavailable), category, asset_type, chain_id, address, issuer, source_url, source_id, last_success_at, source_updated_at, expires_at, stale, error, reason, asset_status, current_multiplier, stablecoin_form, underlying_asset. Идентификатор — сеть + точный контракт. Символ, название и логотип не служат доказательством. Для стейблов native/bridged/synthetic/wrapped — только при подтверждении официальными данными; неизвестный оригинал не достраивается.

Источники проверяются централизованно не чаще раза в час; попытки ограничены таймаутами, после ошибки повтор в следующем часовом интервале. Срок подтверждения — 24 часа. При сбое исходное last_success_at и данные сохраняются, status=source_unavailable исключается из строгого результата даже до истечения срока. source_updated_at=null, если время публикации не известно; last_success_at — время успешной нашей проверки. Для пагинации повторяйте фильтры и snapshot_id: доказательства и актуальность фиксируются в снимке, включая переход через срок годности; закреплённый снимок доступен 120 секунд.

Официальный реестр Robinhood проверяет deployments по chainId; USDG — официальная таблица контрактов Robinhood Chain. Адаптер Circle проверяет официальную таблицу USDC: пока Robinhood Chain там отсутствует, USDC остаётся unknown. Старый USDe из Merkl не считается официально подтверждённым. Другие стейблы, мосты и виды RWA без официального адаптера не подтверждаются.

pool_composition_verification: level=source_reported/incomplete, complete, source, source_url, onchain_verified=false, reason. Адреса берутся из API площадок/индексаторов (Fables — декодированные события); независимая каноническая проверка принадлежности пулу не выполнена. Подлинность токена не гарантирует цену $1, безопасность пула/протокола, возможность торговли или доходность.

Как понимать данные

Пулы с TVL ниже $100 или неизвестным TVL не сохраняются и не выдаются API. min_tvl=0 не отменяет этот порог. При падении ниже порога пул и его история удаляются; при росте он обнаруживается заново. Merkl и Revert не ограничены этим правилом.

Часовые поля: volume_1h, fees_1h, apr_1h. APR за час = fees_1h / TVL × 24 × 365 × 100%, годовая экстраполяция. hourly_window_kind: completed — последний завершённый час UP; rolling — последнее часовое окно источника. Границы completed указаны в hourly_window_start/end; для rolling точное время не опубликовано. fees_1h_estimated отмечает оценку, hourly_at — время данных / получения. Неизвестные значения — null, не суточные данные / 24. Сортировка: volume_1h, fees_1h, apr_1h.

Все LP: основная доходность — валовые комиссии за 24 часа / TVL × 365 × 100%, до удержаний протокола и без наград. Прежние ставки не смешиваются с новой историей. fees_estimated отмечает оценку комиссий. Morpho — кредитование: swap APR неприменим, исходная APY отдельно в source_apr.

Ошибки и ограничения

400 — неверные параметры; 404 — ID не найден; 409 — снимок истёк; 429 — слишком много одновременных запросов; 503 — временная недоступность. Ошибки API имеют вид {"error":{"code":"…","message":"…"}}. До 8 одновременных запросов API/MCP; тело MCP-запроса до 64 КБ. Не запускайте частый опрос: сборщик обновляется раз в несколько минут.

Прежние /api/data, /api/health и /api/history?id=… сохранены для сайта. Новым интеграциям лучше использовать версию v1.