@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api The Blue Alliance API v3
@base https://www.thebluealliance.com/api/v3
@version 3.12.1
@auth ApiKey X-TBA-Auth-Key in header
@common_fields {If-None-Match: str # Value of the `ETag` header in the most recently cached response by the client.}
@endpoints 80
@hint download_for_search
@toc district(12), districts(1), event(21), events(3), insights(2), match(4), regional_advancement(2), search_index(1), status(1), team(27), teams(6)

@group district
@endpoint GET /district/{district_abbreviation}/dcmp_history
@desc Gets a list of DCMP events and awards for the given district abbreviation.
@required {district_abbreviation: str # District abbreviation, eg `ne` or `fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_abbreviation}/history
@desc Gets a list of District objects with the given district abbreviation. This accounts for district abbreviation changes, such as MAR to FMA.
@required {district_abbreviation: str # District abbreviation, eg `ne` or `fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_abbreviation}/insights
@desc Gets insights for a given district.
@required {district_abbreviation: str # District abbreviation, eg `ne` or `fim`}
@returns(200) {district_data: map{region_data: any, district_wide_data: any}, team_data: any} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/advancement
@desc Gets a list of advancement information per team in a district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/awards
@desc Gets a list of awards in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/events
@desc Gets a list of events in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/events/keys
@desc Gets a list of event keys for events in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/events/simple
@desc Gets a short-form list of events in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/rankings
@desc Gets a list of team district rankings for the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/teams
@desc Gets a list of `Team` objects that competed in events in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/teams/keys
@desc Gets a list of `Team` objects that competed in events in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /district/{district_key}/teams/simple
@desc Gets a short-form list of `Team` objects that competed in events in the given district.
@required {district_key: str # TBA District Key, eg `2016fim`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group districts
@endpoint GET /districts/{year}
@desc Gets a list of districts and their corresponding district key, for the given year.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group event
@endpoint GET /event/{event_key}
@desc Gets an Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) {key: str, name: str, event_code: str, event_type: int, district: any, city: str?, state_prov: str?, country: str?, start_date: str(date), end_date: str(date), year: int, short_name: str?, event_type_string: str, week: int?, address: str?, postal_code: str?, gmaps_place_id: str?, gmaps_url: str(url)?, lat: num(double)?, lng: num(double)?, location_name: str?, timezone: str?, website: str?, first_event_id: str?, first_event_code: str?, webcasts: [map], division_keys: [str], parent_event_key: str?, playoff_type: int?, playoff_type_string: str?, remap_teams: map?} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/advancement_points
@desc Depending on the type of event (district/regional), this will return either district points or regional CMP points
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/alliances
@desc Gets a list of Elimination Alliances for the given Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/awards
@desc Gets a list of awards from the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/coprs
@desc Gets a set of Event Component OPRs for the given Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/district_points
@desc Gets a list of district points for the Event. These are always calculated, regardless of event type, and may/may not be actually useful.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/insights
@desc Gets a set of Event-specific insights for the given Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/matches
@desc Gets a list of matches for the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/matches/keys
@desc Gets a list of match keys for the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/matches/simple
@desc Gets a short-form list of matches for the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/matches/timeseries
@desc Gets an array of Match Keys for the given event key that have timeseries data. Returns an empty array if no matches have timeseries data.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/oprs
@desc Gets a set of Event OPRs (including OPR, DPR, and CCWM) for the given Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/predictions
@desc Gets information on TBA-generated predictions for the given Event. Contains year-specific information. *WARNING* This endpoint is currently under development and may change at any time.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/rankings
@desc Gets a list of team rankings for the Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/regional_champs_pool_points
@desc For 2025+ Regional events, this will return points towards the Championship qualification pool.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/simple
@desc Gets a short-form Event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) {key: str, name: str, event_code: str, event_type: int, district: any, city: str?, state_prov: str?, country: str?, start_date: str(date), end_date: str(date), year: int} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/team_media
@desc Gets a list of media objects that correspond to teams at this event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/teams
@desc Gets a list of `Team` objects that competed in the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/teams/keys
@desc Gets a list of `Team` keys that competed in the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/teams/simple
@desc Gets a short-form list of `Team` objects that competed in the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /event/{event_key}/teams/statuses
@desc Gets a key-value list of the event statuses for teams competing at the given event.
@required {event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group events
@endpoint GET /events/{year}
@desc Gets a list of events in the given year.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /events/{year}/keys
@desc Gets a list of event keys in the given year.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /events/{year}/simple
@desc Gets a short-form list of events in the given year.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group insights
@endpoint GET /insights/leaderboards/{year}
@desc Gets a list of `LeaderboardInsight` objects from a specific year. Use year=0 for overall.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /insights/notables/{year}
@desc Gets a list of `NotablesInsight` objects from a specific year. Use year=0 for overall.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group match
@endpoint GET /match/{match_key}
@desc Gets a `Match` object for the given match key.
@required {match_key: str # TBA Match Key, eg `2016nytr_qm1`}
@returns(200) {key: str, comp_level: str, set_number: int, match_number: int, alliances: map{red: map{score: int, team_keys: [str], surrogate_team_keys: [str], dq_team_keys: [str]}, blue: map{score: int, team_keys: [str], surrogate_team_keys: [str], dq_team_keys: [str]}}, winning_alliance: str, event_key: str, time: int(int64)?, actual_time: int(int64)?, predicted_time: int(int64)?, post_result_time: int(int64)?, score_breakdown: any, videos: [map]} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /match/{match_key}/simple
@desc Gets a short-form `Match` object for the given match key.
@required {match_key: str # TBA Match Key, eg `2016nytr_qm1`}
@returns(200) {key: str, comp_level: str, set_number: int, match_number: int, alliances: map{red: map{score: int, team_keys: [str], surrogate_team_keys: [str], dq_team_keys: [str]}, blue: map{score: int, team_keys: [str], surrogate_team_keys: [str], dq_team_keys: [str]}}, winning_alliance: str, event_key: str, time: int(int64)?, predicted_time: int(int64)?, actual_time: int(int64)?} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /match/{match_key}/timeseries
@desc Gets an array of game-specific Match Timeseries objects for the given match key or an empty array if not available.
@required {match_key: str # TBA Match Key, eg `2016nytr_qm1`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /match/{match_key}/zebra_motionworks
@desc Gets Zebra MotionWorks data for a Match for the given match key.
@required {match_key: str # TBA Match Key, eg `2016nytr_qm1`}
@returns(200) {key: str, times: [num(double)], alliances: map{red: [map], blue: [map]}} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group regional_advancement
@endpoint GET /regional_advancement/{year}
@desc Gets information about per-team advancement to the FIRST Championship.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /regional_advancement/{year}/rankings
@desc Gets the team rankings in the regional pool for a specific year.
@required {year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group search_index
@endpoint GET /search_index
@desc Gets a large blob of data that is used on the frontend for searching. May change without notice.
@returns(200) {teams: [map], events: [map]} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group status
@endpoint GET /status
@desc Returns API status, and TBA status information.
@returns(200) {current_season: int, max_season: int, is_datafeed_down: bool, down_events: [str], ios: map{min_app_version: int, latest_app_version: int}, android: map{min_app_version: int, latest_app_version: int}, max_team_page: int} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group team
@endpoint GET /team/{team_key}
@desc Gets a `Team` object for the team referenced by the given key.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) {key: str, team_number: int, nickname: str, name: str, school_name: str?, city: str?, state_prov: str?, country: str?, address: str?, postal_code: str?, gmaps_place_id: str?, gmaps_url: str(url)?, lat: num(double)?, lng: num(double)?, location_name: str?, website: str(url)?, rookie_year: int?, motto: str?} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/awards
@desc Gets a list of awards the given team has won.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/awards/{year}
@desc Gets a list of awards the given team has won in a given year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/districts
@desc Gets an array of districts representing each year the team was in a district. Will return an empty array if the team was never in a district.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/event/{event_key}/awards
@desc Gets a list of awards the given team won at the given event.
@required {team_key: str # TBA Team Key, eg `frc254`, event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/event/{event_key}/matches
@desc Gets a list of matches for the given team and event.
@required {team_key: str # TBA Team Key, eg `frc254`, event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/event/{event_key}/matches/keys
@desc Gets a list of match keys for matches for the given team and event.
@required {team_key: str # TBA Team Key, eg `frc254`, event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/event/{event_key}/matches/simple
@desc Gets a short-form list of matches for the given team and event.
@required {team_key: str # TBA Team Key, eg `frc254`, event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/event/{event_key}/status
@desc Gets the competition rank and status of the team at the given event.
@required {team_key: str # TBA Team Key, eg `frc254`, event_key: str # TBA Event Key, eg `2016nytr`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events
@desc Gets a list of all events this team has competed at.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events/keys
@desc Gets a list of the event keys for all events this team has competed at.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events/simple
@desc Gets a short-form list of all events this team has competed at.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events/{year}
@desc Gets a list of events this team has competed at in the given year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events/{year}/keys
@desc Gets a list of the event keys for events this team has competed at in the given year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events/{year}/simple
@desc Gets a short-form list of events this team has competed at in the given year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/events/{year}/statuses
@desc Gets a key-value list of the event statuses for events this team has competed at in the given year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/history
@desc Gets the history for the team referenced by the given key, including their events and awards.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) {events: [map], awards: [map]} # Successful response with team's history including events and awards.
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/matches/{year}
@desc Gets a list of matches for the given team and year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/matches/{year}/keys
@desc Gets a list of match keys for matches for the given team and year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/matches/{year}/simple
@desc Gets a short-form list of matches for the given team and year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/media/tag/{media_tag}
@desc Gets a list of Media (videos / pictures) for the given team and tag.
@required {team_key: str # TBA Team Key, eg `frc254`, media_tag: str # Media Tag which describes the Media.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/media/tag/{media_tag}/{year}
@desc Gets a list of Media (videos / pictures) for the given team, tag and year.
@required {team_key: str # TBA Team Key, eg `frc254`, media_tag: str # Media Tag which describes the Media., year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/media/{year}
@desc Gets a list of Media (videos / pictures) for the given team and year.
@required {team_key: str # TBA Team Key, eg `frc254`, year: int # Competition Year (or Season). Must be 4 digits.}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/robots
@desc Gets a list of year and robot name pairs for each year that a robot name was provided. Will return an empty array if the team has never named a robot.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/simple
@desc Gets a `Team_Simple` object for the team referenced by the given key.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) {key: str, team_number: int, nickname: str, name: str, city: str?, state_prov: str?, country: str?} # Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/social_media
@desc Gets a list of Media (social media) for the given team.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /team/{team_key}/years_participated
@desc Gets a list of years in which the team participated in at least one competition.
@required {team_key: str # TBA Team Key, eg `frc254`}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@group teams
@endpoint GET /teams/{page_num}
@desc Gets a list of `Team` objects, paginated in groups of 500.
@required {page_num: int # Page number of results to return, zero-indexed}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /teams/{page_num}/keys
@desc Gets a list of Team keys, paginated in groups of 500. (Note, each page will not have 500 teams, but will include the teams within that range of 500.)
@required {page_num: int # Page number of results to return, zero-indexed}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /teams/{page_num}/simple
@desc Gets a list of short form `Team_Simple` objects, paginated in groups of 500.
@required {page_num: int # Page number of results to return, zero-indexed}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /teams/{year}/{page_num}
@desc Gets a list of `Team` objects that competed in the given year, paginated in groups of 500.
@required {year: int # Competition Year (or Season). Must be 4 digits., page_num: int # Page number of results to return, zero-indexed}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /teams/{year}/{page_num}/keys
@desc Gets a list Team Keys that competed in the given year, paginated in groups of 500.
@required {year: int # Competition Year (or Season). Must be 4 digits., page_num: int # Page number of results to return, zero-indexed}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endpoint GET /teams/{year}/{page_num}/simple
@desc Gets a list of short form `Team_Simple` objects that competed in the given year, paginated in groups of 500.
@required {year: int # Competition Year (or Season). Must be 4 digits., page_num: int # Page number of results to return, zero-indexed}
@returns(200) Successful response
@errors {304: Not Modified - Use Local Cached Value, 401: Authorization information is missing or invalid., 404: Not Found}

@endgroup

@end
