SimpleFunctions

World State API.

Event probability state, not headlines.

A live event-probability feed built from prediction markets, government data, economic indicators, and traditional market anchors. Roughly 800 tokens, refreshed every 15 minutes — the agent-native consumption surface for cross-venue probability state, also consumed by institutional research desks.

Cyberpunk oil painting — humanoid robot turning to gaze at the viewer over its shoulder, neon Tokyo street at night

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.

SourceReturnsWeakness

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,942 tokens · refresh every 15 min · cached at edge
GET /api/agent/worldtext/markdown
# World (2026-08-18 11:15 UTC)
Regime: Steady — no dominant macro signal
SimpleFunctions Index: Disagree 25 | GeoRisk 0 | Breadth +0.25 | Activity 43
Baseline: since midnight UTC

## [divergence] WTI crude oil settlement price be abo… overshooting max WTI front month settle price reac… — 36¢ gap [Oil & energy]
- lhs: {"name":"Will the maximum WTI front month settle price reach $86.00 by Aug 31, 2026?: 86.","Δ":"38c"}
- rhs: {"name":"Will the WTI crude oil settlement price be above 67.99 USD/Bbl on Nov 3, 2026?: ","Δ":"62c"}
- gap: -36
- theme: Oil & energy
- triggerTicker: KXWTIMAX-26AUG31-T86.00
- laggingTicker: KXWTI-26NOV0314-T67.99
  → why? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-36kfor`
  → Will the maximum WTI front month settle price reach $86.00 by Aug 31, 2026?: 86. spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
  → 6h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=6h`

## [divergence] Democratic win the House race for FL-… overshooting margin of victory for Democrats in th… — 27¢ gap [US Elections]
- lhs: {"name":"Will the margin of victory for Democrats in the governor election in Illinois be","Δ":"24c"}
- rhs: {"name":"Will Democratic win the House race for FL-23?: Democratic party","Δ":"82c"}
- gap: -27
- theme: US Elections
- triggerTicker: KXMIDTERMMOV-ILGOVD-P18
- laggingTicker: HOUSEFL23-26-D
  → why? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-5pm6b4`
  → Will the margin of victory for Democrats in the governor election in Illinois be spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
  → 6h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=6h`

## [divergence] there be more than 1 hurricane of cat… overshooting Vance be categorized as a hurricane i… — 24¢ gap [Climate / weather]
- lhs: {"name":"Will Vance be categorized as a hurricane in the Eastern Pacific in 2026?: Vance","Δ":"-26c"}
- rhs: {"name":"Will there be more than 1 hurricane of category 3 or above in the Central Pacifi","Δ":"55c"}
- gap: -24
- theme: Climate / weather
- triggerTicker: KXHURRICANENAMES-26DEC01EPAC-VAN
- laggingTicker: KXHURRICANE-26DEC01CPACMAJ-1
  → why? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-2wriv2`
  → Will Vance be categorized as a hurricane in the Eastern Pacific in 2026?: Vance 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] Republicans win the Senate race in South Dak…: 4 markets deeply split (σ=45¢, range 90¢)
- seriesKey: SENATESD
- markets: [{"ticker":"SENATESD-28-R","title":"Will Republicans win the Senate race in South Dakota?: Republican party","price":93},{"ticker":"SENATESD-28-D","title":"Will Democratics win ...
- dispersion: 45
- range: 90
- 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-gn8la`

