A match follows a specific life cycle described below.
The match has not began yet. You can check its
scheduled_at field to know when it's supposed to start. The
begin_at field stays equal to the
scheduled_at field, as long as the match has not started. Then,
begin_at gets the exact match start timestamp.
status: not_started, scheduled_at: scheduled_at, begin_at: scheduled_at, end_at: null
If the match has been rescheduled
Then you can still look at the
scheduled_at field to update your calendar. Moreover, you can check the
original_scheduled_at field, whose value never changes, as well as the
rescheduled flag to know if the match was rescheduled.
Example of a match rescheduling scenario
A match can be rescheduled several times according to the Tournament Organizer needs. Once the
rescheduled flag has been set to
true, it won't change anymore.
A match goes in Running status when the match starts. If the match is flagged as Live supported, it will appear in the
/lives endpoint and be available on websocket channels.
status: running, scheduled_at: scheduled_at, begin_at: begin_at, end_at: null
A match goes in Finished status when the match ends. If the match is flagged as
detailed_stats=true, then stats are available in the API.
status: finished, scheduled_at: scheduled_at, begin_at: begin_at, end_at: end_at
Without a winner
A match goes in Canceled status when for various potential reasons it won't be played.
status: canceled, forfeit: false, scheduled_at: scheduled_at, begin_at: null, end_at: null
A match goes in Forfeit status when for various potential reasons it won't be played, but a winner has been set.
status: canceled, forfeit: true, scheduled_at: scheduled_at, begin_at: null, end_at: null
A match goes in Postponed status when it is postponed to an unknown date. The
scheduled_at field won't change until its next value is known.
Once the new date is announced, the match will be set back to
status: postponed, scheduled_at: scheduled_at, begin_at: begin_at, end_at: null
Example of a match postpone and rescheduling scenario
The only field that changes on a postpone action is the match
status, so that matches stay at their previous
scheduled_at value until a new one is defined.