Skip to main content

Overview

Markets are the core data model in V2. Each market represents a type of bet (moneyline, spread, total, player props, etc.) with participants, lines, and prices from each sportsbook.

Default Market IDs

When you call event endpoints without specifying market_ids, the API defaults to 1,2,3:
Market IDNameDescription
1MoneylineWinner of the game. Two-way for most sports, three-way (includes draw) for soccer.
2Point SpreadHandicap/spread betting. The favorite must win by more than the spread.
3Total (Over/Under)Combined score of both teams. Bet over or under the posted number.
To get player props, team totals, or other market types, you must explicitly pass their IDs. For example, market_ids=29 for Player Points or market_ids=94 for Team Totals. See the full Market IDs reference.
For a visual breakdown of how markets, participants, lines, and prices nest together, see the Data Model. For the complete list of market IDs and sport availability, see Market IDs. For delta-based polling of market prices, see the Efficient Polling guide.

Endpoints

Returns every canonical market definition with its ID, name, period info, and whether the line value represents a participant name.This is a reference endpoint — it returns the market catalog, not live prices. Use it to build a mapping of market IDs to display names.
curl "https://therundown.io/api/v2/markets?key=YOUR_API_KEY"

Response fields

FieldDescription
idNumeric market identifier
nameDisplay name (e.g., “Money Line”, “Player Points”)
descriptionLonger description of the market
short_descriptionAbbreviated description
line_value_is_participantWhen true, the line value field is a participant name, not a number
propositionWhether this is a proposition/player prop market
period_idPeriod this market applies to (see Period IDs)
live_variant_idMarket ID of the corresponding live/in-play variant, if any
updated_atWhen the market definition was last updated

Example Response

[
  {
    "id": 1,
    "name": "Money Line",
    "description": "Pick the winner of the game",
    "short_description": "Winner",
    "line_value_is_participant": false,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 41,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 2,
    "name": "Point Spread",
    "description": "Handicap betting on the margin of victory",
    "short_description": "Spread",
    "line_value_is_participant": false,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 42,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 3,
    "name": "Total Over/Under",
    "description": "Combined score of both teams",
    "short_description": "Total",
    "line_value_is_participant": false,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 43,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 29,
    "name": "Player Points",
    "description": "Player points scored in the game",
    "short_description": "Points",
    "line_value_is_participant": true,
    "proposition": true,
    "period_id": 0,
    "live_variant_id": 90,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 94,
    "name": "Team Total",
    "description": "Total points scored by a single team",
    "short_description": "Team Total",
    "line_value_is_participant": true,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 96,
    "updated_at": "2025-01-15T12:00:00Z"
  }
]
Returns market line price changes (new, updated, removed) since the specified last_id. This is the most efficient way to keep your odds data up to date via polling.

Parameters

ParameterTypeRequiredDescription
last_idqueryYesInteger cursor. Use 0 for initial fetch, then pass the highest ID from the previous response.
sport_idqueryNoFilter by sport ID
affiliate_idsqueryNoComma-separated sportsbook IDs
market_idsqueryNoComma-separated market IDs
event_idqueryNoFilter by event ID
limitqueryNoMax results (default 1000, max 5000)
curl "https://therundown.io/api/v2/markets/delta?key=YOUR_API_KEY&last_id=0&sport_id=4&market_ids=1,2,3"

Example Response

{
  "meta": {
    "delta_last_id": "584012",
    "count": 3,
    "has_more": false
  },
  "deltas": [
    {
      "id": 584010,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_id": 2,
      "market_name": "Point Spread",
      "participant_id": 51,
      "participant_type": "TYPE_TEAM",
      "participant_name": "Cleveland Cavaliers",
      "line": "-4.5",
      "price": "-110",
      "previous_price": "-105",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-26T18:45:30Z"
    },
    {
      "id": 584011,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_id": 1,
      "market_name": "Moneyline",
      "participant_id": 56,
      "participant_type": "TYPE_TEAM",
      "participant_name": "New York Knicks",
      "line": "",
      "price": "125",
      "previous_price": "120",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-26T18:45:32Z"
    },
    {
      "id": 584012,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_id": 3,
      "market_name": "Total Over/Under",
      "participant_id": 0,
      "participant_type": "TYPE_RESULT",
      "participant_name": "Over",
      "line": "224.5",
      "price": "-108",
      "previous_price": "-110",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-26T18:45:35Z"
    }
  ]
}
Returns the price history for specific market line prices. You need the market_line_price_id values from a prior event or delta response.

