Skip to main content
GET
/
feeds
/
catalog
Feed catalog
curl --request GET \
  --url https://api.oddpool.com/feeds/catalog

Documentation Index

Fetch the complete documentation index at: https://docs.oddpool.com/llms.txt

Use this file to discover all available pages before exploring further.

List all available feed events, grouped by feed vertical. Returns event keys, venues, outcome counts, and pre-built channel names.

Parameters

feed
string
default:"all"
Filter by feed vertical: macro, crypto, or weather.
status
string
default:"all"
Filter by event status: active, upcoming, or resolved. Useful for crypto feeds where hundreds of short-lived events accumulate — use status=active to get only live events.
expand
string
default:""
Opt-in expansions, comma-separated. Supported values:
  • channels — adds a ready-to-paste subscribe_all array to each event listing every channel you’d subscribe to.
  • outcomes — replaces the integer outcomes count with the full outcome list (same shape as the single-event endpoint).
  • * — all expansions.
The default response stays compact for browsing; agents subscribing to data should use expand=channels to skip the second API call.

Example

# All active crypto events
curl -H "X-API-Key: oddpool_..." \
  "https://api.oddpool.com/feeds/catalog?feed=crypto&status=active"

# Macro events with ready-to-paste subscribe arrays
curl -H "X-API-Key: oddpool_..." \
  "https://api.oddpool.com/feeds/catalog?feed=macro&expand=channels"

Response (default)

{
  "feeds": {
    "macro": {
      "description": "Cross-venue macro economic prediction markets",
      "events": [
        {
          "event_key": "fomc-2026-06-17",
          "title": "FOMC June 2026",
          "type": "fomc",
          "event_date": "2026-06-17",
          "release_at": "2026-06-17T17:59:00+00:00",
          "status": "active",
          "venues": ["kalshi", "polymarket"],
          "outcomes": 5,
          "channels": {
            "dist": "dist:fomc-2026-06-17",
            "snapshot": "snapshot:fomc-2026-06-17",
            "book": "book:fomc-2026-06-17:{outcome_key}",
            "trade": "trade:fomc-2026-06-17:{outcome_key}"
          }
        }
      ]
    }
  }
}
FieldDescription
event_keyUnique identifier for the event. Use this in channel subscriptions.
event_dateCalendar date of the release (YYYY-MM-DD).
release_atFull ISO 8601 timestamp with timezone for the actual release moment. CPI is 8:30 ET (12:30 UTC), FOMC is 14:00 ET, etc. Use this for scheduling and timing logic.
venuesWhich prediction market venues have outcomes configured for this event. Caveat: this reflects “configured” not “currently quoting”. An event listing both venues may have one quiet venue with no live book.
outcomesNumber of outcomes (default) OR full outcome array (with expand=outcomes).
enrichmentExternal data source attached to every message. Only present for enriched feeds ("binance" for crypto). Macro events do not have this field.
channels.distEvent-level — subscribe to this single channel to get the joint cross-venue distribution for all outcomes. Free tier.
channels.snapshotEvent-level — full state reset every 60s. Pro tier.
channels.book / channels.tradeTemplates with {outcome_key} placeholder. Per-outcome channels — replace the placeholder with a value from expand=outcomes or the single-event endpoint. Pro tier.

Response with ?expand=channels

Adds subscribe_all to each event — a ready-to-paste array of every channel for that event:
{
  "event_key": "fomc-2026-06-17",
  "channels": {
    "dist": "dist:fomc-2026-06-17",
    "snapshot": "snapshot:fomc-2026-06-17",
    "book": "book:fomc-2026-06-17:{outcome_key}",
    "trade": "trade:fomc-2026-06-17:{outcome_key}",
    "subscribe_all": [
      "dist:fomc-2026-06-17",
      "snapshot:fomc-2026-06-17",
      "book:fomc-2026-06-17:cut_50",
      "book:fomc-2026-06-17:cut_25",
      "book:fomc-2026-06-17:hold",
      "book:fomc-2026-06-17:hike_25",
      "book:fomc-2026-06-17:hike_50",
      "trade:fomc-2026-06-17:cut_50",
      "trade:fomc-2026-06-17:cut_25",
      "trade:fomc-2026-06-17:hold",
      "trade:fomc-2026-06-17:hike_25",
      "trade:fomc-2026-06-17:hike_50"
    ]
  }
}
Use subscribe_all directly as the channels field of your WebSocket subscribe action. No more N+1 lookup for outcome keys.

