Данные бессрочных фьючерсов с 19 бирж: как запрос или как инструмент ассистента
Фандинг сейчас и за каждое сохранённое начисление, спреды между площадками с учётом реальной глубины стакана, календарь листингов. Один ключ для программ, одно подключение для Claude, ChatGPT и Cursor. Каждый ответ называет страницу, с которой взяты данные.
- Биржи
- 19
- Монеты со страницей фандинга
- 987
- Задержка данных на платных планах
- 0 s
curl https://arbitron.app/api/v1/funding/BTC \ -H "Authorization: Bearer $ARBITRON_KEY"
{
"data": {
"coin": "BTC",
"venue_count": 18,
"spread_pct": 0.016532,
"best_short_exchange": "Blofin",
"best_long_exchange": "GateIo",
"rates": [
{ "exchange": "Blofin", "symbol": "BTC-USDT", "rate_pct": 0.016532,
"interval_hours": 8, "next_funding_at": "2026-09-21T00:00:00Z" },
{ "exchange": "Htx", "symbol": "BTC-USDT", "rate_pct": 0.01,
"interval_hours": 8, "next_funding_at": "2026-09-21T00:00:00Z" },
{ "exchange": "Poloniex", "symbol": "BTC-USDT", "rate_pct": 0.01,
"interval_hours": 8, "next_funding_at": "2026-09-21T00:00:00Z" },
... остальных строк: 15
]
},
"meta": {
"as_of": "2026-09-20T17:41:31Z",
"delayed_seconds": 0,
"source": "arbitron.app",
"url": "https://arbitron.app/funding-rates/coin/btc?utm_source=api"
}
}
Две минуты от ключа до первого ответа
- Создайте ключ. В настройках, раздел «API-ключи». Ключ показывается один раз и начинается с
arb_live_. - Вызовите любой эндпоинт. Передайте ключ как bearer-токен. Ответ в верхней части этой страницы и есть то, что вернётся.
- Прочитайте заголовок RateLimit. Каждый ответ сообщает, сколько осталось от минуты и от месяца, так что клиент может сам держать темп и никогда не увидеть 429.
- Подключите ассистента. На вкладке MCP лежит блок конфигурации для Claude Desktop, Cursor и ChatGPT.
curl "https://arbitron.app/api/v1/spreads?size_usd=100&limit=3" \ -H "Authorization: Bearer $ARBITRON_KEY"
import os, requests
r = requests.get(
"https://arbitron.app/api/v1/spreads",
params={"size_usd": 100, "limit": 3},
headers={"Authorization": f"Bearer {os.environ['ARBITRON_KEY']}"},
timeout=10,
)
r.raise_for_status()
body = r.json()
print(body["meta"]["as_of"])
for row in body["data"]["spreads"]:
print(row["coin"], row["exchange_a"], row["exchange_b"], row["est_profit_pct"])
const res = await fetch(
"https://arbitron.app/api/v1/spreads?size_usd=100&limit=3",
{ headers: { Authorization: `Bearer ${process.env.ARBITRON_KEY}` } },
);
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, meta } = await res.json();
console.log(meta.as_of, data.spreads.map((r) => r.coin));
{
"mcpServers": {
"arbitron": {
"url": "https://arbitron.app/mcp",
"headers": { "Authorization": "Bearer arb_live_..." }
}
}
}
Восемь эндпоинтов, один конверт
JSON только на чтение по HTTPS на https://arbitron.app/api/v1. Проценты оканчиваются на _pct и заданы в процентах, время в UTC по ISO 8601, списки листаются курсором. Полный справочник параметров и схем генерируется из документа OpenAPI.
| Метод | Путь | Scope | Возвращает |
|---|---|---|---|
| GET | /api/v1/funding | funding:read | Текущий фандинг по каждой бирже и символу, по убыванию модуля ставки. Фильтр по монете или бирже. |
| GET | /api/v1/funding/{coin} | funding:read | Одна монета на всех биржах: каждая ставка, спред между максимальной и минимальной, и где сейчас выгоднее шорт, а где лонг. |
| GET | /api/v1/funding/history | history:read | История фандинга: одна годовая точка в день по каждой бирже или каждое начисление по одной бирже. Глубина зависит от плана. |
| GET | /api/v1/spreads | spreads:read | Исполнимые спреды между площадками из публичного сканера, посчитанные по реальной глубине стакана для ордера размером size_usd. |
| GET | /api/v1/listings | listings:read | Объявленные листинги и делистинги: что объявила биржа, когда вступает в силу и где само объявление. |
| GET | /api/v1/exchanges | — | Биржи: число отслеживаемых инструментов, максимальное плечо, комиссия тейкера и ссылки на спецификации и страницы фандинга. |
| GET | /api/v1/coins | — | Поиск тикера: q совпадает с началом тикера. У каждой монеты число бирж и объём за 24 часа. |
| GET | /api/v1/usage | usage:read | План этого ключа, окна месяца и минуты и что план включает. |
Каждый ответ упакован в конверт: data, затем meta с полями meta.as_of, meta.delayed_seconds, meta.url, meta.next_cursor.
Анонимный документ обнаружения перечисляет всё это в JSON: GET /api/v1 · /api/v1/openapi.json
Те же данные как инструменты ассистента
Восемь инструментов только на чтение поверх четырёх наборов данных, для Claude, ChatGPT, Cursor и любого другого MCP-клиента. Ассистент с подключением обращается к ним, когда вопрос о фандинге, спредах или листингах, и каждый результат заканчивается страницей для цитирования.
| Инструмент | Отвечает на |
|---|---|
| arbitron_get_funding_rates | Текущий фандинг по каждой бирже и символу, с фильтром по монете или бирже. |
| arbitron_get_coin_funding | Одна монета на всех биржах, с лучшей площадкой для шорта и лучшей для лонга. |
| arbitron_get_funding_history | История фандинга по дням или по начислениям, на глубину плана. |
| arbitron_get_spreads | Исполнимые спреды для заданного размера ордера, лучшие первыми. |
| arbitron_get_listings | Что листится или делистится в заданном окне, по биржам. |
| arbitron_get_exchanges | Список бирж со спецификациями контрактов и ссылками. |
| arbitron_get_usage | Остаток квоты этого подключения, чтобы ассистент мог объяснить лимит. |
- Адрес
- https://arbitron.app/mcp
- Транспорт
- Streamable HTTP без состояния: сессий нет, каждый вызов самостоятелен. Один вызов инструмента считается одним запросом в тех же квотах, что и REST API.
- Аутентификация
- API-ключ в заголовке bearer для клиентов со статическим заголовком, либо OAuth 2.1 с PKCE: ассистент входит под вашим аккаунтом Arbitron, а вы подтверждаете права на экране согласия.
- Цитирование
- Каждый результат несёт meta.url, страницу для людей с теми же цифрами. Именно её ассистент цитирует, и данные на ней те же.
Бесплатное демо, затем три размера одного продукта
Помесячно, оплата как у любого плана Arbitron. Квоты жёсткие: когда окно исчерпано, вы получаете 429, а не счёт. MCP-сервер входит в каждый уровень.
Демо
У каждого аккаунта. Форма данных, с задержкой.
- Запросов в месяц
- 3,000
- В минуту
- 20
- API-ключей
- 1
- Глубина истории
- 7 дней
- Задержка данных
- 15 мин
- Коммерческое использование
- Нет
- MCP-сервер
- Да
Developer
Популярный выборЖивой фандинг, спреды и листинги для своих скриптов и дашбордов.
- Запросов в месяц
- 100,000
- В минуту
- 120
- API-ключей
- 3
- Глубина истории
- 90 дней
- Задержка данных
- Без задержки
- Коммерческое использование
- Нет
- MCP-сервер
- Да
Pro
Глубокая история и коммерческая лицензия для продуктов, которые вы выпускаете.
- Запросов в месяц
- 500,000
- В минуту
- 300
- API-ключей
- 10
- Глубина истории
- 730 дней
- Задержка данных
- Без задержки
- Коммерческое использование
- Да
- MCP-сервер
- Да
Business
Весь архив, максимальные лимиты и ключи на всю команду.
- Запросов в месяц
- 2,000,000
- В минуту
- 600
- API-ключей
- 25
- Глубина истории
- Вся история
- Задержка данных
- Без задержки
- Коммерческое использование
- Да
- MCP-сервер
- Да
Prime включает Developer без доплаты, так что старший торговый план тоже открывает API. Цены
Данные демо нужно сопровождать указанием Arbitron и ссылкой на страницу, с которой они взяты.
Два окна, оба в каждом ответе
У каждого ключа есть окно минуты и окно месяца. Оба объявляются в каждом ответе в стандартных полях RateLimit-Policy и RateLimit, так что клиент может держать темп и ни разу не упереться в лимит.
- Когда окно исчерпано, приходит 429 с Retry-After в секундах и телом ошибки, называющим окно.
- Каждый ответ с данными несёт ETag. Верните его в If-None-Match, и на неизменившееся тело придёт 304, который возвращается в оба окна.
- Cache-Control равен private, max-age=15 для живых данных и max-age=300 для отложенных, по частоте обновления снимка за ними.
- Месяц обнуляется 1-го числа в 00:00 UTC. Перерасход не выставляется.
- Один запрос есть один запрос: история, спреды и фандинг стоят одинаково, а вызов инструмента MCP считается как вызов REST.
RateLimit-Policy: "minute";q=120;w=60, "month";q=100000;w=2592000 RateLimit: "minute";r=118;t=41, "month";r=99871;t=1209600
Retry-After: 19 RateLimit: "minute";r=0;t=19, "month";r=99870;t=1209581 { "type": "https://arbitron.app/developers/errors#rate-limited", "title": "Too many requests this minute", "status": 429, "detail": "The api-developer plan allows 120 requests per minute; the window resets in 19 s. Cache responses (they carry ETag) or upgrade." }
Ошибки, по которым можно ветвиться
Ошибки оформлены по RFC 9457: стабильный type, ведущий на строку этой таблицы, title, HTTP-статус, detail с тем, что исправить, id запроса в instance и suggestions там, где есть близкие совпадения.
HTTP/1.1 404 Not Found
Content-Type: application/problem+json
{
"type": "https://arbitron.app/developers/errors#unknown-coin",
"title": "Unknown coin",
"status": 404,
"detail": "No venue quotes a perpetual on 'ETHEREUM'. GET /api/v1/coins?q=ETHEREUM lists close matches.",
"instance": "0HN7Q2K3J9R4P:00000001",
"code": "unknown-coin",
"docs": "https://arbitron.app/developers",
"suggestions": ["ETH", "ETC", "ETHFI"]
}| Статус | Код | Что исправить |
|---|---|---|
| 400 | invalid-parameter | Значение параметра вне диапазона или не той формы. detail называет параметр и допустимые значения. |
| 401 | unauthenticated | Ключа нет, либо он с опечаткой, отозван, истёк или выведен ротацией. Передайте Authorization: Bearer с ключом из настроек, раздел «API-ключи». |
| 403 | scope-missing | Ключ создан без scope, который нужен этому эндпоинту; detail перечисляет его scope. Создайте ключ с нужным scope. |
| 403 | plan-limit | Запрос выходит за план: окно истории глубже, чем он включает, или страница больше, чем отдаёт демо. Сузьте запрос или перейдите на план выше. |
| 404 | unknown-coin | Ни одна биржа не котирует перп с таким тикером. В suggestions близкие совпадения, а GET /api/v1/coins?q= ищет. |
| 404 | unknown-exchange | Такой биржи API не обслуживает. В suggestions список бирж, его же отдаёт GET /api/v1/exchanges. |
| 404 | not-found | По этому пути под /api/v1 нет эндпоинта. GET /api/v1 перечисляет существующие. |
| 429 | rate-limited | Окно минуты исчерпано, либо с одного адреса пришло слишком много отклонённых ключей. Подождите Retry-After секунд или держите темп по заголовку RateLimit. |
| 429 | quota-exhausted | Запросы месяца израсходованы. Квота обнуляется 1-го числа в 00:00 UTC; у плана выше запросов больше. |
| 503 | snapshot-unavailable | Снимок за эндпоинтом ещё прогревается после перезапуска. Повторите через минуту. |
| 503 | api-disabled | API не включён на этом хосте. С вашей стороны менять нечего, это ошибка конфигурации с нашей. |
v1 и есть контракт
/api/v1 и есть контракт. Поля, эндпоинты, значения перечислений и необязательные параметры добавляются без смены версии. Удаление или переименование чего угодно, смена типа или значения по умолчанию означают v2, а v1 продолжает работать двенадцать месяцев после выхода v2.
Устаревший эндпоинт или поле объявляет об этом в ответе заголовками Deprecation и Sunset и ссылкой Link на запись в списке изменений с заменой. Версия MCP-сервера следует тому же номеру, а имена инструментов внутри мажорной версии не меняются.
Документ OpenAPI версионируется вместе с API; его диф входит в каждое описание релиза. /api/v1/openapi.json
Deprecation: @1789500000 Sunset: Mon, 20 Sep 2027 00:00:00 GMT Link: <https://arbitron.app/developers#versioning>; rel="deprecation"
Список изменений
- 2026-09-20
- Опубликован v1: фандинг, история фандинга, спреды, листинги, биржи, монеты и usage. MCP-сервер с семью инструментами, вход по ключу или OAuth.
Часто задаваемые вопросы
Есть ли бесплатный уровень?
Почему данные демо задержаны?
Можно ли использовать данные коммерчески?
Как хранятся ключи?
Как сменить ключ?
Нужен ли ключ ассистентам?
Считаются ли ответы 304 в квоту?
Что происходит при достижении лимита?
Начните с бесплатного ключа
Первый запрос занимает две минуты. В справочнике есть панель для пробных вызовов с вашим ключом.