Parameters

ParameterTypeRequiredDescription
market_line_price_idsqueryYesComma-separated IDs (max 50)
fromqueryNoStart time (RFC3339 format)
toqueryNoEnd time (RFC3339 format)
limitqueryNoMax results (default 1000, max 5000)
curl "https://therundown.io/api/v2/markets/history?key=YOUR_API_KEY&market_line_price_ids=12345,67890&limit=500"

Example Response

{
  "meta": {
    "count": 5
  },
  "history": [
    {
      "id": 90001,
      "market_line_price_id": 12345,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 51,
      "market_id": 2,
      "line": "-3.5",
      "price": "-110",
      "previous_price": "",
      "change_type": "new",
      "closed_at": "",
      "updated_at": "2026-02-24T14:00:00Z"
    },
    {
      "id": 90002,
      "market_line_price_id": 12345,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 51,
      "market_id": 2,
      "line": "-3.5",
      "price": "-115",
      "previous_price": "-110",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-25T18:30:00Z"
    },
    {
      "id": 90003,
      "market_line_price_id": 12345,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 51,
      "market_id": 2,
      "line": "-4.5",
      "price": "-110",
      "previous_price": "-115",
      "change_type": "line_change",
      "closed_at": "",
      "updated_at": "2026-02-26T01:15:00Z"
    },
    {
      "id": 90004,
      "market_line_price_id": 67890,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 56,
      "market_id": 1,
      "line": "",
      "price": "110",
      "previous_price": "",
      "change_type": "new",
      "closed_at": "",
      "updated_at": "2026-02-24T14:00:00Z"
    },
    {
      "id": 90005,
      "market_line_price_id": 67890,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 56,
      "market_id": 1,
      "line": "",
      "price": "122",
      "previous_price": "110",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-25T22:00:00Z"
    }
  ]
}
Returns participants (teams, players, or result types like Over/Under) for specified markets and events. Useful for resolving participant IDs to names.

Parameters

ParameterTypeRequiredDescription
market_idsqueryNoComma-separated market IDs
event_idqueryNoFilter by event ID
curl "https://therundown.io/api/v2/markets/participants?key=YOUR_API_KEY&event_id=EVENT_ID&market_ids=29"

Example Response

{
  "participants": [
    {
      "id": 70001,
      "market_event_id": 28401,
      "participant_id": 2005,
      "participant_type": "TYPE_PLAYER",
      "participant_name": "Donovan Mitchell",
      "updated_at": "2026-02-26T12:00:00Z"
    },
    {
      "id": 70002,
      "market_event_id": 28401,
      "participant_id": 2010,
      "participant_type": "TYPE_PLAYER",
      "participant_name": "Jalen Brunson",
      "updated_at": "2026-02-26T12:00:00Z"
    },
    {
      "id": 70003,
      "market_event_id": 28401,
      "participant_id": 51,
      "participant_type": "TYPE_TEAM",
      "participant_name": "Cleveland Cavaliers",
      "updated_at": "2026-02-26T12:00:00Z"
    },
    {
      "id": 70004,
      "market_event_id": 28401,
      "participant_id": 0,
      "participant_type": "TYPE_RESULT",
      "participant_name": "Over",
      "updated_at": "2026-02-26T12:00:00Z"
    }
  ]
}
Returns the list of market definitions (not prices) available for a specific event. Use this to discover which markets are offered before requesting prices.

Parameters

ParameterTypeRequiredDescription
eventIDpathYesCanonical V2 event ID from the event_id field
participant_idsqueryNoFilter by participant IDs
participant_typequeryNoFilter by participant type
curl "https://therundown.io/api/v2/events/EVENT_ID/markets?key=YOUR_API_KEY"

Example Response

Returns the same market definition schema as GET /api/v2/markets, filtered to the markets available for this event.
[
  {
    "id": 1,
    "name": "Money Line",
    "description": "Pick the winner of the game",
    "short_description": "Winner",
    "line_value_is_participant": false,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 41,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 2,
    "name": "Point Spread",
    "description": "Handicap betting on the margin of victory",
    "short_description": "Spread",
    "line_value_is_participant": false,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 42,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 3,
    "name": "Total Over/Under",
    "description": "Combined score of both teams",
    "short_description": "Total",
    "line_value_is_participant": false,
    "proposition": false,
    "period_id": 0,
    "live_variant_id": 43,
    "updated_at": "2025-01-15T12:00:00Z"
  },
  {
    "id": 29,
    "name": "Player Points",
    "description": "Player points scored in the game",
    "short_description": "Points",
    "line_value_is_participant": true,
    "proposition": true,
    "period_id": 0,
    "live_variant_id": 90,
    "updated_at": "2025-01-15T12:00:00Z"
  }
]
Returns time-series price history for all markets on an event. Supports filtering by market, affiliate, and time range.

