国会の会議録・発言を検索・取得する(国会会議録API)
国会会議録APIを使うと、本会議・委員会の会議録や発言を検索・取得できます。国会での議論はすべて会議録に残るため、「あるテーマがいつ、どの委員会で、誰によって議論されたか」を機械的に追えるのが大きな利点です。報道の要約を介さず、実際の発言そのものに一次情報として当たれるので、政策の検証や裏取りに強みを発揮します。しかもキー登録が不要で、政策ウォッチやテキスト分析の入口としてすぐ使えます。このガイドでは、会議単位・発言単位それぞれの検索方法と、表記ゆれやページ送りといった実運用の注意、網羅的に集めるための実務、そして政策追跡や発言分析への活かし方をまとめました。
取れるデータと使いどころ
会議(日付・院・会議名)の一覧、キーワードを含む発言の検索、会議録本文の取得ができます。特定テーマがいつ・誰に・どの委員会で議論されたかを、一次情報として追えます。報道の要約ではなく、実際の発言そのものに当たれる点が調査に強みを持ちます。発言には発言者や会議の情報が付くため、誰の発言かを取り違えずに引用や集計ができるのも利点です。
政策ウォッチ、議員・テーマ別の発言分析、報道の裏取り、公約と実際の発言の照合など、用途は幅広く使えます。APIキーは不要なので、思い立ったその場で試せます。俯瞰したいのか深掘りしたいのかで、会議単位・発言単位のどちらから入るかを選ぶのがコツです。テキスト分析にかけられる形で発言が取れるため、頻出語の集計や論点の抽出といった定量的な分析の素材にもなります。
取得の具体例(パラメータの渡し方)
会議単位で調べるなら kokkai_meetings を使います。any(キーワード)、nameOfHouse(衆議院・参議院)、nameOfMeeting(委員会名)、from / until(期間)で絞り込むと、条件に合う会議の一覧が返ります。「いつ、どの委員会でその話題が出たか」を掴む段階で、まず全体像を俯瞰するのに向きます。
発言単位で全文を追うなら kokkai_speeches を使います。同じく any でキーワード、speaker で発言者を指定でき、maximumRecords / startRecord でページ送りします。特定の議員が特定テーマについて何を述べたかを、発言テキストとして抽出できます。分析に回すなら、この発言本文が素材になります。
使い分けの目安は、俯瞰なら kokkai_meetings、深掘り(発言テキストの取得・分析)なら kokkai_speeches です。まず会議一覧で全体像を掴み、関心のある会議に絞ってから発言を取ると、取得量を抑えつつ精度を上げられます。いきなり発言全文を広く集めると量が膨らむので、段階的に絞るのが効率的です。会議名や期間で当たりを付けてから発言に降りる、という二段構えを習慣にすると、必要な発言だけを的確に拾えます。
よくあるつまずき
会議名・発言者名の表記に依存します。委員会名の正式表記や、議員名の姓名・肩書の付き方で結果が変わるため、nameOfMeeting や speaker は複数の書き方を試すと取りこぼしを減らせます。まず any(自由語)で広めに拾い、正しい表記を確認してから絞り込むと確実です。
取得件数の上限に注意します。maximumRecords / startRecord でページ送りしないと、ヒットが多い検索は途中で切れてしまいます。網羅的に集めるときはループ処理で全ページを回収し、取りこぼしがないか件数を突き合わせてください。
期間指定の from / until は範囲が広いほど件数が膨らみます。年単位で区切って取得する、キーワードで絞る、といった工夫で1回あたりの負荷を下げると、レスポンスも安定し処理も速くなります。長期を一括で取ろうとせず、期間を分割して集めるのが実務的です。
分析ユースケースと関連ツールの使い分け
①政策テーマの追跡:あるキーワード(例:特定の制度名)で kokkai_meetings を定期取得すると、その話題がいつ・どの委員会で扱われたかの推移が見えます。議論の盛り上がりを時系列で可視化でき、政策の動きを先取りして把握するのに役立ちます。
②議員・会派の発言分析:kokkai_speeches で発言者を指定して発言を集め、頻出語や論点を集計すると、議員ごとの関心テーマを描けます。報道の裏取りや、選挙時の公約と実際の発言の照合にも使え、一次情報に基づく検証ができます。
③法令・パブコメとの連携:会議録で議論された法案を、法令API(別ガイド)やパブリックコメントと突き合わせると、立法過程を「議論→法案→施行」と上流から追えます。俯瞰は kokkai_meetings、本文取得・テキスト分析は kokkai_speeches が担うので、目的に応じて組み合わせてください。
網羅的に集めるための実務
会議録を分析に使うなら、取りこぼしのない収集が前提になります。ヒット件数が多い検索では、maximumRecords / startRecord を使ったページ送りを必ず実装し、全ページを回収してから件数を突き合わせて漏れがないか確認してください。1ページ分だけ取って全体を語ると、結論がゆがみます。
期間指定の from / until は、範囲が広いほど件数が膨らみます。長期を一括で取ろうとせず、年単位や会期単位で区切って集め、あとで結合するほうが、レスポンスも安定し処理も速くなります。委員会名(nameOfMeeting)や発言者名(speaker)は表記の揺れがあるため、まず any(自由語)で広く拾い、正しい表記を確認してから絞り込むと確実です。
収集した発言テキストは、発言者・会議・日付をメタデータとして保持しておくと、後で議員別・委員会別・時期別に切り分けて分析できます。会議単位(kokkai_meetings)で対象会議を絞り込んでから発言(kokkai_speeches)を取ると、無駄な取得を避けつつ、必要な範囲だけを深掘りできます。大量の会議録を扱うときは、いったんローカルに保存してから分析するバッチ設計にすると、APIへの負荷を抑えられ、再分析のたびに取り直す手間もなくなります。
実際に叩いてみる(国会会議録・登録不要)
発言検索APIは登録不要で、speaker(発言者)や any(全文)で検索してJSONで受け取れます。numberOfRecords に総ヒット数、speechRecord[] に各発言が入ります。1回で返るのは最大件数ぶんなので、nextRecordPosition を次回の startRecord に渡してページングします。
curl -s "https://kokkai.ndl.go.jp/api/speech?speaker=岸田&maximumRecords=1&recordPacking=json"
# 実際のレスポンス(抜粋)
{
"numberOfRecords": 24802,
"nextRecordPosition": 2,
"speechRecord": [{
"speechID": "121905254X00720251208_024",
"session": 219,
"nameOfHouse": "衆議院",
"nameOfMeeting": "本会議",
"date": "2025-12-08",
"speaker": "岸田光広"
}]
}出典
元システムエンジニア。Web系アプリ開発6年+ソリューション9年、IT実務およそ15年。個人開発者として、政府オープンデータや各府省のAPIを実際に叩いて検証し、「何が取れるか」「実装時にどこで詰まるか」「どう活用するか」を一次検証にもとづいて記録しています。
運営者・検証方針について →