Alternative · Analytics aggregator
PolyRouter vs
SimpleFunctions.
PolyRouter unifies Kalshi, Polymarket, and Limitless behind a single API key — a clean developer shortcut for normalized data. SimpleFunctions ships the agent layer above that data: a causal-tree thesis system that decomposes any claim into testable sub-claims and auto-evaluates against live prices, an autonomous Portfolio Autopilot with a 7-gate risk cascade, computed indicators across 48K+ active contracts, and a 56-tool MCP server that plugs directly into Claude Code or Cursor.
Verified 2026-04 · public sources only · live SF data from /calibration
Verdict
Pick the one that fits how
you actually work.
Choose SimpleFunctions if
You are building agents, autonomous trading systems, or research pipelines that need more than normalized prices — calibrated probabilities with public Brier scores, causal-tree thesis modelling with evaluation heartbeats, computed indicators (implied yield, cliff risk, liquidity availability score, event overround) across the full 48K-contract universe, regime classification, and a 56-tool MCP server that integrates in one command.
Choose PolyRouter if
You want one API key and a consistent schema across Kalshi, Polymarket, and Limitless, with nothing beyond data retrieval — PolyRouter is designed for developers who need a stable, thin normalization layer across three venues and do not require an agent or analytics layer on top.
Same Kalshi and Polymarket coverage; PolyRouter adds Limitless and stays thin. SimpleFunctions ships the agent layer: thesis system, indicators, autopilot, MCP.
At a glance
Three things that
actually differ.
Everything PolyRouter gives you — normalized prices across Kalshi and Polymarket via one API key — SimpleFunctions also gives you, on the same feeds, with orderbook depth and cross-venue matched pairs.
On top of that, SF adds a causal-tree thesis system, Portfolio Autopilot (1M-context LLM, 7-gate risk cascade), computed indicators across 48K+ contracts, and 56 MCP tools that no current PM data product exposes.
SF publishes its own live Brier scores at /api/calibration — Kalshi 0.20, Polymarket 0.12 on T-24h price, past 90 days — so you can audit prediction accuracy before trusting any signal.
Side by side
9 dimensions · verified 2026-04SimpleFunctionsKalshi + Polymarket normalized, 48K+ active contracts indexed at /api/public/markets.
PolyRouterKalshi, Polymarket, and Limitless normalized behind one API key and one schema.
SimpleFunctionsKalshi and Polymarket; Limitless is not currently integrated.
PolyRouterThree venues — Kalshi, Polymarket, Limitless — through one integration point.
SimpleFunctionsGET /api/public/market/{ticker}?depth=true returns bid/ask ladder, spread, and slippage estimate.
PolyRouterOrderbook depth not confirmed in publicly reviewed documentation.
SimpleFunctionsImplied yield, cliff risk index, liquidity availability score, event overround, τ-days, and regime label — pre-computed across all 48K+ contracts at /screen.
PolyRouterNormalized prices and market data returned; derived indicators are left to the consumer to compute.
SimpleFunctionsLive Brier scores at /api/calibration — by venue, category, and price bucket, updated from the past 90 days.
PolyRouterNot published.
SimpleFunctionsPOST /api/thesis/create decomposes any sentence into a causal tree, propagates probabilities, scans for tradeable edges, and runs an auto-evaluation heartbeat.
PolyRouterNot in scope.
SimpleFunctionsPortfolio Autopilot uses a 1M-context LLM and a 7-gate risk cascade (kill switch, position limits, drawdown gate, regime check) before any execution.
PolyRouterNot in scope.
SimpleFunctions56 tools via claude mcp add simplefunctions --url https://simplefunctions.dev/api/mcp/mcp; works with Claude Code, Cursor, and any MCP client.
PolyRouterNo MCP server published.
SimpleFunctionsPublic REST, MCP, and CLI reads require no auth; thesis and intent execution is free up to 15M tokens, then pay-per-token.
PolyRouterAPI key required for all requests; specific tier pricing not confirmed in public documentation reviewed.
Methodology
Verified 2026-04 from public sources only — PolyRouter's documentation, public website, and publicly observable behaviour. We never claim non-public information about PolyRouter's internals. SimpleFunctions claims on this page are computed live from /api/calibration, /api/public/cross-venue/pairs, and /api/public/markets — you can re-verify them yourself with curl.
Use cases
Same data, different
best fit per scenario.
Scenario 01
Building an AI agent that needs a world model, trade ideas, and real-time thesis evaluation across prediction markets.
SimpleFunctions · best fit
SF's /api/agent/world returns an 800-token world snapshot purpose-built for LLM context windows. The thesis system decomposes any claim into sub-theses, scans Kalshi and Polymarket for matching contracts, and runs an evaluation heartbeat to keep confidence scores live. The 56-tool MCP server surfaces all of this directly inside Claude Code or Cursor.
PolyRouter
PolyRouter returns normalized market data from multiple venues; agent-layer capabilities (thesis, world model, evaluation loops) are outside its scope and would need to be built on top.
Scenario 02
Integrating prediction market data from Kalshi, Polymarket, and Limitless into an existing application with minimal code.
SimpleFunctions
SF covers Kalshi and Polymarket but not Limitless; a developer requiring all three venues would need to handle Limitless separately or use a different aggregator.
PolyRouter · best fit
PolyRouter is built exactly for this — one API key, one schema, three venues. It is the simplest path to a three-venue integration when no agent layer is required.
Scenario 03
Decomposing a geopolitical or macroeconomic thesis into testable sub-claims and identifying live market edges.
SimpleFunctions · best fit
POST /api/thesis/create accepts a natural-language claim, decomposes it into a causal tree, propagates probabilities through the sub-claim graph, and surfaces matching contracts with conviction scores and catalysts. Signals can be injected via /api/thesis/{id}/signal as new information arrives.
PolyRouter
PolyRouter provides normalized price data and does not offer thesis decomposition, causal modelling, or signal injection.
Scenario 04
Auditing the accuracy of a prediction market data provider before relying on it for research or capital allocation.
SimpleFunctions · best fit
SF's /api/calibration endpoint returns live Brier scores broken down by venue, category, and price bucket — Kalshi 0.20, Polymarket 0.12 on T-24h price — computed from the past 90 days. The calibration is self-reported but curl-verifiable by any user.
PolyRouter
PolyRouter is a data normalization layer and does not publish calibration or Brier score data in its public documentation.
Migrate
From https://api.polyrouter.com/v1/markets to SF.
Same shape, no auth, same venues. Python example.
import requests
headers = {"Authorization": "Bearer YOUR_POLYROUTER_KEY"}
resp = requests.get(
"https://api.polyrouter.com/v1/markets",
headers=headers,
params={"venue": "kalshi", "status": "active"}
)
markets = resp.json()
for m in markets["markets"]:
print(m["ticker"], m["yes_ask"])import requests
# No API key required for public reads
resp = requests.get(
"https://simplefunctions.dev/api/public/markets",
params={"status": "active"}
)
markets = resp.json()
for m in markets["markets"]:
# implied_yield and regime label included at no extra cost
print(m["ticker"], m["yes_ask"], m["implied_yield"], m["regime"])Live data
The SimpleFunctions claims on this page are not marketing copy. Brier scores, market counts, and cross-venue pair counts are computed live from /calibration, /screen, and /api/public/cross-venue/pairs. All public, all free, all CC-BY-4.0.
FAQ
What is SimpleFunctions' causal thesis system and how does it differ from a normalized price feed?+
A price feed tells you what the market currently believes. The SF thesis system helps you determine whether you should believe it. POST /api/thesis/create accepts any natural-language claim, decomposes it into a causal tree of testable sub-claims, propagates implied probabilities through the graph, scans Kalshi and Polymarket for contracts that test each node, and runs an evaluation heartbeat — news scan, price refresh, milestone check, LLM eval, confidence update. PolyRouter and similar aggregators operate at the data layer; the thesis system is the reasoning layer above it.
Does SimpleFunctions cover Limitless, which PolyRouter supports?+
As of 2026-04, SimpleFunctions covers Kalshi and Polymarket — 48K+ active contracts across both venues. Limitless is not currently integrated. If your use case specifically requires Limitless data and nothing beyond a normalized feed, PolyRouter is the better fit for that scenario. If you need Kalshi and Polymarket with thesis evaluation, computed indicators, Portfolio Autopilot, and a 56-tool MCP server, SF provides the more capable surface.
What is Portfolio Autopilot and how does it make trading decisions?+
Portfolio Autopilot is SF's autonomous trading agent. It runs a 1M-context LLM over 13 data sources — live prices, orderbook depth, calibration scores, regime labels, thesis states, and more — and passes every candidate trade through a 7-gate risk cascade: kill switch, position limits, drawdown gate, regime check, liquidity gate, concentration check, and a final LLM confidence gate. A trade executes only if it clears all seven gates. PolyRouter provides the normalized data layer; Autopilot is the decision and execution layer that sits above it.
How do I add SimpleFunctions to Claude Code or Cursor as an MCP server?+
Run: claude mcp add simplefunctions --url https://simplefunctions.dev/api/mcp/mcp. That single command registers all 56 tools. From that point, Claude Code can query live prediction market prices, read orderbook depth, pull trade ideas, create and evaluate theses, and interact with Portfolio Autopilot — all without leaving the IDE. PolyRouter does not publish an MCP server.
What computed indicators does SF provide that PolyRouter does not?+
SF pre-computes six indicators across all 48K+ active contracts: IY (implied yield — annualized return if the contract resolves YES), CRI (cliff risk index — probability of a sudden price discontinuity near settlement), LAS (liquidity availability score — how much size can be moved without meaningful slippage), EE (event overround — how much the market extracts from both sides), τ-days (time to settlement), and a regime label that classifies each contract's adverse-selection environment. All are available at /screen without authentication.
Does SF publish its own prediction accuracy, and how can I verify it?+
Yes. GET /api/calibration returns SF's Brier scores broken down by venue, category, and price bucket — Kalshi 0.20, Polymarket 0.12 on T-24h prices — computed over the past 90 days. The endpoint is public and curl-verifiable; no account is required. PolyRouter is a data normalization layer and does not make probabilistic claims of its own, so calibration is not a dimension on which it competes.
Can I use SimpleFunctions without an account, and how does that compare to PolyRouter?+
All SF read endpoints — normalized prices, orderbook depth, computed indicators, cross-venue pairs, trade ideas, world snapshot, calibration scores — are accessible without authentication. The 56-tool MCP server and the CLI also work unauthenticated for reads. Authentication is required only for thesis creation, signal injection, and Portfolio Autopilot execution. PolyRouter requires an API key for all requests by design, as a single-key integration is their core product proposition.
Start for free.
Public endpoints are free for normal usage and rate-limited for reliability. Authenticated endpoints are free up to 15M tokens, then pay per token. No credit card to start.