Web API

すべて読み取り専用(GET)・JSON・認証不要です。ベースURLは /api/v1。 各項目の「試す」を押すと、実際にそのURLへリクエストしてレスポンスを表示します。

大学のslug: waseda(早大)・keio(慶大)・meiji(明大)・ hosei(法大)・tokyo(東大)・rikkio(立大)

試合のteam0/team1は{ "slug": "...", "score": ... }の形。 対戦カード(matchups)のteam0/team1はslugの文字列そのものです。 どちらも名前や色などの詳細が必要な場合はGET /api/v1/universitiesを一度取得してslugで参照してください。

OGP画像(PNG、1200×630)は、大学・シーズン・試合・対戦カード・選手のそれぞれに…/og.pngがあり、サイトのページのog:imageと同じ画像です。 1つずつのJSON(show系)には、その画像のURLがog_image_urlとして入っています。 画像の項目は、最初は画像を表示せず、「試す」を押すとその下に画像を表示します(パスを書き換えれば、別の画像も試せます)。

AI アシスタントから使う(MCP サーバー)

この API は、MCP(Model Context Protocol)のサーバーとしても使えます。URL は https://big6.onrender.com/mcp です(Streamable HTTP、認証なし)。 ツールは下の各 API と1対1で、名前は search_players・get_player・get_season のような形です。返す JSON も同じです。

ChatGPT では、"Settings" → "Security and login" で "Developer mode" をオンにし、サイドバーの "Plugins" の "+" から、この URL のアプリを追加します。 Claude などの MCP に対応したアシスタントでも、カスタムのコネクタとしてこの URL を追加すれば使えます。 ツールの一覧と使い方の例は、MCP サーバーの解説にあります。

ChatGPT のコード実行(Python)の環境は外部に接続できず、ウェブ検索の機能も API の URL を開けないことがあります。 そのため、ChatGPT からこの API を使うには、MCP のアプリ(または下の GPT のアクション)が必要です。

OpenAPI

この API の仕様を OpenAPI 3.0 の形で /api/v1/openapi に置いています(JSON)。画像(og.png)の項目は含めていません。 ChatGPT の GPT の編集画面で "Configure" → "Create new action" → "Import from URL" にこの URL を入れると、GPT がこの API を呼べるようになります("Authentication" は "None")。 ただし、GPT は2026年12月11日に廃止され、プラグインに移行してもアクションは引き継がれません。続けて使うなら、上の MCP サーバーを使ってください。

GET /api/v1
レスポンス

  

大学

/api/v1/universities

全大学の一覧。

GET /api/v1
レスポンス

  

/api/v1/universities/:slug

1大学の情報+通算成績(全対戦相手を合算)。連勝が無い場合、longest_streak/current_streakはnull。

GET /api/v1
レスポンス

  

/api/v1/universities/:slug/og.png

大学ページのOGP画像。通算の最多連勝と勝率を大学の色で描いたものです。

GET /api/v1

シーズン

/api/v1/seasons

全シーズンの一覧(新しい順)。

GET /api/v1
レスポンス

  

/api/v1/seasons/:year/:term

1シーズンの情報+その全試合。termはspringまたはautumn。 まだ行われていない試合はscoreがnull。

GET /api/v1
レスポンス

  

/api/v1/seasons/:year/:term/standings

そのシーズンの順位表。各行に順位(rank)、勝・敗・分・勝ち点・試合数・勝率、得点(runs_scored)・失点(runs_allowed)、観衆と、チーム成績(team_stats:ボックススコアのある試合数・打率・本塁打・盗塁・防御率・失策)があります。チーム成績は各試合のボックススコアの合計で、優勝決定戦はのぞきます。ボックススコアのない大学・季ではnullです。Scorebook の成績は試合の数日後に入るので、team_stats.gamesがgamesより少ないことがあります。勝ち点と勝率がどちらも同じ大学は同じrankになり、次の順位はその分とびます(1, 2, 3, 3, 3, 6)。1カード1〜2試合だった2020年・2021年の季は、連盟の方式どおり勝ち1点・引分0.5点の合計を勝ち点とし(8.5のような小数になります)、勝率でも並んだ2校は直接対決の勝敗で順位を分けます。

このサイトに立教の試合だけを部史から載せている季(1922年春季〜1928年春季の一部)は、部史の勝敗表をその並び順のまま返し、 各行のsourceに出典が入ります。そうした季では得点・失点・観衆はnullで、勝ち点の欄がない表ではpointsもnullです。

パラメータ説明
exclude_weekdaystrue(または1)で、attendance_totalとaverage_attendanceを土日の試合だけで数えます(平日の試合をのぞく)。祝日も曜日どおりにあつかいます
GET /api/v1
レスポンス

  

/api/v1/seasons/:year/:term/og.png

シーズンページのOGP画像。そのシーズンの順位順に並べた6大学の色と、シーズン名です。

