Ask Claude or ChatGPT about funding, spreads and your own trades
Paste one address into your assistant and sign in. It can then read funding rates and spreads on every exchange Arbitron supports, your own strategies, trades and PnL, and the knowledge base. It only reads, and each answer links to the page its numbers came from.
https://arbitron.app/mcp
Copy this address and add it to your assistant as a connector. Then sign in to Arbitron and click "Allow".
Works with
Claude
- ChatGPT
- Cursor
VS Code
Where am I paid most to be short BTC right now, and where is a long cheapest?
arbitron_get_coin_funding(coin="BTC")
Blofin pays shorts the most right now, at +0.016961% per funding interval. The cheapest long is on Bitget, at −0.009%. Between the two that is a spread of 0.025961%.
↗ arbitron.app/funding-rates/coin/btc{ "data": { "coin": "BTC", "venue_count": 18, "spread_pct": 0.025961, "best_short_exchange": "Blofin", "best_long_exchange": "Bitget", "rates": [ { "exchange": "Blofin", "symbol": "BTC-USDT", "rate_pct": 0.016961, "interval_hours": 8, "next_funding_at": "2026-11-05T00:00:00Z" }, { "exchange": "Aster", "symbol": "BTC-USDT", "rate_pct": 0.01, "interval_hours": 8, "next_funding_at": "2026-11-05T00:00:00Z" }, { "exchange": "Poloniex", "symbol": "BTC-USDT", "rate_pct": 0.009, "interval_hours": 8, "next_funding_at": "2026-11-05T00:00:00Z" }, ... 15 more rows ] }, "meta": { "as_of": "2026-11-04T20:16:28Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/funding-rates/coin/btc?utm_source=api" } }
- 28
- MCP tools
- 19
- Venues
- 1,010
- Coins with a funding page
- 19
- Endpoints
Ask in your own words
You never name a tool: the assistant picks one. The tools cover the market, your account and the knowledge base, and work in Claude, ChatGPT, Cursor or any other MCP client.
Market
- What's the funding on BTC across exchanges right now?
- Find the best spread trade for $500 a leg and give me the link to set it up.
- What's listing on futures in the next few days?
When it finds a trade, it can give you a link to the strategy form, already filled in. Nothing is created until you confirm the form.
- arbitron_search_coins
- arbitron_get_funding_rates
- arbitron_get_coin_funding
- arbitron_get_funding_history
- arbitron_get_spreads
- arbitron_get_spread_backtest
- arbitron_get_strategy_link
- arbitron_get_listings
- arbitron_get_exchanges
- arbitron_get_usage
Your account
- Why isn't my ETH strategy trading?
- Compare my PnL this month with last month.
- Show my balances and how close I am to liquidation.
Your account opens to the assistant only after you sign in with Arbitron and allow it. An API key pasted into an assistant never reads it.
- arbitron_get_my_account
- arbitron_get_my_cards
- arbitron_get_my_card
- arbitron_get_my_card_diagnosis
- arbitron_get_my_trades
- arbitron_get_my_pnl
- arbitron_get_my_balances
- arbitron_get_my_balance_history
- arbitron_get_my_exchange_accounts
- arbitron_get_my_leaderboard
- arbitron_get_my_subscription
Learning
- How does the close spread work?
- Which permissions should my exchange API key have?
- arbitron_search_docs
- arbitron_read_doc
- It only reads, so it can't place an order or change a strategy.
- It never sees your exchange API keys or secrets.
- On a consent screen you approve what it may read, and you can disconnect it at any time.
Connect a client
Chat apps sign in with your Arbitron account, so there is no key to paste. Editors and agents use the same address and sign in the same way, or take an API key in a header, which reads market data only.
-
Free, Pro and Max. In "Connectors", add a custom connector and paste the address.
ChatGPT
Open ChatGPTPlus or Pro, with Developer mode on. Create an app, paste the address and choose OAuth.
Cursor
Open in CursorAdds Arbitron to the editor. Confirm the install there, then sign in when it asks.
-
Adds Arbitron to the editor. Confirm the install there, then sign in when it asks.
claude mcp add --transport http arbitron https://arbitron.app/mcp
{ "mcpServers": { "arbitron": { "url": "https://arbitron.app/mcp", "headers": { "Authorization": "Bearer arb_live_..." } } } }
url: https://arbitron.app/mcp transport: streamable-http auth: oauth2.1+pkce | bearer arb_live_...
Claude Desktop and Cursor take this block as is. ChatGPT and Claude on the web sign in through OAuth instead and need no key, and only that sign-in can read your account.
- Transport
- Streamable HTTP
- Streamable HTTP, stateless: no session to keep, every call stands alone. One tool call counts as one request against the same quotas as the REST API.
- Authentication
- OAuth 2.1 · API key
- An API key as a bearer header for clients that take a static header, or OAuth 2.1 with PKCE: the assistant signs in with your Arbitron account and you approve the scopes on a consent screen.
- Citation
- meta.url
- Every result carries meta.url, the human page for the same numbers. That page is what the assistant cites, and it is the same data.
Two minutes from a key to a response
Your own scripts read the same market data with a key sent as a bearer token, and every account comes with a free one. A key reads your account only if you create it with the account:read scope.
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, ) for row in r.json()["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}` } }, ); const { data, meta } = await res.json(); console.log(meta.as_of, data.spreads.map((r) => r.coin));
Every endpoint, one envelope
Read-only JSON over HTTPS at https://arbitron.app/api/v1. Percentages end in _pct and are percent values, timestamps are UTC ISO 8601, lists page with a cursor. The full parameter and schema reference is generated from the OpenAPI document.
The venues, with tracked instrument counts, maximum leverage, taker fee and links to their specs and funding pages.
curl "https://arbitron.app/api/v1/exchanges?trading_enabled=true" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "exchange": "Binance", "name": "Binance", "icon_url": "https://arbitron.app/images/exchanges/binance.svg", "tracked_instruments": 512, "max_leverage": 125, "taker_fee_pct": 0.05, "trading_enabled": true, "has_spot": true, "fee_url": "https://www.binance.com/en/fee/futureFee", "specs_url": "https://arbitron.app/exchanges/binance", "funding_url": "https://arbitron.app/funding-rates/binance" } ], "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/exchanges?utm_source=api", "count": 1, "total": 19 } }
Ticker lookup: q matches the start of a ticker. Each coin carries its venue count and 24h volume.
curl "https://arbitron.app/api/v1/coins?q=PE" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "coin": "PEPE", "venue_count": 6, "exchanges": ["Binance", "BingX", "Bybit", "GateIo", "Mexc", "Okx"], "volume_24h_usdt": 20313414258, "funding_url": "https://arbitron.app/funding-rates/coin/pepe?utm_source=api" } ], "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/funding-rates/coins?utm_source=api", "count": 1, "total": 654 } }
Announced listings and delistings: what each venue announced, when it takes effect and where the announcement is.
curl "https://arbitron.app/api/v1/listings?days_ahead=7" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "exchange": "BingX", "symbol": "RCAT-USDT", "coin": "RCAT", "kind": "delisting", "effective_at": "2026-09-22T02:00:00Z", "source": "announcement", "announcement_url": "https://bingx.com/en/support/notice-center/", "detected_at": "2026-09-19T08:12:44Z" } ], "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/listings?utm_source=api", "count": 1, "total": 19 } }
Current funding rate on every venue and symbol, sorted by absolute rate. Filter by coin or venue.
curl "https://arbitron.app/api/v1/funding?sort=abs_rate_desc&limit=2" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "exchange": "Binance", "symbol": "BTC-USDT", "coin": "BTC", "is_inverse": false, "rate_pct": 0.0100, "apr_pct": 10.95, "sum_7d_pct": 0.21, "sum_30d_pct": 0.84, "interval_hours": 8, "next_funding_at": "2026-09-21T16:00:00Z", "volume_24h_usdt": 3498540070 }, … 1 more ], "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/funding-rates?utm_source=api", "count": 2, "total": 4213, "next_cursor": "Mg" } }
One coin across venues: every rate, the spread between highest and lowest, and which venue pays a short or a long best right now.
curl "https://arbitron.app/api/v1/funding/BTC" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "coin": "BTC", "venue_count": 18, "spread_pct": 0.0176, "highest": { "exchange": "Mexc", "symbol": "BTC-USDT", "rate_pct": 0.0150 }, "lowest": { "exchange": "Hyperliquid", "symbol": "BTC-USDT", "rate_pct": -0.0026 }, "best_short_exchange": "Mexc", "best_long_exchange": "Hyperliquid", "total_volume_24h_usdt": 41230000000, "inverse_venues": ["Blofin", "Bitget"], "rates": [ { "exchange": "Mexc", "symbol": "BTC-USDT", "coin": "BTC", "is_inverse": false, "rate_pct": 0.0150, "apr_pct": 16.4, "sum_7d_pct": 0.31, "sum_30d_pct": 1.2, "interval_hours": 8, "next_funding_at": "2026-09-21T16:00:00Z", "volume_24h_usdt": 812000000 } ], "strategy_url": "https://arbitron.app/dashboard?symbol=BTC-USDT&exA=Hyperliquid&exB=Mexc&funding_dir=2&utm_source=api" }, "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/funding-rates/coin/btc?utm_source=api", "count": 18, "total": 18 } }
Funding history, one annualised point per day for every venue or every settlement print for one venue. Depth depends on the plan.
curl "https://arbitron.app/api/v1/funding/history?coin=ETH&days=7" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "coin": "ETH", "resolution": "1d", "from": "2026-09-14T00:00:00Z", "to": "2026-09-21T00:00:00Z", "series": [ { "exchange": "Binance", "symbol": "ETH-USDT", "daily": [ { "day": "2026-09-14", "apr_pct": 9.12 }, … 2 more ] } ] }, "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/funding-rates/coin/eth?utm_source=api", "count": 1, "total": 1 } }
The spread between two venues right now, from the engine's last print: both directions, bid and ask on each leg.
curl "https://arbitron.app/api/v1/spreads?coin=SOL&limit=1" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "symbol": "SOL-USDT", "coin": "SOL", "exchange_a": "Binance", "exchange_b": "Bybit", "spread_pct": 0.4132, "direction": "short_a_long_b", "long_a_short_b_pct": -0.5210, "short_a_long_b_pct": 0.4132, "bid_a": 142.31, "ask_a": 142.32, "bid_b": 141.72, "ask_b": 141.73, "volume_a_usdt": 512000000, "volume_b_usdt": 388000000, "funding_rate_a_pct": 0.0100, "funding_rate_b_pct": 0.0056, "funding_interval_hours_a": 8, "funding_interval_hours_b": 8, "next_funding_at_a": "2026-09-21T16:00:00Z", "next_funding_at_b": "2026-09-21T16:00:00Z", "strength": 3, "updated_at": "2026-09-21T12:00:01Z" } ], "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/signals?utm_source=api", "count": 1, "total": 2493, "next_cursor": "MQ" } }
The scanner's backtested spreads: how often a spread paid over the window, priced against real order-book depth for an order of size_usd.
curl "https://arbitron.app/api/v1/spreads/backtest?size_usd=100&limit=1" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "size_usd": 100, "withheld_top": 0, "spreads": [ { "symbol": "ENA-USDT", "coin": "ENA", "exchange_a": "BingX", "exchange_b": "Lighter", "est_profit_pct": 3.9783, "avg_profit_pct": 1.2140, "fee_pct_cycle": 0.1400, "spread_range_pct": 6.20, "cycles": 75, "confidence": 69, "volume_a_usdt": 21000000, "volume_b_usdt": 9800000, "last_cycle_at": "2026-09-21T11:41:00Z", "strategy_url": "https://arbitron.app/dashboard?symbol=ENA-USDT&exA=BingX&exB=Lighter&utm_source=api" } ] }, "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/arbitrage-scanner?utm_source=api", "count": 1, "total": 58, "next_cursor": "MQ" } }
Plan, cards by status, today's PnL, equity and connected exchanges.
curl "https://arbitron.app/api/v1/me" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "plan": { "name": "Trader", "status": "active", "expires_at": "2026-10-18T00:00:00Z", "days_remaining": 24 }, "cards": { "running": 4, "open": 2, "error": 0, "closed": 17 }, "today": { "since": "2026-09-23T21:00:00Z", "net_pnl_usd": 21.84, "fees_usd": 7.12, "funding_usd": 1.05, "rebate_usd": 0.62, "volume_usd": 11840, "cycles": 9 }, "equity_usd": 12480.55, "equity_as_of": "2026-09-24T11:59:24Z", "exchange_accounts": 3, "exchanges": ["Binance", "Bybit", "Gate"] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/dashboard" } }
Your trading cards with settings, status and PnL.
curl "https://arbitron.app/api/v1/me/cards?status=running" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "card_ref": "card_k3xq7m2abc9d", "name": "SOL Binance/Bybit", "symbol": "SOL-USDT", "mode": "classic", "status": "running", "exiting": false, "exchange_a": "Binance", "exchange_b": "Bybit", "account_a": "Main", "account_b": "Main", "trading_legs": "a+b", "direction": "both", "market_type": "linear", "open_spread_pct": 0.35, "close_spread_pct": 0.10, "order_size": 2, "order_size_unit": "coin", "max_orders": 5, "orders_filled": 2, "max_position_usd": 1500, "leverage_a": 3, "leverage_b": 3, "hold_mode": false, "auto_spread": true, "copy_of_lead": false, "net_pnl_usd": 184.62, "session_net_pnl_usd": 12.40, "session_started_at": "2026-09-24T03:00:04Z", "today_net_pnl_usd": 6.15, "last_fill_at": "2026-09-24T11:46:04Z", "created_at": "2026-09-03T12:00:04Z", "updated_at": "2026-09-24T11:46:04Z" } ], "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/dashboard", "count": 1, "total": 6 } }
One card in detail: risk limits, session, positions, recent trades.
curl "https://arbitron.app/api/v1/me/cards/card_k3xq7m2abc9d" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "card": { "card_ref": "card_k3xq7m2abc9d", "name": "SOL Binance/Bybit", "symbol": "SOL-USDT", "mode": "classic", "status": "running", "exiting": false, "exchange_a": "Binance", "exchange_b": "Bybit", "account_a": "Main", "account_b": "Main", "trading_legs": "a+b", "direction": "both", "market_type": "linear", "open_spread_pct": 0.35, "close_spread_pct": 0.10, "order_size": 2, "order_size_unit": "coin", "max_orders": 5, "orders_filled": 2, "max_position_usd": 1500, "leverage_a": 3, "leverage_b": 3, "hold_mode": false, "auto_spread": true, "copy_of_lead": false, "net_pnl_usd": 184.62, "session_net_pnl_usd": 12.40, "session_started_at": "2026-09-24T03:00:04Z", "today_net_pnl_usd": 6.15, "last_fill_at": "2026-09-24T11:46:04Z", "created_at": "2026-09-03T12:00:04Z", "updated_at": "2026-09-24T11:46:04Z" }, "risk": { "force_stop_usd": 60, "exit_mode_on_loss_usd": 25, "liquidation_protection": true, "liquidation_protection_pct": 20, "order_pricing_a": "market", "order_pricing_b": "protected_ioc", "price_band_pct_a": 1.0, "price_band_pct_b": 0.5, "exit_on_loss_from_peak": true, "session_drawdown_usd": 4.80 }, "session": { "fees_usd": 3.10, "funding_usd": 0.42, "volume_usd": 6820, "cycles": 11, "fee_share_of_gross_pct": 18.5, "unwinds": 0 }, "positions": [ { "exchange": "Binance", "account": "Main", "side": "Long", "quantity": "4", "entry_price": "141.92", "unrealized_pnl_usd": "1.64", "leverage": 3, "liquidation_price": "96.40" } ], "positions_as_of": "2026-09-24T11:59:52Z", "recent_trades": [ { "time": "2026-09-24T11:46:04Z", "action": "close", "net_pnl_usd": 0.96, "fees_usd": 0.28, "expected_spread_pct": 0.38, "leg_a": { "exchange": "Binance", "side": "Buy", "price": 142.31, "quantity": 2, "notional_usd": 284.62, "fee_usd": 0.14, "exchange_order_id": "5823104471" }, "leg_b": { "exchange": "Bybit", "side": "Sell", "price": 142.85, "quantity": 2, "notional_usd": 285.70, "fee_usd": 0.14, "exchange_order_id": "a3f1c9e2-51" } } ] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/dashboard" } }
Executed trades by card, up to 31 days per call.
curl "https://arbitron.app/api/v1/me/trades?pairs_per_card=5" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "from": "2026-09-17T12:00:04Z", "to": "2026-09-24T12:00:04Z", "net_pnl_usd": 96.20, "fees_usd": 38.45, "rebate_usd": 3.10, "volume_usd": 64200, "fills": 212, "pairs_truncated": false, "cards": [ { "card_ref": "card_k3xq7m2abc9d", "name": "Binance / Bybit · SOL-USDT", "status": "running", "net_pnl_usd": 41.30, "profit_pct": 2.75, "fees_usd": 12.60, "funding_usd": 0.84, "fills": 88, "pairs_total": 44, "pairs": [ { "time": "2026-09-24T11:46:04Z", "action": "close", "net_pnl_usd": 0.96, "fees_usd": 0.28, "expected_spread_pct": 0.38, "leg_a": { "exchange": "Binance", "side": "Buy", "price": 142.31, "quantity": 2, "notional_usd": 284.62, "fee_usd": 0.14, "exchange_order_id": "5823104471" }, "leg_b": { "exchange": "Bybit", "side": "Sell", "price": 142.85, "quantity": 2, "notional_usd": 285.70, "fee_usd": 0.14, "exchange_order_id": "a3f1c9e2-51" } } ] } ] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/trade-history", "count": 1 } }
Realized PnL by day for a month or by month for a year.
curl "https://arbitron.app/api/v1/me/pnl?year=2026&month=9" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "year": 2026, "month": 9, "timezone": "Europe/Berlin", "total_pnl_usd": 412.60, "total_volume_usd": 318400, "periods": [ { "period": "2026-09-22", "pnl_usd": 38.10, "fills": 64, "volume_usd": 29800 }, … 1 more ] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/trade-history" } }
Equity, currencies and open positions on each exchange account.
curl "https://arbitron.app/api/v1/me/balances" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "total_equity_usd": 12480.55, "total_unrealized_pnl_usd": 18.20, "accounts": [ { "exchange": "Binance", "account": "Main", "equity_usd": 6240.10, "unrealized_pnl_usd": 11.30, "margin_ratio_pct": 7.85, "as_of": "2026-09-24T11:59:24Z", "currencies": [ { "currency": "USDT", "total": "6228.80", "available": "5104.22", "usd_value": 6228.80 } ], "dust_usd": 0.42, "positions": [ { "symbol": "SOL-USDT", "side": "Long", "quantity": "4", "entry_price": "141.92", "mark_price": "142.20", "unrealized_pnl_usd": "1.12", "leverage": 3, "liquidation_price": "96.40" } ] } ] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/portfolio", "count": 1 } }
Daily equity, deposits and withdrawals, up to 180 days.
curl "https://arbitron.app/api/v1/me/balance-history?days=30" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "from": "2026-08-25T12:00:04Z", "to": "2026-09-24T12:00:04Z", "accounts": [ { "exchange": "Binance", "account": "Main", "start_equity_usd": 5800, "end_equity_usd": 6240.10, "change_usd": 440.10, "daily": [ { "date": "2026-09-22", "equity_usd": 6190.40 }, … 1 more ] } ], "movements": [ { "time": "2026-09-12T12:00:04Z", "exchange": "Binance", "account": "Main", "kind": "deposit", "asset": "USDT", "amount": 500, "amount_usd": 500 } ], "movements_total": 1 }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/portfolio" } }
Connected exchange accounts and their settings. Never the keys.
curl "https://arbitron.app/api/v1/me/exchange-accounts" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": [ { "exchange": "Binance", "account": "Main", "active": true, "default_for_exchange": true, "taker_fee_pct": 0.05, "default_leverage": 3, "order_pricing": "market", "connected_at": "2026-07-26T12:00:04Z" } ], "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/exchange-keys", "count": 1 } }
Your rank for a period and the top 10, other traders by rank only.
curl "https://arbitron.app/api/v1/me/leaderboard?period=this_week" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "period": "this_week", "my_rank": 14, "me": { "rank": 14, "trader": "you", "net_pnl_usd": 96.20, "profit_pct": 1.9, "win_rate_pct": 64.5, "fills": 212, "profitable_week_streak": 3 }, "top": [ { "rank": 1, "trader": "trader #1", "net_pnl_usd": 1840.00, "profit_pct": 6.2, "win_rate_pct": 71.0, "fills": 1904, "profitable_week_streak": 9 } ] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/leaderboard" } }
Your plan, its expiry and the last 20 payments.
curl "https://arbitron.app/api/v1/me/subscription" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "plan": { "name": "Trader", "status": "active", "expires_at": "2026-10-18T00:00:00Z", "days_remaining": 24 }, "payments": [ { "created_at": "2026-09-18T09:12:00Z", "status": "finished", "kind": "subscription", "price_usd": 99, "paid_amount": 99.02, "pay_currency": "usdttrc20", "discount_pct": 0 } ] }, "meta": { "as_of": "2026-09-24T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/billing" } }
This key's plan, the month and minute windows, and what the plan includes.
curl "https://arbitron.app/api/v1/usage" \ -H "Authorization: Bearer $ARBITRON_KEY"
{ "data": { "plan": "trade", "key_prefix": "arb_live_DPxk…", "scopes": ["funding:read", "history:read", "spreads:read", "listings:read", "usage:read", "mcp:read"], "month": { "used": 1842, "limit": 100000, "remaining": 98158, "resets_at": "2026-10-01T00:00:00Z" }, "minute": { "used": 3, "limit": 120, "remaining": 117, "resets_at": "2026-09-21T12:01:00Z" }, "history_days": 180, "delay_seconds": 0, "commercial_use": false, "upgrade_url": "https://arbitron.app/developers#plans" }, "meta": { "as_of": "2026-09-21T12:00:04Z", "delayed_seconds": 0, "source": "arbitron.app", "url": "https://arbitron.app/settings/api?utm_source=api" } }
The API comes with your Arbitron plan
These are the same plans you trade with on Arbitron, not separate API plans. Each one includes the REST API and the MCP server at the limits below, and a free account gets a delayed demo. Quotas are hard caps: a spent window answers 429, never an invoice.
| Plans | Free account
$0
/mo Every account gets the API demo, with delayed data. | Scanner
$39
/mo See everything the machine sees. No execution. | TraderMost popular
$99
/mo Your own server, your keys, live execution. | Prime
$299
/mo More capacity, Multi-IP zones, higher limits, a direct line to the team. |
|---|---|---|---|---|
| The Arbitron plan | ||||
| All scanners, full depth, no delay | ||||
| Two-leg spread arbitrage | ||||
| Dedicated server, running 24/7 | ||||
| API and MCPincluded in the plan | ||||
| Requests per month | 3,000 | 30,000 | 100,000 | 500,000 |
| Per minute | 20 | 60 | 120 | 300 |
| API keys | 1 | 2 | 3 | 10 |
| History depth | 7 days | 30 days | 180 days | Everything we hold |
| Data delay | 15 min | Live | Live | Live |
| Commercial use | ||||
| Create a key | Choose Scanner | Choose Trader | Choose Prime |
Demo data must be attributed to Arbitron with a link to the page it came from.
Frequently Asked Questions
Can the assistant trade for me?
No. Every tool only reads: an assistant can't place an order, start or stop a strategy, or move funds. Trading stays in the Arbitron terminal and follows the settings you choose there.
Do assistants need a key?
No. Claude, ChatGPT and other MCP clients sign in with your Arbitron account through OAuth, and you approve the scopes on a consent screen. Clients that take a static header, such as Cursor, can use a key on the MCP endpoint instead. Either way the calls meter against the same plan.
Is there a free tier?
Yes. Every account holds a Demo key: 3,000 requests a month, 20 a minute, and data 15 minutes behind the live snapshot. Create it on the AI assistants & API page. No card and no plan needed.
Why is Demo data delayed?
The Demo tier reads a snapshot 15 minutes old. That is enough to build against and to show an assistant the shape of the data, and useless to trade on. Paid plans read the live snapshot, which refreshes every minute.
Can I use the data commercially?
Commercial use is included in Prime. Scanner, Trader covers personal and internal use, and Demo data must be attributed to Arbitron with a link to the page it came from.
How are keys stored?
We keep a keyed hash, never the key. The plaintext is shown once at creation and cannot be shown again; the console lists the prefix so you can tell keys apart. Authorization headers are never written to logs.
How do I rotate a key?
Rotate it on the AI assistants & API page: a new key is issued and the old one keeps working for 24 hours, so nothing goes dark mid-deploy. Revoke stops a key at once. Keys expire after a year.
Do 304 responses count against my quota?
No. A conditional request whose ETag still matches moves no data, so it is refunded on both the minute and the month window. Cache the ETag and send If-None-Match.
What happens when I hit a limit?
You get 429 with Retry-After and the RateLimit header naming the spent window. Nothing is billed as overage, and the month resets on the 1st at 00:00 UTC. A higher plan has larger windows.
Ask your first question
Connecting takes a minute and works on a free account, where market data runs 15 min behind. Your own scripts read the same market data with a key.
$ claude mcp add --transport http arbitron https://arbitron.app/mcp