Appearance
Prediction Markets Events API
Retrieve Octagon's analyzed prediction market events over REST. The Events API exposes two endpoints:
- List events — the latest snapshot of every analyzed event, including model/market probabilities, confidence scores, analysis summaries, and per-market outcome breakdowns.
- Event history — the historical snapshots for a single event by ticker, for time-series analysis and backtesting.
Like the Chat Completions and Responses endpoints, these are direct REST endpoints called relative to the Octagon API base URL:
text
https://api.octagonai.co/v1List Events
GET /predictions/events
Returns the latest snapshot of every analyzed prediction market event tracked by Octagon, ordered by most recently captured first.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return. Default 10; minimum 1; maximum 200. |
cursor | string | No | Cursor for pagination. Use the cursor returned from a previous response to continue. |
has_history | boolean | No | When true, only return events that have multiple historical snapshots available for time-series use. |
include | string | No | Comma-separated list of optional per-row field groups. Supported: eligibility (see below). |
Response Fields
Each event in the data array includes:
| Field | Type | Description |
|---|---|---|
history_id | integer | Unique identifier for this snapshot. |
run_id | string (UUID) | The export run that produced this snapshot. |
captured_at | string (ISO 8601) | When this snapshot was captured. |
event_ticker | string | Ticker identifier for the event. |
name | string | Human-readable event name. |
slug | string | URL-friendly slug. |
image_url | string | Event image URL. |
series_category | string | Category (e.g., "Politics", "Crypto", "Economics"). |
available_on_brokers | boolean | Whether the event is available on supported brokers. |
mutually_exclusive | boolean | Whether the event's outcomes are mutually exclusive. |
analysis_last_updated | string (ISO 8601) | When the analysis was last refreshed. |
confidence_score | float | Octagon's confidence in the model output (0–10 scale). |
model_probability | float | Octagon model probability for the event's primary/most-liquid market (0–100 percentage scale). See outcome_probabilities for the full per-market breakdown. |
market_probability | float | Market-implied probability for the event's primary/most-liquid market (0–100 percentage scale). See outcome_probabilities for the full per-market breakdown. |
edge_pp | float | Model edge in percentage points (model_probability - market_probability). |
expected_return | float | Expected return if the model is correct. |
r_score | float | Risk-adjusted score. |
total_volume | float | Total trading volume. |
total_open_interest | float | Total open interest. |
close_time | string | When the event closes. |
key_takeaway | string | One-line summary of the model's view. |
current_state_summary_richtext | string | Rich-text summary of the current state. |
short_answer_richtext | string | Rich-text short answer. |
executive_summary_richtext | string | Rich-text executive summary. |
outcome_probabilities | array | Per-market outcome breakdown (see below). null if unavailable. |
has_history | boolean | Whether this event has multiple historical snapshots for time-series analysis. |
The response envelope also includes next_cursor and has_more for pagination.
Eligibility fields
Present only when include=eligibility is set:
| Field | Type | Description |
|---|---|---|
eligible | boolean | null | Whether a fresh report can be generated for this event. |
eligibility_status | string | null | Market state on the marketplace: open, paused, unopened, closed, settled, or unknown. |
eligibility_reason | string | null | Human-readable explanation for the eligible value. |
Generate fresh reports with the Reports API.
Event History
GET /predictions/events/{event_ticker}/history
Returns historical snapshots for a single prediction market event by its ticker, newest first.
Finding the event ticker in a Kalshi URL. A Kalshi event URL has the form /markets/<series-ticker>/<event-slug>/<event-ticker>. In https://kalshi.com/markets/kxfeddecision/fed-meeting/kxfeddecision-26jun, the event ticker is KXFEDDECISION-26JUN. Market deeplinks end in a market ticker instead, which is the event ticker plus an outcome suffix: strip the suffix to get the event ticker (kxoaianth-40-oai → KXOAIANTH-40).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return. Default 50; minimum 1; maximum 200. |
cursor | string | No | Cursor for pagination. Use the cursor returned from a previous response to continue. |
captured_from | datetime (ISO 8601) | No | Start timestamp filter (inclusive) for snapshot capture time. |
captured_to | datetime (ISO 8601) | No | End timestamp filter (inclusive) for snapshot capture time. |
include | string | No | Set to analysis to include the analysis fields in the response. |
days | integer | No | Exclude snapshots where close_time is before now minus this many days. Snapshots with no close_time are always included. Minimum 1. |
exclude_empty_model | boolean | No | When true, exclude snapshots where model_probability is null (incomplete analysis). Default true. |
Response Fields
Each snapshot in the data array includes:
| Field | Type | Description |
|---|---|---|
history_id | integer | Unique identifier for this snapshot. |
run_id | string (UUID) | The export run that produced this snapshot. |
captured_at | string (ISO 8601) | When this snapshot was captured. |
event_ticker | string | Ticker identifier for the event. |
name | string | Human-readable event name. |
slug | string | URL-friendly slug. |
series_category | string | Category (e.g., "Politics", "Crypto", "Economics"). |
close_time | string | When the event closes. |
confidence_score | float | Octagon's confidence in the model output (0–10 scale). |
model_probability | float | Octagon model probability for the event (0–100 percentage scale). |
market_probability | float | Current market-implied probability (0–100 percentage scale). |
edge_pp | float | Model edge in percentage points (model_probability - market_probability). |
expected_return | float | Expected return if the model is correct. |
r_score | float | Risk-adjusted score. |
total_volume | float | Total trading volume. |
total_open_interest | float | Total open interest. |
outcome_probabilities | array | Per-market outcome breakdown (see below). null if unavailable. |
When include=analysis is set, these additional fields are included:
| Field | Type | Description |
|---|---|---|
key_takeaway | string | One-line summary of the model's view. |
current_state_summary_richtext | string | Rich-text summary of the current state. |
short_answer_richtext | string | Rich-text short answer. |
executive_summary_richtext | string | Rich-text executive summary. |
The response envelope also includes the requested event_ticker, plus next_cursor and has_more for pagination.
outcome_probabilities items
Each item in the outcome_probabilities array represents one market/outcome within the event:
| Field | Type | Description |
|---|---|---|
market_ticker | string | Ticker for this specific market/outcome. |
outcome_name | string | Human-readable name for the outcome. |
model_probability | float | Octagon model probability for this outcome (0–100 percentage scale). |
market_probability | float | Market-implied probability for this outcome (0–100 percentage scale). |
Use Cases
- Discover all events currently tracked and analyzed by Octagon, or build a catalog/dashboard of active events.
- Monitor the latest model probabilities, confidence scores, and analysis across all events.
- Filter to events with historical data (
has_history=true), then drill into each event's time-series via the history endpoint. - Build time-series views of model vs. market probability for a specific event ticker.
- Backtest signal quality (for example,
edge_ppandexpected_return) across historical snapshots. - Backtest multi-outcome events using
outcome_probabilitiesper snapshot. - Track how confidence and liquidity metrics evolve as an event approaches resolution.
Notes
- On Event History, prefer bounded time windows (
captured_fromandcaptured_to) for predictable page sizes. - Probability and score scales follow the Kalshi Search API conventions.