Sports

Tournament bracket with live cross-provider prices per tie

Builds a tournament bracket for league. Bracket structure and results are sourced from third-party sports-data providers depending on the league. Each tie/match is enriched with live prices from Polymarket, Kalshi (authenticated API), and Predict.fun where a corresponding market can be matched. format=symmetric (default) returns a left/right bracket converging on final, with an optional thirdPlace match and, for format=groups-then-knockout, a groups stage with standings tables. format=left-to-right instead returns all rounds in leftRounds with an empty rightRounds. winner is always null — this endpoint never resolves a champion. Responses are briefly cached.

get/sports/tournament-bracket

Request

  • Base URL
    https://data.kairos.trade
  • Auth
    none required

Query parameters

leaguestring required

League slug, e.g. "ucl" (UEFA Champions League). Must resolve via a known league table.

format'symmetric' | 'left-to-right' | 'groups-then-knockout'

Bracket layout. "symmetric" converges left/right rounds on a final; "left-to-right" is a single linear round list; "groups-then-knockout" adds a group stage.

Response

Tournament bracket structure with live provider prices attached per tie.

winnerunknown required

Example response

{
  "leftRounds": [
    {
      "name": "Quarter-finals",
      "shortName": "QF",
      "matches": [
        {
          "id": "ucl-qf-1",
          "teams": [
            {
              "name": "Real Madrid",
              "shortName": "RMA"
            }
          ],
          "subtitle": "Apr 9, 2026",
          "matchday": 5,
          "scores": [
            2,
            1
          ],
          "aggregateScores": [
            3,
            2
          ]
        }
      ]
    }
  ],
  "rightRounds": [
    {
      "name": "Quarter-finals",
      "shortName": "QF",
      "matches": [
        {
          "id": "ucl-qf-1",
          "teams": [
            {
              "name": "Real Madrid",
              "shortName": "RMA"
            }
          ],
          "subtitle": "Apr 9, 2026",
          "matchday": 5,
          "scores": [
            2,
            1
          ],
          "aggregateScores": [
            3,
            2
          ]
        }
      ]
    }
  ],
  "final": {
    "id": "ucl-qf-1",
    "teams": [
      {
        "name": "Real Madrid",
        "shortName": "RMA"
      }
    ],
    "subtitle": "Apr 9, 2026",
    "matchday": 5,
    "scores": [
      2,
      1
    ],
    "aggregateScores": [
      3,
      2
    ]
  },
  "thirdPlace": {
    "id": "ucl-qf-1",
    "teams": [
      {
        "name": "Real Madrid",
        "shortName": "RMA"
      }
    ],
    "subtitle": "Apr 9, 2026",
    "matchday": 5,
    "scores": [
      2,
      1
    ],
    "aggregateScores": [
      3,
      2
    ]
  },
  "groups": [
    {
      "name": "Group A",
      "shortName": "A",
      "table": [
        {
          "team": {
            "name": "Real Madrid",
            "shortName": "RMA"
          }
        }
      ],
      "matches": [
        {
          "id": "ucl-qf-1",
          "teams": [
            {
              "name": "Real Madrid",
              "shortName": "RMA"
            }
          ],
          "subtitle": "Apr 9, 2026",
          "matchday": 5,
          "scores": [
            2,
            1
          ],
          "aggregateScores": [
            3,
            2
          ]
        }
      ]
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.