Response with ?expand=outcomes

Replaces the integer outcomes count with the full outcome array (same shape as the single-event endpoint):
{
  "event_key": "fomc-2026-06-17",
  "outcome_count": 5,
  "outcomes": [
    {
      "outcome_key": "hold",
      "label": "Fed maintains rate",
      "venues": ["kalshi", "polymarket"],
      "channels": {
        "book": "book:fomc-2026-06-17:hold",
        "trade": "trade:fomc-2026-06-17:hold"
      }
    },
    "..."
  ]
}
When expand=outcomes is set, both outcomes (array) and outcome_count (number) are returned. Without expand, only outcomes (number) is returned.

Get single event

GET https://api.oddpool.com/feeds/catalog/{event_key}
Get a single event with its full outcome list, ready-to-paste subscribe array, and per-outcome channel names.

Example

curl -H "X-API-Key: oddpool_..." \
  "https://api.oddpool.com/feeds/catalog/fomc-2026-06-17"

Response

{
  "event_key": "fomc-2026-06-17",
  "title": "FOMC June 2026",
  "type": "fomc",
  "feed": "macro",
  "event_date": "2026-06-17",
  "release_at": "2026-06-17T17:59:00+00:00",
  "status": "active",
  "venues": ["kalshi", "polymarket"],
  "outcome_count": 5,
  "outcomes": [
    {
      "outcome_key": "hold",
      "label": "Fed maintains rate",
      "venues": ["kalshi", "polymarket"],
      "channels": {
        "book": "book:fomc-2026-06-17:hold",
        "trade": "trade:fomc-2026-06-17:hold"
      }
    },
    {
      "outcome_key": "cut_25",
      "label": "Cut 25bps",
      "venues": ["kalshi", "polymarket"],
      "channels": {
        "book": "book:fomc-2026-06-17:cut_25",
        "trade": "trade:fomc-2026-06-17:cut_25"
      }
    }
  ],
  "channels": {
    "dist": "dist:fomc-2026-06-17",
    "snapshot": "snapshot:fomc-2026-06-17",
    "book": "book:fomc-2026-06-17:{outcome_key}",
    "trade": "trade:fomc-2026-06-17:{outcome_key}",
    "subscribe_all": [
      "dist:fomc-2026-06-17",
      "snapshot:fomc-2026-06-17",
      "book:fomc-2026-06-17:hold",
      "...": "..."
    ]
  }
}

Decode event types

GET https://api.oddpool.com/feeds/event-types
Returns a stable dictionary mapping each event_type token (e.g., cpi, fomc, nfp) to human-readable label, description, publishing agency, typical release time + timezone, source URL, and category. Use this to interpret event_type values without prior macro-economic knowledge.

Example

curl -H "X-API-Key: oddpool_..." "https://api.oddpool.com/feeds/event-types"

Response

{
  "event_types": {
    "cpi": {
      "label": "Consumer Price Index",
      "description": "US headline inflation. Measures the month-over-month or year-over-year change in a basket of consumer goods and services.",
      "agency": "Bureau of Labor Statistics",
      "release_local_time": "08:30",
      "timezone": "America/New_York",
      "release_url": "https://www.bls.gov/cpi/",
      "category": "inflation",
      "vertical": "macro"
    },
    "fomc": {
      "label": "FOMC Rate Decision",
      "description": "Federal Open Market Committee policy decision on the federal funds rate target range. Eight scheduled meetings per year.",
      "agency": "Federal Reserve",
      "release_local_time": "14:00",
      "timezone": "America/New_York",
      "release_url": "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm",
      "category": "monetary_policy",
      "vertical": "macro"
    }
  }
}
FieldDescription
labelHuman-readable name. Use in dashboards.
descriptionOne-paragraph plain-English explanation.
agencyWho publishes the data.
release_local_timeTime-of-day at which releases typically drop, in the named timezone. null for continuous markets (crypto).
timezoneIANA timezone identifier for release_local_time.
categoryHigher-level grouping (inflation, employment, growth, monetary_policy, markets, crypto, weather).
verticalWhich feed= filter this type belongs to.