Impact judges reward teams that measure themselves. One verifiable data source is The Blue Alliance (TBA), which exposes every team's events, awards, and history via a free REST API. This mini-project builds a script that fetches your team's award and event record automatically — useful for the 'goals and progress' and 'role models' summaries, and for tracking the teams you mentor.
Step 1 — Get a read key. Log in at thebluealliance.com, open your Account dashboard, and under Read API Keys generate a key. Every request must send it in the header X-TBA-Auth-Key.
Step 2 — Know the endpoint shape. The API v3 base URL is https://www.thebluealliance.com/api/v3. Team keys use the format frcNNNN (e.g. frc5985). Three endpoints you will use constantly:
/team/{team_key}/awards— every award the team has ever won/team/{team_key}/events/{year}— events for a given season/team/{team_key}/years_participated— list of seasons the team competed
Step 3 — Write the script.
import requests
TBA_KEY = "YOUR_READ_KEY" # from Account > Read API Keys
TEAM = "frc5985" # your team in frcNNNN form
BASE = "https://www.thebluealliance.com/api/v3"
HEADERS = {"X-TBA-Auth-Key": TBA_KEY}
def get(path):
r = requests.get(BASE + path, headers=HEADERS, timeout=15)
r.raise_for_status()
return r.json()
awards = get(f"/team/{TEAM}/awards")
for a in sorted(awards, key=lambda x: x["year"]):
print(a["year"], a["name"], "@", a["event_key"])
# Count Impact / Chairman's banners (award renamed in 2022)
impact = [a for a in awards
if "impact" in a["name"].lower()
or "chairman" in a["name"].lower()]
print(f"\nImpact/Chairman's awards: {len(impact)}")
raise_for_status() will surface a 401 immediately if your key is wrong — debug that before anything else.
Step 4 — Extend it for mentored teams. Keep a list of the teams you started or mentor and pull their first competition year to prove you launched them:
mentored = ["frc9999", "frc8888"]
for t in mentored:
yrs = get(f"/team/{t}/years_participated")
print(t, "rookie year:", min(yrs))
Now a claim like 'we started this team in 2023' is backed by years_participated data, not a guess.
Why this matters. Judges can verify everything on TBA. If your submission says you won three District Impact Awards, a script that prints them removes any doubt and any typo. It also forces honesty: the API is the ground truth. The official Definitions even warn that teams 'do not embellish or exaggerate' and should 'estimate on the low end' — anchoring numeric claims to TBA keeps you defensible in the interview.
Stretch goal: schedule the script (cron or GitHub Actions) to dump a CSV monthly into your Impact Tracker so your award history is always current heading into kickoff in January.
Key takeaways
- TBA API v3 is free, verifiable ground truth: base URL https://www.thebluealliance.com/api/v3, key format frcNNNN, auth via the X-TBA-Auth-Key header.
- The /team/{key}/awards and /team/{key}/years_participated endpoints let you prove award counts and the rookie years of teams you started or mentor.
- Anchor every numeric claim in your submission to a verifiable source so it survives judge scrutiny in the interview.
Keep going
Take the quiz · +10 XP with an accountSources & corrections
This lesson is AI-assisted: drafted from primary sources, then reviewed and edited by hand. Errors still get through. When one is reported we fix it and write down what changed — publicly, in the corrections log.
Sources and further reading
- The Blue Alliance API v3 docsthebluealliance.com
- tbapy — Python wrapper for the TBA APIgithub.com
- The Blue Alliance developer APIsthebluealliance.com
Read next
Articles on this, for competition day
The lesson covers how it works. These cover what to do when it breaks.
- 18 min read
The Blue Alliance (TBA): How to Use FRC's Match & Team Database
The Blue Alliance (TBA) is FRC's free match and team database. Navigate team, event, and match pages, set up myTBA notifications, and use its read API.
Read - 13 min read
FRC Awards Explained: Every FIRST Robotics Competition Award (Impact, EI, Autonomous & More)
A complete guide to every FIRST Robotics Competition award — Impact, Engineering Inspiration, Autonomous, Innovation in Control, Dean's List and more — with judged criteria and how to win.
Read - 20 min read
Building an FRC Scouting App: Data Model, TBA/Statbotics APIs, and Picklists
Build an FRC scouting app: match and pit scouting, a simple data model, pulling schedules and EPA from the TBA and Statbotics APIs, and building a picklist.
Read
Lesson quiz
RequiredAll 3 right completes the lesson. Miss one and only that question comes back — anything you already answered correctly stays banked.
0 of 3 answered
01.What header and base URL must every request to The Blue Alliance Read API include?
02.Which endpoint does the lesson use to prove the rookie year of a team you started or mentor?
03.Why does anchoring numeric claims to The Blue Alliance matters for Impact judging?
Answer every question to submit.
All 30 lessons in The Impact Award
- Not started:Build a Living Impact Tracker (Spreadsheet Mini-Project)
- Not started:Automate Outreach Data with The Blue Alliance API
- Not started:Worked Example: Rewriting a 500-Character Executive Summary
- Not started:Mini-Project: An Outreach Event Playbook You Can Reuse
- Not started:Mini-Project: Assemble a Bulletproof Documentation Form