{"components":{"securitySchemes":{"apiKey":{"in":"header","name":"X-API-Key","type":"apiKey"},"session":{"scheme":"bearer","type":"http"}}},"info":{"description":"The Predikon public API — the web app runs on this exact surface. Money is int64 micros (1e6 = $1); prices are ppm of $1. Send an Idempotency-Key header on money-moving POSTs. v1 scope: summaries + auth markers; full schemas land incrementally.","title":"Predikon API","version":"1"},"openapi":"3.1.0","paths":{"/accuracy":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Platform calibration: per-decile predicted-vs-realized + Brier, recomputable from public logs"}},"/agents/calibration":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Agent (API-key) forecasters ranked separately by mean per-market calibration edge"}},"/categories":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The navigation rail: registry categories in sort order with open/total listed-market counts, plus hot_topics with live inventory"}},"/categories/{slug}/topics":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The category's topic tree with counts (the subcategory sidebar); the slug resolves through the registry (alias/case)"}},"/elections":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Curated elections race registry. ?chamber=senate|house|governor"}},"/elections/{id}/finance":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Per-race FEC candidate finance (federal races; 503 if disabled)"}},"/entities":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Curated topic index: entity → open/total listed-market counts"}},"/entities/{slug}":{"get":{"responses":{"200":{"description":"OK"}},"summary":"One topic's listed markets, enriched and paginated. ?limit≤200 ?offset → next_offset"}},"/feed":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Verified takes across all markets"}},"/groups/{id}":{"get":{"responses":{"200":{"description":"OK"}},"summary":"A categorical group: outcomes + implied probabilities"}},"/groups/{id}/lmsr-buy":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Buy an outcome from the group's joint maker (Σ=1)"}},"/groups/{id}/prices-history":{"get":{"responses":{"200":{"description":"OK"}},"summary":"One probability line per outcome (≤24, highest last price first) on one shared grid. ?interval ?fidelity ?startTs\u0026endTs"}},"/groups/{id}/redeem":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Redeem a complete cross-outcome set"}},"/info/docs":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Documentation pointers"}},"/info/server-time":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The authoritative server clock"}},"/integrity":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Live conservation check, kill-switch state, open markets"}},"/leaderboard":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Skill-ranked forecasters (mean per-market edge)"}},"/leaderboard/board":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Windowed P/L or volume board (public handles). ?kind=pnl|volume ?window"}},"/markets":{"get":{"responses":{"200":{"description":"OK"}},"summary":"All markets, enriched. ?category ?search ?sort"}},"/markets/featured":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Auto-curated home markets (interestingness-ranked; AI hooks when armed). ?limit≤24"}},"/markets/movers":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Breaking: |Δ price|-ranked open markets with sparklines. ?window_secs ?limit"}},"/markets/trending":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Windowed discovery rail. ?window_secs ?limit"}},"/markets/{id}":{"get":{"responses":{"200":{"description":"OK"}},"summary":"One market's live state incl. the binding resolution_spec + hash"}},"/markets/{id}/book":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The open order book"}},"/markets/{id}/calendar.ics":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The market close as an RFC 5545 calendar event"}},"/markets/{id}/candles":{"get":{"responses":{"200":{"description":"OK"}},"summary":"OHLCV candles in ppm, volume in micros. ?resolution=1m|5m|15m|1h|4h|1d ?from\u0026to ?limit≤1000 ?fill"}},"/markets/{id}/close":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"One-tap close: IOC buy of the opposite side at ≥ min_price_ppm gross proceeds, then pair redemption (ungrouped)"}},"/markets/{id}/faq":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Auto-FAQ generated from the binding resolution spec"}},"/markets/{id}/history":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The most recent price ticks, oldest first. ?limit≤500"}},"/markets/{id}/history.csv":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Price history as a CSV attachment"}},"/markets/{id}/holders":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Top public-handle holders: realized P/L once settled, stake while open (G6.7). ?limit≤50"}},"/markets/{id}/lmsr-buy":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Buy from the house LMSR maker"}},"/markets/{id}/news":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Recent headlines matching the market's entity tags (best-effort; 503 if news is disabled)"}},"/markets/{id}/orders":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Place an order {side, price ppm, qty, tif}"}},"/markets/{id}/orders/{oid}":{"delete":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Cancel a resting order"},"patch":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Amend price/qty"}},"/markets/{id}/posts":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Verified takes on one market"},"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Post a take (requires a handle AND a live position)"}},"/markets/{id}/prices-history":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Charted probability line on a forward-filled grid. ?interval=1h|6h|1d|1w|1m|3m|1y|all ?fidelity=minutes ?startTs\u0026endTs ?outcome=YES|NO"}},"/markets/{id}/receipt":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Signed outcome attestation (ed25519; settled markets only)"}},"/markets/{id}/redeem":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Redeem complete YES+NO pairs for $1 each"}},"/markets/{id}/reference":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Live numeric reference vs strike (crypto series; the value that decides the market)"}},"/markets/{id}/related":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Related markets: group siblings first, then category peers"}},"/markets/{id}/resolution-log":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The tamper-evident resolution log"}},"/markets/{id}/sharp":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The sharp-money line: aggregate top-forecaster positioning (privacy-floored)"}},"/markets/{id}/snapshot":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Signed point-in-time odds attestation"}},"/markets/{id}/stream":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Server-sent events: live prices and trades"}},"/me/2fa":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Two-factor state"}},"/me/activity":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Unified trades + deposits timeline"}},"/me/activity.csv":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"The timeline as a CSV statement"}},"/me/api-keys":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Your API keys"},"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Issue a key (password + 2FA step-up; expires, default 90d)"}},"/me/balance":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Available + locked balance (micros)"}},"/me/email-notifications":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Email-channel opt-in state"},"put":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Opt in/out of notification emails"}},"/me/ladder":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Your skill-ladder rung + the next requirement"}},"/me/notification-prefs":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Per-kind alert preferences"},"put":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Set one kind's preference"}},"/me/notifications":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"In-app inbox + unread count"}},"/me/notifications/read":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Mark read up to an id"}},"/me/orders":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Open orders"}},"/me/pnl-curve":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Daily net trading cash flow + running sum, ledger-derived. ?days≤365"}},"/me/positions":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Positions with cost basis and P\u0026L"}},"/me/posts/{id}":{"delete":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Soft-delete an own post"}},"/me/profile":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Your handle/visibility + skill"},"put":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Claim/update the handle"}},"/me/proposals":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Your market proposals + outcomes"}},"/me/push-subscription":{"delete":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Remove a subscription"},"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Register a Web-Push subscription"}},"/me/statement":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Monthly account statement, ledger-derived. ?month=YYYY-MM"}},"/me/statement.csv":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"The statement as a CSV download"}},"/me/stream":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Server-sent events: your fills and settlements"}},"/me/trades":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Fill history. ?limit≤500"}},"/me/watchlist":{"get":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Watched markets"}},"/me/watchlist/{id}":{"delete":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Unwatch"},"put":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Watch a market (idempotent)"}},"/profiles/{handle}":{"get":{"responses":{"200":{"description":"OK"}},"summary":"A public forecaster profile: skill + ladder rung"}},"/proposals":{"post":{"responses":{"200":{"description":"OK"}},"security":[{"apiKey":[]},{"session":[]}],"summary":"Request a market (question, source, criteria required)"}},"/push/vapid-key":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The Web-Push application server key"}},"/receipts/key":{"get":{"responses":{"200":{"description":"OK"}},"summary":"The attestation pinning key (ed25519)"}},"/receipts/verify":{"post":{"responses":{"200":{"description":"OK"}},"summary":"Verify a signed receipt or odds snapshot against the platform key (INV-9a/b)"}}},"servers":[{"url":"https://api.predikon.com"}]}