パラメータ説明
label画像に入れる小見出し(任意)。例: label=優勝 慶大
GET /api/v1

試合

/api/v1/games

試合の検索・一覧(ページネーションあり、1ページ100件)。 各試合のstatusは、scheduled(試合前)/ in_progress(試合中)/ finished(試合終了)/ cancelled(中止)/ no_game(ノーゲーム)のどれかです。中止とノーゲームの試合は、スコアも回戦(round)もnullです (再試合が、その回戦になります)。cancelledは、中止かノーゲームの試合でtrueです。 totalと件数の数え方は、中止の試合も1件に含みます。 BIG6 Scorebook にない試合を部史などの刊行物から入れたものは、sourceに出典の書誌(citation)と所在(url)、本文にある試合のようす(remark、なければnull)、出典の中でその試合について食い違うところ(notes、なければ空)が入ります。 Scorebook の試合ではsourceはnullです。 刊行物から入れた試合のうち、リーグ戦の勝敗表に入らない試合(1928年秋季の3位決定戦)は、playoffにその名前が入ります。roundはその組の次の番号で、成績には含めません。 それ以外の試合(Scorebook の優勝決定戦を含む)ではplayoffはnullです。

パラメータ説明
university大学のslug(複数指定可、例: university[]=rikkio&university[]=tokyo)。指定した大学が絡む試合のみ
termspring/autumn(複数指定可)
start_year / end_year試合日の年の範囲
pageページ番号(1始まり)
GET /api/v1
レスポンス

  

/api/v1/games/:year/:term/:team0/:team1/:round

1試合の情報+詳細なスコアボード(データが無い場合はscoreboardがnull)。 team0/team1は順不同(どちらが先でもマッチします)。roundは第何回戦か。 innings/hits/errorsの値は元データ(Scorebook)の都合で数値ではなく文字列です。

GET /api/v1
レスポンス

  

/api/v1/games/:year/:term/:team0/:team1/:round/og.png

試合ページのOGP画像。2大学の色と、スコア(試合前は「vs」)です。team0/team1は順不同です。

GET /api/v1

対戦カード

/api/v1/matchups/:team0_slug/:team1_slug

2大学の通算対戦成績。

パラメータ説明
since_years直近N年に絞り込み
year / term特定のシーズンに絞り込み
exclude_weekdaystrue(または1)で、attendanceのaverageとtotalを土日の試合だけで数えます(平日の試合をのぞく)。祝日も曜日どおりにあつかいます
GET /api/v1
レスポンス

  

/api/v1/matchups/:team0_slug/:team1_slug/og.png

対戦カードのOGP画像。2大学の色と、その期間の勝ち数です。

パラメータ説明
year / term特定のシーズン(両方)、または特定の年(yearのみ)の勝ち数にする
periodyearを指定しないとき、all(通算・省略時)/ 20 / 10 / 5(直近N年)/ r(直近シーズン)
GET /api/v1

選手

選手のidは Scorebook の選手IDで、サイトの/players/:idと同じ番号です(当サイト内部のIDではありません)。 universityは大学のslug。監督・コーチ・マネージャーなども同じ形で返り、roleで区別できます。 一覧は/players、1人のプロフィールと成績は/players/:id、試合ごとの記録は/players/:id/games、OGP画像は/players/:id/og.pngです。

/api/v1/players

選手・スタッフの検索・一覧(ページネーションあり、1ページ100件)。 入学年が新しい順で、入学年のない人(部長・監督など)は最後。totalは条件に合う全員の人数です。

パラメータ説明
q氏名(姓名の間の空白は無視)・よみ・出身高校のキーワード
university大学のslug(複数指定可、例: university[]=rikkio&university[]=tokyo)。該当する大学がなければ0件
start_year / end_year入学年の範囲
roleplayer(選手)/ manager(マネージャー)/ staff(監督・コーチ・部長など)/ other(学生コーチ・アナリストなど)
statusactive(現役)/ alumni(卒業生)
pageページ番号(1始まり)
GET /api/v1
レスポンス

  

/api/v1/players/:id

1人のプロフィールと成績。statusはactive(現役)/ alumni(卒業生)/ null、 gradeは Scorebook に記載された時点の学年です。 enter_yearは入学年で、部長・監督など入学年のない人はnull。

batting(打撃)とpitching(投手)は、成績が無ければnull。あれば、 シーズンごとのseasons(古い順)と通算のcareerを返します。 優勝決定戦は、Scorebook に合わせて、どちらにも含めません。 average(打率)・obp(出塁率)・slg(長打率)・ops(obp+slg)とera(防御率)は計算値で、 分母(打数・アウト)が0のときはnull。total_basesは塁打数です。 obpは(安打+四死球)÷(打数+四死球)で、元データに犠飛だけの記録がないため、犠飛は含めていません(犠打と犠飛を合わせたsacrificesだけがあります)。 inningsはouts(アウト数)を「3 1/3」のように書いたものです。

