Endpoints

/

Get an object containing the URLs for the various parts of the competition interface.

{
    "arenas": "...",
    "teams": "...",
    "corners": "...",
    "config": "...",
    "state": "...",
    "matches": "..."
}

/arenas

Get an object containing all arenas.

{
    "arenas": {
        "...": "..."
    }
}

The arena objects returned are in the same format as those described below. The keys of the arenas mapping are the names of the arenas.

/arenas/ name

Get information about an arena.

{
    "name": "...",
    "display_name": "...",
    "colour": "...",
    "get": "..."
}

If present, the colour key contains the colour of the arena in HTML hash format (eg: #00ff00).

/teams

Get an object containing all teams.

{
    "teams": {
        "...": "..."
    }
}

The team objects returned are in the same format as those described below. The keys of the teams mapping are the TLAs of the teams.

/teams/ tla

Get information about a team.

{
    "name": "...",
    "get": "...",
    "tla": "...",
    "league_pos": "...",
    "location": {
      "get": "...",
      "name": "..."
    },
    "rookie": "...",
    "scores": {
        "game": "...",
        "league": "..."
    }
}

/teams/ tla /image

Get the team image.

/corners

Get an object containing all corners.

{
    "corners": {
        "...": "..."
    }
}

The corner objects returned are in the same format as those described below. The keys of the corners mapping are the numbers of the corners.

/corners/ number

Get information about a corner.

{
    "number": "...",
    "get": "...",
    "colour": "..."
}

/current

Get information about parts of the competition state which change with the current time.

{
    "delay": "...",
    "matches": "...",
    "staging_matches": "...",
    "shepherding_matches": "...",
    "time": "..."
}

The delay value is the amount of delay in seconds currently active. Note that this value is only useful during match periods (it will otherwise be 0).

The matches key is a list of the matches which are currently being played, as measured by the current time falling between the start and end of their slot. They are presented in the same format as the /matches endpoint uses.

The staging_matches key is a list of the matches which are currently being staged, as measured by the current time falling between the open and close values of their staging times. They are presented in the same format as the /matches endpoint uses.

The shepherding_matches key is a list of the matches which are currently being shepherded for, as measured by the current time falling between the earliest shepherding signal value and time when staging closes. They are presented in the same format as the /matches endpoint uses.

The time key is the current time on the server.

/state

Get the latest commit that the competition is working with.

{
    "state": "..."
}

/config

Get general information about the configuration of the competition and the host.

{
    "match_slots": {
        "pre": "...",
        "match": "...",
        "post": "...",
        "total": "..."
    }
}

/locations

Get information about the locations within the venue.

{
    "locations": {
        "..." : "..."
    }
}

The location objects returned are in the same format as those described below. The keys of the locations mapping are the canonical identifier of each location.

/locations/name

Get information about a named location within the venue.

{
    "display_name": "...",
    "get": "...",
    "teams": [ "..." ],
    "shepherds": {
        "name": "...",
        "colour": "..."
    }
}

/matches

Get a load of matches.

You can specify which matches are returned with various queries.

type

The type of match.

arena

The arena the match is in.

num

The number of the match.

game_start_time

The start time of the game.

game_end_time

The end time of the game.

slot_start_time

The start time of the timeslot allocated to the game.

slot_end_time

The end time of the timeslot allocated to the game.

Each parameter can be taken in the form of: <start>..<end>, ..<end>, <start>.. and <value>.

You can also limit the number of matches returned by passing a value to the limit query parameter. This can be both a positive and negative integer. Positive limits start from the first match and work forwards, whilst negative limits start from the last match and work backwards.

{
    "last_scored": "...",
    "matches": [
        {
            "arena": "...",
            "display_name": "Match ...",
            "num": "...",
            "scores": {
                "game": {
                    "...": "...",
                    "...": "...",
                    "...": "...",
                    "...": "..."
                },
                "league": {
                    "...": "...",
                    "...": "...",
                    "...": "...",
                    "...": "..."
                },
                "normalised": {
                    "...": "...",
                    "...": "...",
                    "...": "...",
                    "...": "..."
                },
                "ranking": {
                    "...": "...",
                    "...": "...",
                    "...": "...",
                    "...": "..."
                }
            },
            "teams": [
                "...", "...", "...", "..."
            ],
            "times": {
                "game": {
                    "end": "...",
                    "start": "..."
                },
                "slot": {
                    "end": "...",
                    "start": "..."
                },
                "staging": {
                    "opens": "...",
                    "closes": "...",
                    "signal_teams": "...",
                    "signal_shepherds": {
                        "...": "...",
                    }
                }
            },
            "type": "..."
        }
    ]
}

last_scored contains the same value as in the following endpoint. Any dates are in ISO 8601 format.

Only one of the league or normalised sub-keys of scores will be present, though they contain the same data. league will be present for league matches while normalised will be present for knockout matches.

Notably, teams which are disqualified or no-show from a match will have a normalised (league) score of zero but will still have a position value.

The staging deadline is available in times.staging.closes while the times.staging.signal_shepherds value is when shepherds should start looking for teams although this isn’t a strict value.

/matches/last_scored

{
    "last_scored": "..."
}

last_scored contains the highest match number which has a score assigned, but may be null if no scores have yet been entered.

/periods

Get a list of match periods. A match period is a block of time during which a collection of matches (of the same type) occur. For example, the first morning of the first day of the competition might have one period, and the Knockouts might be another.

{
    "periods": [
        {
          "type": "...",
          "description": "A description of the period for humans",
          "end_time": "...",
          "matches": {
            "first_num": "...",
            "last_num": "..."
          },
          "max_end_time": "...",
          "start_time": "..."
        }
    ]
}

The matches field will only be present if there are matches there are matches in this period.

/knockout

Get a list of rounds which make up the knockouts. Each round is expressed as a list of matches which make up that round. Matches are expressed using the same format as the /matches endpoint.

/tiebreaker

Get the tiebreaker match, or raise a 404 error if one does not exist. The match is expressed in the same format as the /matches endpoint.

{
    "tiebreaker": "..."
}