Skip to content

The Blue Alliance API v3 API

by thebluealliance.com

API keyHTTPSOpen Data
Open documentation ↗

Overview

# Overview Information and statistics about FIRST Robotics Competition teams and events. # Authentication All endpoints require an Auth Key to be passed in the header `X-TBA-Auth-Key`. If you do not have an auth key yet, you can obtain one from your [Account Page](/account).

The Blue Alliance API v3 is an open data API from thebluealliance.com. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 65 endpoints.

At a glance

Authentication
API key
HTTPS
Yes
CORS
Unknown
Category
Open Data
Base URL
https://www.thebluealliance.com/api/v3
Version
3.8.2
Endpoints
65
Spec updated
2023-03-06

Make a first request

Replace the placeholders; the documentation says exactly where credentials go.

cURL
curl -X GET "https://www.thebluealliance.com/api/v3/status" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"
JavaScript
const response = await fetch("https://www.thebluealliance.com/api/v3/status", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "X-API-Key": "YOUR_API_KEY",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "GET",
    "https://www.thebluealliance.com/api/v3/status",
    headers={
    "Accept": "application/json",
    "X-API-Key": "YOUR_API_KEY",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
GET/district/{district_key}/eventsGets a list of events in the given district.
GET/district/{district_key}/events/keysGets a list of event keys for events in the given district.
GET/district/{district_key}/events/simpleGets a short-form list of events in the given district.
GET/district/{district_key}/rankingsGets a list of team district rankings for the given district.
GET/district/{district_key}/teamsGets a list of `Team` objects that competed in events in the given district.
GET/district/{district_key}/teams/keysGets a list of `Team` objects that competed in events in the given district.
GET/district/{district_key}/teams/simpleGets a short-form list of `Team` objects that competed in events in the given district.
GET/districts/{year}Gets a list of districts and their corresponding district key, for the given year.
GET/event/{event_key}Gets an Event.
GET/event/{event_key}/alliancesGets a list of Elimination Alliances for the given Event.
GET/event/{event_key}/awardsGets a list of awards from the given event.
GET/event/{event_key}/district_pointsGets a list of team rankings for the Event.
GET/event/{event_key}/insightsGets a set of Event-specific insights for the given Event.
GET/event/{event_key}/matchesGets a list of matches for the given event.
GET/event/{event_key}/matches/keysGets a list of match keys for the given event.
GET/event/{event_key}/matches/simpleGets a short-form list of matches for the given event.
GET/event/{event_key}/matches/timeseriesGets an array of Match Keys for the given event key that have timeseries data. Returns an empty array if no matches have timeseries data.
GET/event/{event_key}/oprsGets a set of Event OPRs (including OPR, DPR, and CCWM) for the given Event.
GET/event/{event_key}/predictionsGets information on TBA-generated predictions for the given Event. Contains year-specific information. *WARNING* This endpoint is currently under development an
GET/event/{event_key}/rankingsGets a list of team rankings for the Event.
GET/event/{event_key}/simpleGets a short-form Event.
GET/event/{event_key}/teamsGets a list of `Team` objects that competed in the given event.
GET/event/{event_key}/teams/keysGets a list of `Team` keys that competed in the given event.
GET/event/{event_key}/teams/simpleGets a short-form list of `Team` objects that competed in the given event.
GET/event/{event_key}/teams/statusesGets a key-value list of the event statuses for teams competing at the given event.
GET/events/{year}Gets a list of events in the given year.
GET/events/{year}/keysGets a list of event keys in the given year.
GET/events/{year}/simpleGets a short-form list of events in the given year.
GET/match/{match_key}Gets a `Match` object for the given match key.
GET/match/{match_key}/simpleGets a short-form `Match` object for the given match key.
GET/match/{match_key}/timeseriesGets an array of game-specific Match Timeseries objects for the given match key or an empty array if not available.
GET/match/{match_key}/zebra_motionworksGets Zebra MotionWorks data for a Match for the given match key.
GET/statusReturns API status, and TBA status information.
GET/team/{team_key}Gets a `Team` object for the team referenced by the given key.
GET/team/{team_key}/awardsGets a list of awards the given team has won.
GET/team/{team_key}/awards/{year}Gets a list of awards the given team has won in a given year.
GET/team/{team_key}/districtsGets 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.
GET/team/{team_key}/event/{event_key}/awardsGets a list of awards the given team won at the given event.
GET/team/{team_key}/event/{event_key}/matchesGets a list of matches for the given team and event.
GET/team/{team_key}/event/{event_key}/matches/keysGets a list of match keys for matches for the given team and event.
GET/team/{team_key}/event/{event_key}/matches/simpleGets a short-form list of matches for the given team and event.
GET/team/{team_key}/event/{event_key}/statusGets the competition rank and status of the team at the given event.
GET/team/{team_key}/eventsGets a list of all events this team has competed at.
GET/team/{team_key}/events/keysGets a list of the event keys for all events this team has competed at.
GET/team/{team_key}/events/simpleGets a short-form list of all events this team has competed at.
GET/team/{team_key}/events/{year}Gets a list of events this team has competed at in the given year.
GET/team/{team_key}/events/{year}/keysGets a list of the event keys for events this team has competed at in the given year.
GET/team/{team_key}/events/{year}/simpleGets a short-form list of events this team has competed at in the given year.
GET/team/{team_key}/events/{year}/statusesGets a key-value list of the event statuses for events this team has competed at in the given year.
GET/team/{team_key}/matches/{year}Gets a list of matches for the given team and year.
GET/team/{team_key}/matches/{year}/keysGets a list of match keys for matches for the given team and year.
GET/team/{team_key}/matches/{year}/simpleGets a short-form list of matches for the given team and year.
GET/team/{team_key}/media/tag/{media_tag}Gets a list of Media (videos / pictures) for the given team and tag.
GET/team/{team_key}/media/tag/{media_tag}/{year}Gets a list of Media (videos / pictures) for the given team, tag and year.
GET/team/{team_key}/media/{year}Gets a list of Media (videos / pictures) for the given team and year.
GET/team/{team_key}/robotsGets 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.
GET/team/{team_key}/simpleGets a `Team_Simple` object for the team referenced by the given key.
GET/team/{team_key}/social_mediaGets a list of Media (social media) for the given team.
GET/team/{team_key}/years_participatedGets a list of years in which the team participated in at least one competition.
GET/teams/{page_num}Gets a list of `Team` objects, paginated in groups of 500.
GET/teams/{page_num}/keysGets 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.)
GET/teams/{page_num}/simpleGets a list of short form `Team_Simple` objects, paginated in groups of 500.
GET/teams/{year}/{page_num}Gets a list of `Team` objects that competed in the given year, paginated in groups of 500.
GET/teams/{year}/{page_num}/keysGets a list Team Keys that competed in the given year, paginated in groups of 500.
GET/teams/{year}/{page_num}/simpleGets a list of short form `Team_Simple` objects that competed in the given year, paginated in groups of 500.

Questions

Does the The Blue Alliance API v3 API need an API key?

Yes. The The Blue Alliance API v3 API uses API key authentication; the documentation explains how to get credentials.

Does the The Blue Alliance API v3 API support HTTPS?

Yes, the The Blue Alliance API v3 API is served over HTTPS.

How many endpoints does the The Blue Alliance API v3 API have?

Its OpenAPI description lists 65 endpoints in version 3.8.2. All of them are shown on this page.

What are alternatives to the The Blue Alliance API v3 API?

Other Open Data APIs include Search Services, Wayback API, Wikipedia, Nasdaq Data Link, University of Oslo.

Compare alternatives →

Listed from APIs.guru (CC0).