Stewardship is what turns one-time sponsors into multi-year partners, and nothing impresses a sponsor like a polished report that shows exactly what their dollars produced. Instead of assembling it by hand each year, pull the data programmatically from The Blue Alliance (TBA).
Step 1 — Get a Read API key. Log in at thebluealliance.com, open your Account Dashboard, and generate a key under the Read API Keys section. Every request to the base URL https://www.thebluealliance.com/api/v3 must include the header X-TBA-Auth-Key.
Step 2 — Hit the right endpoints. For team key frc254, useful endpoints are:
/team/frc254/events/2026/simple— events attended this season/team/frc254/awards/2026— awards won this season/team/frc254/events/2026/statuses— ranking and playoff status per event
Step 3 — A working script.
import requests
TBA_KEY = "YOUR_READ_API_KEY"
TEAM = "frc254"
YEAR = 2026
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()
events = get(f"/team/{TEAM}/events/{YEAR}/simple")
awards = get(f"/team/{TEAM}/awards/{YEAR}")
print(f"=== {YEAR} Season Impact Report ===")
print(f"Events attended: {len(events)}")
for e in sorted(events, key=lambda x: x["start_date"]):
print(f" - {e['name']} ({e['city']}, {e['state_prov']})")
print(f"\nAwards won: {len(awards)}")
for a in awards:
print(f" - {a['name']} @ event {a['event_key']}")
Run it and you instantly have a verified, citable list of events and awards — no manual data entry, no transcription errors.
Step 4 — Turn data into sponsor language. Sponsors do not care about OPR; they care about reach and outcomes. Combine the TBA data with numbers you track manually (students on the team, outreach hours, people reached at demos) into a one-page report:
Thanks to [Sponsor], in 2026 our 34 students competed at 2 events,
won the [Award], and reached 1,200+ community members through 9 outreach events.
Step 5 — Automate the render. Drop the script output into a template (a Google Doc via the Docs API, or a simple HTML-to-PDF). Even just printing to a formatted text block you paste into a designed one-pager saves hours and guarantees the numbers are accurate.
Respect TBA's terms: cache responses, do not hammer the API, and attribute data to The Blue Alliance. This same data pipeline feeds your Impact Award documentation and your end-of-year board report, so build it once and reuse it everywhere.
Key takeaways
- The Blue Alliance Read API (base URL https://www.thebluealliance.com/api/v3, header X-TBA-Auth-Key) exposes your events and awards as JSON for free; generate the key under Read API Keys on your Account Dashboard.
- Key endpoints: /team/{key}/events/{year}, /team/{key}/awards/{year}, /team/{key}/events/{year}/statuses.
- Translate raw results into sponsor language — reach and outcomes, not OPR — and pair API data with manually tracked outreach numbers.
- Build the data pipeline once and reuse it for sponsor reports, Impact Award documentation, and board updates.
Keep going
Take the quiz · +10 XP with an accountMore in Worked Examples & Mini-Projects: Build Your Team's Business Toolkit
Sources & 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 APIv3 Documentationthebluealliance.com
- The Blue Alliance Developer APIsthebluealliance.com
- tbapy — Python wrapper for the TBA APIgithub.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 - 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 - 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
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.To auto-generate a sponsor impact report by pulling your team's results from The Blue Alliance (TBA) Read API v3, how must you authenticate each request?
02.When requesting your team's data from the TBA API v3, what is the correct format for the team key, and what is the API's base URL?
03.After pulling event and award data from TBA, how should you present it in the sponsor impact report?
Answer every question to submit.
All 49 lessons in Business, Operations & Fundraising
- Not started:Mini-Project 1: A Working Season Budget Model
- Not started:Mini-Project 2: A Sponsor CRM in a Spreadsheet
- Not started:Mini-Project 3: A Grant Pipeline & Deadline Tracker
- Not started:Mini-Project 4: Auto-Generate a Sponsor Impact Report from The Blue Alliance API
- Not started:Mini-Project 5: A Competition Travel & Logistics Planner
- Not started:Should Your Team Become a 501(c)(3)? Structure Deep-Dive
- Not started:Multi-Year Financial Modeling: Reserves, Runway & Endowments
- Not started:Scaling Impact: From Local Outreach to Systemic Advocacy
- Not started:Case Study: Hall of Fame Programs Decoded
- Not started:Governance, Risk & Compliance for a Mature Program