Parameters

ParameterTypeRequiredDescription
eventIDpathYesCanonical V2 event ID from the event_id field
market_idsqueryNoComma-separated market IDs
affiliate_idsqueryNoComma-separated sportsbook IDs
fromqueryNoStart time (RFC3339)
toqueryNoEnd time (RFC3339)
limitqueryNoMax results (default 1000, max 5000)
curl "https://therundown.io/api/v2/events/EVENT_ID/markets/history?key=YOUR_API_KEY&market_ids=1,2,3&affiliate_ids=19"

Example Response

{
  "meta": {
    "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
    "count": 3
  },
  "history": [
    {
      "id": 80001,
      "market_line_price_id": 12345,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 51,
      "market_id": 1,
      "line": "",
      "price": "-130",
      "previous_price": "",
      "change_type": "new",
      "closed_at": "",
      "updated_at": "2026-02-24T14:00:00Z"
    },
    {
      "id": 80002,
      "market_line_price_id": 12345,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 51,
      "market_id": 1,
      "line": "",
      "price": "-140",
      "previous_price": "-130",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-25T09:30:00Z"
    },
    {
      "id": 80003,
      "market_line_price_id": 12345,
      "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
      "sport_id": 4,
      "affiliate_id": 19,
      "market_participant_id": 51,
      "market_id": 1,
      "line": "",
      "price": "-145",
      "previous_price": "-140",
      "change_type": "price_change",
      "closed_at": "",
      "updated_at": "2026-02-26T16:20:00Z"
    }
  ]
}
Returns time-series price data suitable for charting line movement on a single market. More granular than the general history endpoint.

Parameters

ParameterTypeRequiredDescription
eventIDpathYesCanonical V2 event ID from the event_id field
marketIDpathYesMarket ID (e.g., 1 for Moneyline)
participant_idqueryNoFilter by participant ID
affiliate_idsqueryNoComma-separated sportsbook IDs
linequeryNoFilter by line value
fromqueryNoStart time (RFC3339)
toqueryNoEnd time (RFC3339)
curl "https://therundown.io/api/v2/events/EVENT_ID/markets/1/history?key=YOUR_API_KEY&affiliate_ids=19"

Example Response

The chart-optimized response groups data points into series keyed by affiliate ID. Each point uses shorthand fields: t (timestamp), p (price), and c (closed_at, empty string if still active).
{
  "meta": {
    "event_id": "401584701-d1f2-43e7-b5a6-9c8d7e6f5a4b",
    "market_id": 2,
    "market_name": "Point Spread"
  },
  "series": {
    "19": {
      "affiliate_id": 19,
      "affiliate_name": "DraftKings",
      "data": [
        { "t": "2026-02-24T14:00:00Z", "p": "-3.5 -110", "c": "" },
        { "t": "2026-02-25T09:15:00Z", "p": "-4.5 -110", "c": "" },
        { "t": "2026-02-26T16:30:00Z", "p": "-4.5 -108", "c": "" }
      ]
    }
  }
}

Available Markets by Sport and Date

You can also discover which markets are available for a sport on a given date:
curl "https://therundown.io/api/v2/sports/markets/2026-02-26?key=YOUR_API_KEY"

Market Data Model

Each market in an event response follows this structure:
{
  "id": 28401,
  "market_id": 1,
  "period_id": 0,
  "name": "Moneyline",
  "market_description": "Pick the winner of the game",
  "participants": [
    {
      "id": 51,
      "type": "TYPE_TEAM",
      "name": "Cleveland Cavaliers",
      "lines": [
        {
          "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
          "value": "",
          "prices": {
            "19": { "id": "194920001", "price": -145, "is_main_line": true, "updated_at": "2026-02-26T18:30:00Z" }
          }
        }
      ]
    }
  ]
}
The prices object is keyed by affiliate_id (sportsbook). A price value of 0.0001 indicates the line is off the board.