## [consensus_break] What states will redistrict Congressional el…: 17 markets deeply split (σ=44¢, range 94¢)
- seriesKey: KXREDISTRICTING
- markets: [{"ticker":"KXREDISTRICTING-28-OR","title":"What states will redistrict before the 2028 Congressional elections?: Oregon","price":21},{"ticker":"KXREDISTRICTING-28-WI","title":"...
- dispersion: 44
- range: 94
- implication: markets disagree on resolution level
  → full spread · `GET https://simplefunctions.dev/api/agent/world?op=dispersion`
  → drill election-2026 · `GET https://simplefunctions.dev/api/agent/world/election-2026`
  → why disagree? · `GET https://simplefunctions.dev/api/agent/world?op=explain&item=s-thsupp`

## [consensus_break] Chris Tardif be the Democratic nominee for N…: 6 markets deeply split (σ=44¢, range 92¢)
- seriesKey: KXNHPRIMARY
- markets: [{"ticker":"KXNHPRIMARY-02R26-LWIL","title":"Will Lily Tang Williams be the Republican nominee for NH-02?: Lily Tang Williams","price":93},{"ticker":"KXNHPRIMARY-02D26-MGOO","ti...
- dispersion: 44
- range: 92
- 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-1ps04`

## [regime_shift] activity spike, conviction rising: Disagreement 51→25 (-26), Activity 17→43 (+26), Breadth 0.03→0.25 (+0.22)
- baselineAt: 2026-08-17T23:45:00.068Z
- driver: economy
- primaryMover: Disagreement
- moves: [{"k":"Disagreement","from":51,"to":25,"Δ":-26,"unit":""},{"k":"Activity","from":17,"to":43,"Δ":26,"unit":""},{"k":"Breadth","from":0.03,"to":0.25,"Δ":0.22,"unit":""}]
- atBaseline: {"disagreement":51,"geoRisk":0,"breadth":0.03,"activity":17}
- now: {"disagreement":25,"geoRisk":0,"breadth":0.25,"activity":43}
  → drill into economy · `GET https://simplefunctions.dev/api/agent/world/economy`
  → 24h path · `GET https://simplefunctions.dev/api/agent/world?op=history&dt=24h`

## [resolving_soon] 94% no in 16h — Truflation EV Commodity Index be above 1248.…
- ticker: KXTRUEV-26AUG18-T1248.56
- venue: kalshi
- title: Will the Truflation EV Commodity Index on Aug 18, 2026 be above 1248.56?: Above 1248.56
- price: 6
- settlesInHours: 16
- impliedProbability: 0.06
- ifYes: resolves TRUE, pays 100¢
- ifNo: resolves FALSE, pays 0¢
  → price path · `GET /api/public/market/KXTRUEV-26AUG18-T1248.56`
  → nearby resolutions · `GET https://simplefunctions.dev/api/agent/world?op=catalyst`
  → siblings · `GET https://simplefunctions.dev/api/agent/world?op=trail&from=KXTRUEV-26AUG18-T1248.56`

## [resolving_soon] 95% yes in 1d — US Strategic Petroleum Reserve for the week …
- ticker: KXSPRLVL-26AUG19-T290
- venue: kalshi
- title: Will US Strategic Petroleum Reserve for the week ending August 14, 2026 be above 290M?: Above 290M
- price: 95
- settlesInHours: 27
- impliedProbability: 0.95
- ifYes: resolves TRUE, pays 100¢
- ifNo: resolves FALSE, pays 0¢
  → price path · `GET /api/public/market/KXSPRLVL-26AUG19-T290`
  → nearby resolutions · `GET https://simplefunctions.dev/api/agent/world?op=catalyst`
  → siblings · `GET https://simplefunctions.dev/api/agent/world?op=trail&from=KXSPRLVL-26AUG19-T290`

## [resolving_soon] 95% no in 1d — US Strategic Petroleum Reserve for the week …
- ticker: KXSPRLVL-26AUG19-T299
- venue: kalshi
- title: Will US Strategic Petroleum Reserve for the week ending August 14, 2026 be above 299M?: Above 299M
- price: 5
- settlesInHours: 27
- impliedProbability: 0.05
- ifYes: resolves TRUE, pays 100¢
- ifNo: resolves FALSE, pays 0¢
  → price path · `GET /api/public/market/KXSPRLVL-26AUG19-T299`
  → nearby resolutions · `GET https://simplefunctions.dev/api/agent/world?op=catalyst`
  → siblings · `GET https://simplefunctions.dev/api/agent/world?op=trail&from=KXSPRLVL-26AUG19-T299`

## Zoom
- **Iran** — 84 markets → `GET https://simplefunctions.dev/api/agent/world/iran`
- **Oil & Energy** — 317 markets → `GET https://simplefunctions.dev/api/agent/world/oil`
- **Fed & Rates** — 824 markets → `GET https://simplefunctions.dev/api/agent/world/fed-rate`
- **Recession** — 596 markets → `GET https://simplefunctions.dev/api/agent/world/recession`
- **2026 Elections** — 1754 markets → `GET https://simplefunctions.dev/api/agent/world/election-2026`
- **Crypto** — 430 markets → `GET https://simplefunctions.dev/api/agent/world/bitcoin`
- **Ukraine/Russia** — 93 markets → `GET https://simplefunctions.dev/api/agent/world/ukraine`
- **China/Taiwan** — 139 markets → `GET https://simplefunctions.dev/api/agent/world/china`

---
Path: https://simplefunctions.dev/api/agent/world
Op: snapshot · Generated in 5565ms

Four endpoints. Same world, different resolutions.

Full snapshot, incremental delta, focused topics, or cross-market anomaly. All on the public tier.

API reference
/api/agent/world

Full panoramic snapshot. Six topics, anchor contracts, prediction index, traditional markets.

~800 tokens
/api/agent/world/delta?since=1h

Only what changed since timestamp. For agents in long-running sessions that need periodic refresh.

~30–50 tokens
/api/agent/world?focus=energy,geo

Same token budget, concentrated on fewer topics. More contracts, more depth per topic.

~800 tokens, focused
/.well-known/ai-world-state

Discovery document advertising endpoints, formats, refresh cadence, and licensing.

JSON manifest

How 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 paper

Baseline (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 34,527 indicator-scored markets into a single world state. Anchor contracts always appear. Sports, weather, and daily closes are filtered out.

34,527

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. Public tier, 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