成績は Scorebook に試合ごとのデータがある試合だけです。1950年代・2010〜2016年の多くの試合などは、元データ自体がなく、成績が空になります。 og_image_urlは下のOGP画像のURLです。

GET /api/v1
レスポンス

  

/api/v1/players/:id/games

その選手の試合ごとの記録(新しい順)。roster(登録メンバー。背番号・学年・役割・打順・守備位置。2021年以降の試合のみ)、 batting、pitchingのうち、その試合にあるものだけが入り、無いものはnullです。 gameは試合を特定する情報(/games/:year/:term/:team0/:team1/:roundと同じ)、 opponentは相手大学のslug。counted_in_statsがfalseの試合(優勝決定戦)は、シーズン成績・通算に含まれません。

GET /api/v1
レスポンス

  

/api/v1/players/:id/og.png

選手ページのOGP画像(PNG、1200×630)。サイトの選手ページのog:imageと同じ画像で、JSONのog_image_urlからも辿れます。

GET /api/v1

ランキング

OPS(打者)と防御率(投手)のランキング。期間は、yearとtermでシーズンを指定した場合はそのシーズン、指定しなければ通算です。 最低打席数(打者)・最低投球回数(投手)に届いた選手だけを載せます。minimumで指定でき(0で制限なし)、省略すると通算は40、シーズンは10です(レスポンスのminimum)。シーズンではminimum=leagueで連盟の規定打席・規定投球回も使えます。 サイトのランキングページは、連盟のランキングと同じく、既定がそのシーズンの連盟の規定打席・規定投球回と打率順です。APIで同じ結果を得るにはminimum=league&sort=averageを指定します(APIの既定は上のとおりで、変わりません)。 Scorebookに試合ごとのデータがある試合だけの集計で、優勝決定戦は含みません。OPSの出塁率は犠飛を含めない簡易式です。 表示される値(OPSは小数第3位、防御率は第2位)が同じ選手は、同じrankになります。

/api/v1/rankings/:kind

kindはbatting(打者。既定の順はOPSの高い順)またはpitching(投手。既定の順は防御率の低い順)。ページネーションあり、1ページ100件。 battingの各行はops/obp/slg/averageなど、pitchingの各行はera/innings/wins/lossesなどを持ちます。 player.idは/players/:idと同じ選手IDです。

パラメータ説明
year / termシーズンを指定(両方)。省略すると通算。存在しないシーズンは404
university大学のslug(複数指定可、例: university[]=rikkio&university[]=tokyo)。該当する大学がなければ0件
minimum最低打席数(batting)または最低投球回数(pitching)。整数で、0なら制限なし。省略、または整数でない値は既定(通算40、シーズン10)。leagueなら連盟の規定打席・規定投球回で、大学ごとにチームの試合数 × 3.1(四捨五入)打席、試合数 × 2 投球回です。yearとtermでシーズンを指定したときだけ使え、通算では既定になります。レスポンスのminimumはleague: trueと、大学のslugごとのplate_appearances_by_university(pitchingはinnings_by_university)、それにthrough(数えた最後の試合の日付)です。チームの試合数は、選手の成績と同じく、BIG6 Scorebookに成績が出た試合だけで数えます
sort並べ替える列。batting: rank(既定)/ player(選手名)/ university / ops / average / obp / slg / games / pa / ab / hits / home_runs。pitching: rank(既定)/ player / university / era / games / outs / wins / losses / hits / strikeouts / walks / earned_runs。カンマ区切りで3列まで指定でき(例: home_runs,average)、2列目以降はそれより前の列が同じ値の行の順を決めます(値は表示の桁で比べます。OPSなら小数3桁)。並べ替えると、rankもその順につけ直されます(指定したすべての列で同じ値なら同順位。1列目がrankのときは既定の順位のまま)。レスポンスのsort・directionも同じカンマ区切りで返ります。既定の順(OPS/防御率)での順位は、常にdefault_rankに入っています
directionasc(小さい順)/ desc(大きい順)。sortに複数の列を指定したときは、同じ順にカンマ区切りで列ごとに指定します(例: desc,asc)。省略した列や足りない分は列ごとの既定(rank・player・university・eraはasc、それ以外はdesc)。universityはリーグの標準順(慶・明・早・法・立・東)
pageページ番号(1始まり)
GET /api/v1
レスポンス

  
GET /api/v1
レスポンス

  
GET /api/v1
レスポンス

  
GET /api/v1
レスポンス

  

エラー

存在しないリソースを指定した場合は404で以下を返します。

GET /api/v1
レスポンス

  

開発者向けの解説

東京六大学野球のデータを扱うソフトウェアを作る人向けに、データの入手先(連盟公式サイト・BIG6 Scorebook など)の仕様と注意点を開発者向けの解説にまとめています。