# EloEdge > EloEdge publishes model probabilities for Kalshi's financial prediction markets and Polymarket US five-minute crypto markets, over one MCP server and a JSON API built for AI agents. Each number (model_p) is the chance a contract settles YES, with its age and model version, and each tool states its publication basis. Kalshi models retain their checks against Kalshi's settled results; Polymarket US five-minute publication follows engineering review and historical functional checks, without certified statistical accuracy. The same key also opens a calendar of scheduled market-moving releases, a historical data store queried with SQL, and, with Pro, the Outliers tools on Polymarket. What it covers: Kalshi's financial markets whose model has passed its check: 15-minute up/down windows on crypto (Bitcoin, Ether, Solana, XRP, Dogecoin and more) and metals; hourly and daily price ladders on crypto, metals and US stock indexes; the commodity daily books; and the S&P 500 and Nasdaq-100 daily up/down books. The Kalshi books retain their accuracy checks. Polymarket US five-minute BTC, ETH, SOL and XRP windows have separate engineering/historical publication approval, without certified statistical accuracy. model_p is an estimate, not advice or a guarantee of any result. The rest stay off the MCP and the API until their model passes, so the list grows as models do. Outliers (Pro): trading on Polymarket that breaks from a market's own normal, checked every 30 seconds (money rushes, price jumps, big first bets from new wallets, new-wallet waves, long-shot loading, proven wallets buying, wallets back after months away), with heat per market, wallet records and a scorecard; the tools carry Polymarket's public prices, trades and wallets. What it does not do: it carries no Kalshi prices (read Kalshi's order book yourself), gives no trading advice, and places no orders. ## Connect - MCP server: https://eloedge.com/api/mcp/mcp (Streamable HTTP, JSON-RPC over POST; also answers at https://eloedge.com/api/mcp) - Data MCP server: https://eloedge.com/api/mcp-data/mcp (dataset catalog, schemas, SQL queries, Parquet downloads) - JSON API: the same payloads as plain HTTPS GET with the same key, for example https://eloedge.com/api/v1/windows (routes listed in the MCP reference) - Live push: https://eloedge.com/api/v1/stream?tool=crypto15m_windows (or ?tool=commodity15m_windows&asset=GOLD) sends the rows of those two tools as they change, as Server-Sent Events, with the same key: no polling. The contract, the errors and copy-paste reference clients (Python, TypeScript) are in the MCP reference, section "Live push" (https://eloedge.com/mcp.md#live-push). - Authentication: an API key from https://eloedge.com/account, sent as the header "Authorization: Bearer ek_..." (never in the URL). One key works for both MCP servers and the API. - Limits: per account, across its keys; see "How usage is counted" below. ## Which way in - MCP server (https://eloedge.com/api/mcp/mcp): Questions and analysis: an agent that looks things up, compares and decides. Costs 1 unit a call (5 for a history call), plus 1 per further started 100 KB of answer. - JSON API (https://eloedge.com/api/v1): Scripts and dashboards that read now and then. Costs 1 unit a call (5 for a history call), plus 1 per further started 100 KB of answer. - Live push (https://eloedge.com/api/v1/stream): A program trading the 15-minute windows: hold two connections with a watchdog, and fall back to calling the tool. Costs 1 unit per started minute per connection (1,440 a day), whatever it carries. - Data store (https://eloedge.com/api/mcp-data/mcp): History and backtests. Costs 20 a query plus 1 per started 100 KB of answer; a file 1 per started 100 KB; both count as data volume. ## Try it free - Free plan, no card: sign in with Google or X at https://eloedge.com/signin. Every live market page then shows the model's chance (model_p), with no delay and its age; signed out, the pages show the markets without it. Free has no key: no MCP, API or data store. - Free trial: https://eloedge.com/pricing. Plus starts with a 7-day free trial; a card is required, and nothing is charged if it is canceled before it ends. - Plans: Free (the live pages on the site, signed in), Plus and Pro (MCP, API and data store; Pro adds the Outliers tools), and Lifetime. Prices: https://eloedge.com/pricing ## How usage is counted | Per account, across its keys | Plus, and its 7-day trial | Pro, and Lifetime | |---|---|---| | Units a day (UTC) | 50,000 | 150,000 | | Requests a minute (burst) | 120 (40) | 300 (100) | | Data volume a day (UTC) | 100 MB | 400 MB | | Data volume a calendar month (UTC) | 1 GB | 4 GB | | Live streams open at once | 4 | 20 | - Every limit is per account, across all of its keys. Plus's 7-day trial has Plus's limits; Lifetime has Pro's. - Units a day (UTC): Plus 50,000, Pro 150,000. - Requests a minute: Plus 120 (bursts of up to 40), Pro 300 (bursts of up to 100). - Data volume a day (UTC): Plus 100 MB, Pro 400 MB. Data volume a calendar month (UTC): Plus 1 GB, Pro 4 GB. Data volume is file downloads, Range requests included, plus data query answers. - Live streams open at once: Plus 4, Pro 20. - An ordinary call costs 1 unit, plus 1 per further started 100 KB of answer. - A heavy call costs 5, plus 1 per further started 100 KB: the history tools and routes (crypto15m_history, btc15m_history, commodity15m_history, /api/v1/history, /api/v1/commodity15m/history) and settled results (price_ladder, crypto_ladder and equity_daily_updown with settled, /api/v1/ladder and /api/v1/daily-updown with settled). - A data query costs 20, plus 1 per started 100 KB of answer, and its answer counts as data volume. - A data file download costs 1 per started 100 KB sent, and those bytes count as data volume. - A live stream costs 1 unit per started minute connected, whatever it carries: the 15-minute windows stream (/api/v1/stream) and the site's live views while signed in. Each connection is one stream, and a reconnect starts a new minute. - An MCP tool call is counted on its structured answer once, though the reply also carries a text copy of it, so a tool call costs what the matching /api/v1 call costs. - A JSON-RPC batch counts as its messages sent one by one: each message is one request against the rate, and each tool call in it costs its own units. A batch may hold at most the plan's burst (Plus 40, Pro 100 messages); a larger one is refused with HTTP 400 and no Retry-After, because it can never be let in as it is: split it. - Everything adds to the same daily total. 100 KB is 100,000 bytes and 1 MB is 1,000,000. Worked examples: - A bot polling one tool 4 times a second for an hour, each answer under 100 KB: 14,400 units. - A 50 MB file: 500 units and 50 MB of data volume. - A stream open for an hour: 60 units; all day, 1,440, whatever it carries. - The live push's two-connection pair, all day: 2,880 units, 6% of Plus's 50,000. What reading the 15-minute windows all day costs: | Reading the windows all day | Units an hour | Units a day | Of Plus's units a day | Of Pro's units a day | |---|---|---|---|---| | One stream connection | 60 | 1,440 | 3% | 1% | | The two-connection pair (the robust pattern) | 120 | 2,880 | 6% | 2% | | Calling a window tool once a second instead | 3,600 | 86,400 | 173% | 58% | - Every keyed answer carries its account's standing in headers: X-EloEdge-Plan (pro, plus or free), X-RateLimit-Limit and X-RateLimit-Remaining (requests a minute), X-Usage-Day-Limit, X-Usage-Day-Used, X-Usage-Day-Remaining and X-Usage-Day-Reset (units), X-Usage-Data-Day-Limit, X-Usage-Data-Day-Used and X-Usage-Data-Day-Remaining, and X-Usage-Data-Month-Limit, X-Usage-Data-Month-Used, X-Usage-Data-Month-Remaining and X-Usage-Data-Month-Reset (data volume in bytes). Used counts are before the answer they come with. - A call over a limit gets HTTP 429 with Retry-After and one plain sentence naming the limit and when it resets; an MCP client gets the same sentence. A call refused for a limit costs nothing; any other answered call, an error included, costs its units. The daily counts reset at 00:00 UTC, the monthly data volume on the 1st at 00:00 UTC. - The largest single answer: a data query returns at most 5,000 rows or 8 MB and runs at most 20 seconds. - Your account page shows all of it: units and data volume today and this month, requests in the last minute, live streams open, 30 days of history, and each key's share by its name. At a limit: - Requests a minute: HTTP 429, the error starts "rate limit", Retry-After the seconds until a request is free again. Wait that long. Spread your calls out, or take the 15-minute windows from the stream instead of polling. - Units a day: HTTP 429, the error starts "daily usage cap", Retry-After the seconds until 00:00 UTC. Wait for the reset, or move to a plan with more units. - Data volume a day: HTTP 429, the error starts "daily data cap", Retry-After the seconds until 00:00 UTC. Wait for the reset, or ask for less (a Range request counts only its bytes). - Data volume a month: HTTP 429, the error starts "monthly data cap", Retry-After the seconds until the 1st, 00:00 UTC. Wait for the reset, or move to a plan with more data. - Live streams open at once: HTTP 429, the error starts "stream limit", Retry-After 5 seconds. Close one of your streams (each connection is one), then connect again. - Requests in one JSON-RPC batch: HTTP 400, the error starts "batch too large", Retry-After not sent: the same batch is refused again. Split the batch into batches no larger than the burst. - Streams one key holds open on /api/v1/stream (any plan, at most 32), or new ones it opens a minute (120, bursts of 40): HTTP 429 "stream limit" or "too many new streams", with Retry-After. ## Docs - [MCP reference](https://eloedge.com/mcp.md): every tool, field and error, the limits, and the live push with reference clients. Point your agent at this file. - [MCP reference changes](https://eloedge.com/mcp-changelog.md): what changed in the reference, newest first. - [Build your AI trading agent](https://eloedge.com/docs/agent): get a key, connect Claude, Cursor, Codex or any MCP client, and a starter prompt. - [Docs](https://eloedge.com/docs): the tools and the JSON API in brief. - [Data store reference](https://eloedge.com/data.md): the historical datasets and the data MCP. - [Data catalog](https://eloedge.com/data): every dataset, browsable. ## Tools on the MCP server - polymarket_us_crypto5m_windows: Polymarket US five-minute BTC, ETH, SOL and XRP windows, exact decimal targets and ordinary model probabilities; optional asset. REST: https://eloedge.com/api/v1/polymarket/crypto5m/windows. No 15-minute alias, history or live push. - polymarket_us_crypto_hourly: Polymarket US's own hourly crypto markets that no Kalshi contract matches: SOL and XRP levels and ranges (other rounding; SOL whole-dollar levels and $1 ranges), with the 5 PM ET daily or Friday weekly in that hour, ETH 5 PM ranges ($20; Kalshi $40), and BTC, ETH, SOL and XRP hourly up/down; the validated Kalshi hourly model on Polymarket US's terms; optional asset, close, book, tickers, numbers_only. REST: https://eloedge.com/api/v1/polymarket/crypto/hourly. price_ladder's SOL and XRP rows carry the same numbers in a polymarket_us block. - crypto15m_windows, crypto15m_history, crypto15m_health: the 15-minute crypto up/down windows, settled results and freshness (crypto15m_windows is also pushed as it changes: https://eloedge.com/api/v1/stream?tool=crypto15m_windows); XRP rows add polymarket_us, Polymarket US's own XRP market for the window (a different contract: 5 places, Kalshi 4) with its own model_p - model_p_at: the model_p in force at any second of a crypto 15-minute market (rounded to the nearest second), since model v1 began on 2026-09-23 - commodity15m_windows, commodity15m_history, commodity15m_health: the same for metals, energy and currencies (commodity15m_windows is also pushed: https://eloedge.com/api/v1/stream?tool=commodity15m_windows) - price_ladder: hourly and daily price ladders with a validated model (market_coverage lists which today) - event_contracts: Kalshi's other daily event books with a validated model (the commodity daily books today) - Weekly, monthly, yearly and long-dated books are not served here: since 2026-10-20 they are kept on EloEdge's beta site, which has no MCP or API, so a call that asks for one gets an empty answer, not an outage. A weekly contract that also counts as an hourly or daily one is listed on that shorter book, in its window. market_coverage lists every book served now. - equity_daily_updown: the S&P 500 and Nasdaq-100 daily up/down books - market_coverage: every series with a validated model, and the tool that carries it - catalysts: scheduled US releases and market sessions - outliers, outlier_markets, outlier_wallets, outlier_scorecard, outlier_revisions (Pro): EloEdge Outliers, trading on Polymarket that breaks from a market's own normal, checked every 30 seconds, with heat per market, wallet records, a scorecard and every recorded revision by id - btc15m_windows (crypto15m_windows, fixed to BTC), btc15m_history (crypto15m_history, fixed to BTC), btc15m_health (crypto15m_health, the same answer), crypto_ladder (price_ladder, the same answer): older names that still work ## Optional - [Pricing](https://eloedge.com/pricing) - [Terms](https://eloedge.com/terms), [Data & API Terms](https://eloedge.com/data-terms), [Privacy](https://eloedge.com/privacy), [Risk disclosure](https://eloedge.com/risk) - [Support](https://eloedge.com/support)