World State API for AI agents.
Event probability state, not headlines.
The world state API returns a compact world model built from prediction markets, government data, economic indicators, and traditional market anchors. Roughly 800 tokens. One curl. No auth. Refreshed every 15 minutes.

The world watching you back — what an agent reads, in one snapshot.
Numbers an agent can act on.
Web search returns narratives. News APIs return fragments. World state returns calibrated odds.
Prediction markets force participants to settle on real outcomes with real money, so probabilities ship as numbers instead of paragraphs an agent has to interpret.
Web search
documents, narratives, recency-mixed
no calibration, no probability
News API
titles, sources, dates
no probability, no liquidity context
Market data API
prices, volume, orderbook
no compressed agent context
SimpleFunctions world state
probability state + regime + gov/econ + next actions
should be interpreted, not blindly trusted
Live output — exactly what your agent gets
~1,767 tokens · refresh every 15 min · cached at edgeGET /api/agent/worldtext/markdown# World (2026-05-17 22:45 UTC)
Regime: Broad up-skew — markets resolving toward higher probability
SimpleFunctions Index: Disagree 52 | GeoRisk 0 | Breadth +0.36 | Activity 14
Baseline: last 12h
## [divergence] Dogecoin price? overshooting a new country buy Bitcoin by...? — 50¢ gap [Crypto]
- lhs: {"name":"Will a new country buy Bitcoin by...?: June 30, 2026","Δ":"29c"}
- rhs: {"name":"Dogecoin price on May 22, 2026?: $0.105 or above","Δ":"60c"}
- gap: -50
- theme: Crypto
- triggerTicker: 0xabbcf4b109800ea512cbe08aa5efe734131855da2847fcb497d763778de4f654
- laggingTicker: KXDOGED-26MAY2217-T0.1049999
→ why? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-uwpmp3`
→ Will a new country buy Bitcoin by...?: June 30, 2026 spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
→ 6h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=6h`
## [divergence] NJ-05 House Election Winner lagging CT-05 House Election Winner — 41¢ gap [US Elections]
- lhs: {"name":"CT-05 House Election Winner: Democratic Party","Δ":"30c"}
- rhs: {"name":"NJ-05 House Election Winner: Republican Party","Δ":"19c"}
- gap: 41
- theme: US Elections
- triggerTicker: 0x40b2475e802d01b929cddd1124b8199d04989f1678bcf41d53fa75d7d917333d
- laggingTicker: 0x8a2a7457c9a8be976d0fb615b952542db4911e45987e1300d4ec3b5a3008174f
→ why? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-xn5ysa`
→ CT-05 House Election Winner: Democratic Party spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
→ 6h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=6h`
## [divergence] Anthropic release Mythos? overshooting OpenAI release GPT-6? — 29¢ gap [AI / LLM]
- lhs: {"name":"Will OpenAI release GPT-6 before Sep 1, 2026?: Before Sep 1, 2026","Δ":"-30c"}
- rhs: {"name":"Will Anthropic release Mythos before Dec 1, 2026?: Before Dec 1, 2026","Δ":"55c"}
- gap: -29
- theme: AI / LLM
- triggerTicker: KXGPT-OPEN-26SEP01
- laggingTicker: KXCLAUDE-MYTH-26DEC01
→ why? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-qfy2vt`
→ Will OpenAI release GPT-6 before Sep 1, 2026?: Before Sep 1, 2026 spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
→ 6h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=6h`
## [consensus_break] at least 3 judges be confirmed in May?: 5 markets deeply split (σ=45¢, range 93¢)
- seriesKey: KXJUDGECOUNT
- markets: [{"ticker":"KXJUDGECOUNT-26MAY-0","title":"Will at least 1 judges be confirmed in May 2026?: At least 1","price":96},{"ticker":"KXJUDGECOUNT-26MAY-1","title":"Will at least 2 ju...
- dispersion: 45
- range: 93
- implication: markets disagree on resolution level
→ full spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
→ why disagree? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-4ed4u4`
## [consensus_break] Euro area GDP growth rate QoQ flash for Q1 b…: 3 markets deeply split (σ=44¢, range 93¢)
- seriesKey: KXEZGDPQOQF
- markets: [{"ticker":"KXEZGDPQOQF-26JUN05-T-0.1","title":"Will Euro area GDP growth rate QoQ flash for Q1 2026 be above -0.1%?: Above -0.1%","price":97},{"ticker":"KXEZGDPQOQF-26JUN05-T0....
- dispersion: 44
- range: 93
- implication: markets disagree on resolution level
→ full spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
→ why disagree? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-9zo5cd`
## [consensus_break] Italy GDP growth rate YoY for Q1 be above 0.…: 5 markets deeply split (σ=43¢, range 93¢)
- seriesKey: KXITGDPYOYA
- markets: [{"ticker":"KXITGDPYOYA-26MAY29-T0.0","title":"Will Italy GDP growth rate YoY for Q1 2026 be above 0.0%?: Above 0.0%","price":96},{"ticker":"KXITGDPYOYA-26MAY29-T0.4","title":"W...
- dispersion: 43
- range: 93
- implication: markets disagree on resolution level
→ full spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
→ why disagree? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-1m2jsy`
## [resolving_soon] 93% no in 5h — average **gas prices** be above?
- ticker: KXAAAGASD-26MAY18-4.565
- venue: kalshi
- title: Will average **gas prices** be above $4.565?: Above 4.565
- price: 7
- settlesInHours: 5
- impliedProbability: 0.07
- ifYes: resolves TRUE, pays 100¢
- ifNo: resolves FALSE, pays 0¢
→ price path · `GET /api/public/market/KXAAAGASD-26MAY18-4.565`
→ nearby resolutions · `GET https://simplefunctions.dev/api/agent/world?op=catalyst`
→ siblings · `GET https://simplefunctions.dev/api/agent/world?op=trail&from=KXAAAGASD-26MAY18-4.565`
## [resolving_soon] 95% yes in 15h — In the Grey Rotten Tomatoes score?
- ticker: KXRT-INT-35
- venue: kalshi
- title: In the Grey Rotten Tomatoes score?: Above 35
- price: 95
- settlesInHours: 15
- impliedProbability: 0.95
- ifYes: resolves TRUE, pays 100¢
- ifNo: resolves FALSE, pays 0¢
→ price path · `GET /api/public/market/KXRT-INT-35`
→ nearby resolutions · `GET https://simplefunctions.dev/api/agent/world?op=catalyst`
→ siblings · `GET https://simplefunctions.dev/api/agent/world?op=trail&from=KXRT-INT-35`
## [resolving_soon] 95% yes in 15h — Obsession Rotten Tomatoes score?
- ticker: KXRT-OBS-93
- venue: kalshi
- title: Obsession Rotten Tomatoes score?: Above 93
- price: 95
- settlesInHours: 15
- impliedProbability: 0.95
- ifYes: resolves TRUE, pays 100¢
- ifNo: resolves FALSE, pays 0¢
→ price path · `GET /api/public/market/KXRT-OBS-93`
→ nearby resolutions · `GET https://simplefunctions.dev/api/agent/world?op=catalyst`
→ siblings · `GET https://simplefunctions.dev/api/agent/world?op=trail&from=KXRT-OBS-93`
## [regime_shift] regime shifting: GeoRisk 20→0 (-20)
- baselineAt: 2026-05-17T11:00:00.071Z
- driver: geopolitics
- primaryMover: GeoRisk
- moves: [{"k":"GeoRisk","from":20,"to":0,"Δ":-20,"unit":""}]
- atBaseline: {"disagreement":48,"geoRisk":20,"breadth":0.35,"activity":14}
- now: {"disagreement":52,"geoRisk":0,"breadth":0.36,"activity":14}
→ drill into geopolitics · `GET https://simplefunctions.dev/api/agent/world/geopolitics`
→ 24h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=24h`
## Zoom
- **Iran** — 204 markets → `GET https://simplefunctions.dev/api/agent/world/iran`
- **Oil & Energy** — 434 markets → `GET https://simplefunctions.dev/api/agent/world/oil`
- **Fed & Rates** — 1113 markets → `GET https://simplefunctions.dev/api/agent/world/fed-rate`
- **Recession** — 642 markets → `GET https://simplefunctions.dev/api/agent/world/recession`
- **2026 Elections** — 3017 markets → `GET https://simplefunctions.dev/api/agent/world/election-2026`
- **Crypto** — 1062 markets → `GET https://simplefunctions.dev/api/agent/world/bitcoin`
- **Ukraine/Russia** — 291 markets → `GET https://simplefunctions.dev/api/agent/world/ukraine`
- **China/Taiwan** — 340 markets → `GET https://simplefunctions.dev/api/agent/world/china`
---
Path: https://simplefunctions.dev/api/agent/world
Op: snapshot · Generated in 5473msFour endpoints. Same world, different resolutions.
Full snapshot, incremental delta, focused topics, or cross-market anomaly. All free, all no auth.
/api/agent/worldFull panoramic snapshot. Six topics, anchor contracts, prediction index, traditional markets.
~800 tokens/api/agent/world/delta?since=1hOnly what changed since timestamp. For agents in long-running sessions that need periodic refresh.
~30–50 tokens/api/agent/world?focus=energy,geoSame token budget, concentrated on fewer topics. More contracts, more depth per topic.
~800 tokens, focused/.well-known/ai-world-stateDiscovery document advertising endpoints, formats, refresh cadence, and licensing.
JSON manifestHow agents should consume world state
Snapshot at session start, reason against the numbers, monitor for change, drill into the next-action endpoints. Treat the state as context, not as a guarantee.
Snapshot
Call /api/agent/world at session start to seed the agent with the current event probability state.
Reason
Use salient markets, regime signals, and traditional anchors as context, not as a guarantee.
Monitor
During long sessions, call /api/agent/world/delta?since=1h to wake only on change.
Drill
Follow nextActions into market inspect, gov/econ query, screen, or index history.
31× improvement in world awareness.
The World Awareness Benchmark (WAB) is a 44-question battery covering recession odds, oil prices, geopolitical risk, and election probabilities. Same model, with and without world state context.
Read the paperBaseline (no world state)
2.3%
+ 800 tokens of world state
70.5%
Geo
+50pp
Econ
+80pp
Energy
+71pp
Elections
+60pp
Markets
+75pp
Calibrated by real money.
Prediction market participants vote with real money on real outcomes. Wrong forecasts lose money. The settlement mechanism produces probability numbers more reliable than analyst reports or news summaries on the same questions.
SimpleFunctions distills 35,890 indicator-scored markets into a single world state. Anchor contracts always appear. Sports, weather, and daily closes are filtered out.
35,890
markets distilled
~800
tokens / snapshot
15 min
refresh cadence
6
rotating topics
Sources: Kalshi (CFTC-regulated), Polymarket, Databento, public econ/gov data.
World awareness in three lines.
Drop the world state into a system prompt, an MCP tool, or a periodic context refresh. No auth. No setup.
# pip install simplefunctions-ai
from simplefunctions import world
state = world() # ~800 tokens, calibrated by real money
messages = [
{"role": "system", "content": f"You are a helpful assistant.\n\n{state}"},
{"role": "user", "content": "Should I be worried about oil prices?"}
]Ecosystem
FAQ
What is a world state API?
A world state API returns a compact, calibrated description of the live state of the world that an AI agent can read in one call. SimpleFunctions returns event probabilities, regime signals, geopolitical risk, market movers, and gov/econ anchors as a single ~800-token markdown or JSON object.
Why not use web search for world awareness?
Web search returns narratives, dates, and headlines. It does not return calibrated numbers. Prediction-market-implied probabilities are forced to settle on real outcomes, so the world state ships numbers an agent can act on, not paragraphs it has to interpret.
Why prediction markets as the source?
Participants vote with real money on real outcomes. The settlement mechanism punishes wrong forecasts and rewards calibration. That produces probability numbers that, in aggregate, are usually more reliable than analyst reports or news summaries on the same questions.
What topics are included in the world state?
Six rotating topics: geopolitics, macro/economy, energy, elections, crypto/systemic risk, and tech. Anchor contracts (recession probability, Fed actions, geopolitical risk) always appear. Sports, weather, and daily closes are filtered out.
How often is the world state refreshed?
Every 15 minutes. Calls to /api/agent/world return cached output within the window so identical requests stay free and fast.
Can I get only what changed since my last call?
Yes. /api/agent/world/delta?since=1h returns a compact diff so long-running agents can wake on change without re-ingesting the full snapshot.
Can I focus the world state on one or two topics?
Yes. /api/agent/world?focus=energy,geo concentrates the same token budget on fewer topics, returning more contracts and more depth per topic.
Is there a standard discovery URL for AI tools?
Yes. /.well-known/ai-world-state advertises the world state endpoints, formats, refresh cadence, and licensing so MCP clients, Claude Code, Codex, and other agents can auto-configure.
Can this be used inside MCP, Claude Code, or Codex agents?
Yes. The endpoint is plain HTTP markdown/JSON and works as an MCP tool, a system prompt block, or a periodic context refresh inside any agent loop.
Is the world state API free?
Yes. /api/agent/world, /api/agent/world/delta, /api/agent/world?focus=, and /.well-known/ai-world-state are public, no-auth endpoints with generous rate limits.
Related surfaces
Event Probability API
Search real-world events as structured probability state.
Prediction Market Index
Disagreement, geo risk, breadth, and activity across the tape.
Prediction Market API
The broad data and workflow surface for Kalshi, Polymarket, and agents.
Prediction Market Agent
Workflow page for agents that act on event probability state.
Government Data API
Bills, nominations, members, and related markets.
Economic Data API
Official economic series linked to prediction markets.
AI World State Discovery
Standard discovery document for MCP and agent runtimes.