Skip to main content
Returns every pn_market_type code the books-relayer currently polls, annotated with human-readable display name, category (moneyline/spread/total/player-prop/etc.), and the sports each market applies to. Use this to find the exact pn_market_type string to pass to Game Markets, or filter by sport to see only markets relevant to a category you care about.
# everything
curl -s "https://books.polynode.dev/v1/market-types?key=pn_live_YOUR_KEY"

# only basketball markets
curl -s "https://books.polynode.dev/v1/market-types?sport=basketball&key=pn_live_YOUR_KEY"
sport
string
Filter by sport_category. Only returns markets tagged for the given sport (plus universal markets marked *).
key
string
required
Your API key.

Response

{
  "count": 12,
  "market_types": [
    {
      "pn_code": "moneyline",
      "display_name": "Moneyline",
      "pn_category": "moneyline",
      "applicable_sports": ["*"],
      "sport_category_in_upstream_map": "*"
    },
    {
      "pn_code": "spreads",
      "display_name": "Point Spread",
      "pn_category": "spread",
      "applicable_sports": ["nba", "wnba", "nfl", "cfb", "cbb", "ncaab"],
      "sport_category_in_upstream_map": "basketball"
    },
    {
      "pn_code": "totals",
      "display_name": "Total (Over/Under)",
      "pn_category": "total",
      "applicable_sports": ["*"],
      "sport_category_in_upstream_map": "basketball"
    },
    {
      "pn_code": "points",
      "display_name": "Player Points",
      "pn_category": "player-prop",
      "applicable_sports": ["nba", "wnba", "cbb", "cwbb", "ncaab"],
      "sport_category_in_upstream_map": "basketball"
    }
  ]
}

Fields

FieldTypeDescription
countintegerNumber of market types returned.
market_types[].pn_codestringThe code you pass as the market identifier everywhere. Use this exact string when matching Game Markets responses.
market_types[].display_namestringHuman label (e.g. "Player Points", "Moneyline", "Anytime Touchdown Scorer").
market_types[].pn_categorystringBroad bucket: moneyline, spread, total, player-prop, team-prop, half-period, esports-special, three-way, exact-score, parlay, prop, unknown.
market_types[].applicable_sportsarrayPolynode’s own list of sports this market applies to. ["*"] means universal.
market_types[].sport_category_in_upstream_mapstringThe sport_category key used for market-type coverage (basketball / soccer / football / etc., or * for universal).

Current market types

The books-relayer polls 27 of the 39 mapped market types. The core set:

Universal

  • moneyline — who wins the game

Basketball player props

  • points (Player Points) — NBA/WNBA/NCAA
  • rebounds (Player Rebounds)
  • assists (Player Assists)
  • threes (Player Made Threes)
  • double_doubles (Player Double Double)
  • assists_points_rebounds (Pts+Reb+Ast Combined)

Team totals + spreads (sport-aware)

  • spreads → point spread (NBA/NFL), Asian handicap (soccer), puck line (NHL), run line (MLB)
  • totals → total points (NBA/NFL), total goals (soccer/NHL), total runs (MLB), total games (tennis)

First-half markets

  • first_half_moneyline
  • first_half_spreads
  • first_half_totals

Soccer-specific

  • double_chance, both_teams_to_score, correct_score, soccer_anytime_goalscorer, soccer_halftime_result, total_goals, total_corners

Football player yards + TDs

  • passing_yards, rushing_yards, receiving_yards, anytime_touchdowns

Baseball

  • nrfi (No Run First Inning)

Tennis

  • tennis_set_handicap, tennis_match_totals

MMA/UFC

  • ufc_method_of_victory, ufc_go_the_distance

Next step

Once you know which market type you want, see what games have it via: