GET Brackets by Season ID
The Tournament Brackets endpoint provides a structured view of knockout stage tournament brackets, making it easy to display elimination rounds, progression paths, and matchup hierarchies in your application.
Available for: Knockout stages only (stages with type_id: 224) with placeholder and match numbers available.
Use Cases: World Cup
Tournament brackets organise knockout fixtures into a tree structure, showing how winners advance through rounds until a champion is crowned. This endpoint automatically structures the data with fixture progression paths (edges) that define how teams move through the bracket.
When to use this endpoint
Use the brackets endpoint when you need to:
Display a complete knockout bracket visualisation
Show tournament progression from Round of 32 โ Round of 16 โ Quarter-finals โ Semi-finals โ 3rd Place โ Final
Track which teams advance to which matches based on match outcomes
Build interactive bracket interfaces with automatic progression logic
Knockout Stages Only
This endpoint only returns data for knockout stages (elimination rounds). Group stage fixtures should be accessed via the standard fixtures endpoint.
Endpoint
GET https://api.sportmonks.com/v3/football/seasons/{season_id}/bracketsParameters
season_id
integer
Yes
The season ID (e.g., 26618 for World Cup 2026)
api_token
string
Yes
Your API authentication token
include
string
No
Related data to include (see Includes section)
Example Request
Response Structure
The response contains two main components: stages (fixtures organised by knockout round) and edges (progression paths between fixtures).
Response Fields
Stages Array
stage_id
integer
Unique stage identifier
stage_name
string
Name of the knockout round (e.g., "Semi-finals", "Final")
fixtures
array
All fixtures in this knockout round
Fixture Object
id
integer
Unique fixture ID
stage_id
integer
Stage this fixture belongs to
name
string
Fixture name (shows teams/progression)
starting_at
string
Match kickoff time (UTC)
details
string
Match number identifier (e.g., "Match 73")
placeholder
boolean
true if teams are not yet determined
state_id
integer
Match state (1=Not Started, 5=Finished, etc.)
venue_id
integer
Stadium identifier
leg
string
"1/1" for single-leg knockout matches
result_info
string/null
Result description (e.g., "Won after penalties")
Edges Array
The edges array defines progression paths between fixtures:
id
integer
Unique edge identifier
season_id
integer
Season identifier
child_fixture_id
integer
Fixture that receives the advancing team
child_slot
string
Position in child fixture ("home" or "away")
parent_fixture_id
integer
Fixture that determines the advancing team
parent_outcome
string
Which team advances ("winner" or "loser")
Understanding Edges
Edges create the bracket tree structure. Each edge says: "The winner/loser of Match X goes to the home/away slot of Match Y."
For example, the Final receives the winners of both Semi-finals, whilst the 3rd Place Final receives the losers of both Semi-finals.
Understanding bracket structure
Stages organisation
Stages are returned in the order they appear in the response (not sorted by chronological order):
Placeholder Fixtures
Before teams are determined, fixtures have placeholder: true and descriptive names:
After matches are played and teams advance:
Always check placeholder before displaying team information.
Progression Paths via Edges
Edges define how teams move through the bracket:
Example: Final receives winners from both Semi-finals
Example: 3rd Place Final receives losers from both Semi-finals
Includes
Add includes to get complete fixture data with participants, scores, and match details:
Available Includes
sport round stage group aggregate league seasoncoaches tvStations venue state weatherReport lineups events timeline comments trends statistics periods participants oddspremiumOdds inplayOdds prematchNews postmatchNews metadata sidelinedpredictions referees formations ballCoordinates scores xGFixture pressure expectedLineups
Example with full includes
Bracket visualisation
The brackets endpoint returns data that can be visualised as a tournament tree:

Frontend Examples
Common use cases
1. Display complete tournament bracket
Fetch all knockout matches organised by stage:
2. Find Where a Team Advances
Use edges to determine the next match for a winner:
3. Build bracket tree structure
Organise matches into a hierarchical tree:
4. Filter by stage
Display only specific knockout rounds:
5. Check Match Status
Identify which matches have been played:
Best Practices
Caching strategy
Cache bracket structure for 1 hour when no matches are live
Reduce to 5 minutes during live knockout matches
Cache permanently once tournament is complete {% endhint %}
Check placeholder status
Always verify fixture.placeholder before displaying team names. Placeholder fixtures indicate matches where participants aren't yet determined. {% endhint %}
Optimise includes
Only request includes you'll display. For a simple bracket view, stages.fixtures.participants and stages.fixtures.state are sufficient. Add stages.fixtures.scores for live updates. {% endhint %}
Recommended includes
Minimal bracket view:
Full match details:
Live updates:
Error Handling
No knockout stages
If a season has no knockout stages, the response will have empty arrays:
Solution: Verify the season has knockout stages before requesting brackets.
Missing edges
If edges data is incomplete, bracket progression cannot be determined:
Solution: Contact support if edges are missing for a tournament that has defined progression rules.
Rate limits
The brackets endpoint counts against the Fixture entity rate limit:
Standard limit: 3,000 requests per hour
Monitor: Check
x-ratelimit-remainingheaderBest practice: Cache bracket data to reduce API calls
Related endpoints
Fixtures - Individual match data
Seasons - Tournament structure
Stages - Stage information
Standings - Group stage tables
New Feature
The Tournament Brackets endpoint is a new addition to Sportmonks API v3. Feedback and suggestions are welcome at [email protected].
Last updated
Was this helpful?