Quickstart notes
Read the full market list for one event
The quickstart reads the money line. Every event also carries spreads, totals and team totals across periods. How to list them all in Python.
The quickstart reads the money line, because that is the fastest proof the pipeline works. Every event on the board carries much more: spreads and totals at every handicap, team totals, and the maximum stake on each line, all organized under period keys, as the home page describes the feed's shape, checked 2026-10-16. Listing all of it is a small walk over a known structure.
The structure you are walking
Each event carries a periods object whose keys are periods, with the full match at num_0. Inside each period sit the market objects: money_line, spreads, totals and team totals, each keyed the same way. The spreads and totals repeat per line, so one event can carry many of them, each with its own points value.
The walk is two nested loops: periods on the outside, markets inside, collecting every price with its label.
The walk in Python
for pkey, period in ev.get("periods", {}).items():
ml = period.get("money_line") or {}
for side, price in ml.items():
print(pkey, "money_line", side, price)
for key, market in period.get("spreads", {}).items():
print(pkey, "spread", key, market)
for key, market in period.get("totals", {}).items():
print(pkey, "total", key, market)
The .get calls are doing the safety work: a period without a market type simply yields nothing, which is the right answer on a quiet board.
What to keep and what to skip
You rarely want every line. Decide which market families your product uses before you walk the structure, and filter inside the loop; the same board holds both the main full-match lines and a long tail of alternates. The spreads and totals repeat at every price point, so read the points with the price and keep them together, as the home page lists them, checked 2026-10-16.
If you only need the money line, the Python quickstart's version is the right size, and the walk above is for the day you outgrow it.
The one rule that keeps the walk honest
Never assume a key exists. Periods differ by sport, markets differ by event, and a board that carried team totals yesterday can lack them today. Code that reads with .get and skips what is missing reads every board the same way; code that indexes directly reads one board and breaks on the next.
Periods outside, markets inside, labels attached. The full market list was always in the response; now it is in your table.