TheBlueAlliance API v3

I have been playing around with thebluealliance API. I wrote a java app that can pull data off thebluealliance website using API v2. Then I discovered API v3. I did a quick browse on the doc and determined the changes are minimal, so I did corresponding changes to my code (mainly the request URL format). All the basic network communication did not change. No matter what request I sent, I got a 401 code back (Unauthorized). I switched back to API v2 with the same request and it worked. Does anybody know why API v3 is giving me 401? Is it because it’s not ready for the public yet?
Here is a sample output of API v2:

[TBA] Command (? for help): get team/frc492
Sending request <>: OK
    website: ""
    name: "The Boeing Company/Western Integrated Technologies/Washington Office of Superintendent of Public Instruction/Microsoft/Bellevue Schools Foundation/Google/Honeywell/Chor Family/Alaska Airlines/Families and Friends of TRC&International School"
    locality: "Bellevue"
    rookie_year: 2001
    region: "Washington"
    team_number: 492
    location: "Bellevue, Washington 98005, USA"
    key: "frc492"
    country_name: "USA"
    motto: null
    nickname: "Titan Robotics Club"

[TBA] Command (? for help): exit
Program terminated.

Here is a sample output of the same request using API v3:

[TBA] Command (? for help): get team/frc492
Sending request <>: Unauthorized
Request failed: Unauthorized (401)

[TBA] Command (? for help): exit
Program terminated.

Did you send the API v3 key with your request? APIv2 you can send (almost) any auth key and it’ll take it, but with v3 you have to generate a key in your myTBA page first.

Oh thank you. I did not know about the auth key. I must have missed it somewhere. Did not see the mention of it in the v3 doc. After adding the auth key, everything works.

The v3 doc that’s live is a placeholder and doesn’t have all the authentication methods documented. (In fact the final version won’t have the URL parameter authentication method documented due to a bug in Swagger. If it did the code generated by Swagger wouldn’t work.)

I have finished the first version of my TheBlueAlliance PC program.
This app provides an interactive shell interface allowing you to enter commands such as:
list teams
list events/year=2017
list -verbose=2 teams/team=frc492
list events/event=2017tur
list matches/event=2017cmptx
list rankings/event=2017gal

Eventually, this program will be greatly expanded to allow it retrieving match info and exporting to a CSV spreadsheet according to an XML file specifying the CSV layout. But for the couple days of work, this is what I have for the first alpha version.

Currently, the program is organized into 3 layers. The bottom layer is generic web request support. The middle layer is TBA specific that extends the web request class and provides all the TBA APIs. Then the top layer is the actual shell. As you can see, it was first written for API v2 (, then quickly ported to API v3 ( Feedbacks are welcome.