logo
languageJPdown
menu

気象庁APIの使い方|公式APIはある?Python・JSON・CSVで天気データを取得する方法

star

気象庁APIの使い方を初心者向けに解説。公式APIの有無、Pythonで天気予報JSONを取得する手順、エリアコード、過去データCSV、エラー対策、商用利用の注意点を整理し、API・XML・Octoparseによるノーコード収集の違いまで比較します。

約11分で読めます

「気象庁API」と呼ばれるデータは無料で取得できますが、1つの公式・保証付きAPIが用意されているわけではありません。一般にこの呼び名で紹介されているのは、気象庁Webサイトが天気予報を表示するために利用しているJSONデータです。このほか、防災情報XML、最新観測値のCSV、過去の気象データ・ダウンロードなど、目的別に異なる取得方法があります。

この記事では、気象庁APIの使い方を知りたい方に向けて、東京の天気予報JSONをブラウザとPythonで取得する手順、エリアコードの調べ方、エラーへの対処、過去データをCSVで保存する方法を解説します。後半では、API・CSV・XML・Webスクレイピングの違いと、プログラミングを使わずに複数地域のデータを定期収集する方法も比較します。

取得したいデータ最初に選ぶ方法向いている用途
今日・明日・明後日の天気予報天気予報JSONアプリ、社内画面、学習用プログラム
警報・注意報などの防災情報気象庁防災情報XML機械処理、情報システムへの連携
全国の最新観測値最新の気象データCSV定期集計、BI、データ基盤
過去の気温・降水量過去の気象データ・ダウンロード研究、Excel分析、需要分析
複数Webページの表を定期保存Octoparse(オクトパース・オクトパス)ノーコード収集、Excel・CSVへの反復出力
可用性保証や専門サポートが必要民間の気象データサービス企業システム、重要業務

気象庁APIとは?公式APIは提供されている?

気象庁は多様な気象データを公開していますが、「気象庁API」という名称の統一された開発者向けサービスを、可用性保証やSLA付きで提供しているわけではありません。検索結果や技術記事で気象庁APIと呼ばれるものの多くは、気象庁ホームページ内で使われているJSONファイルをWeb APIのように取得する方法です。

気象データ高度利用ポータルでは、気象庁防災情報XML、最新・過去の観測データCSV、予測データファイル、GISデータなどが案内されています。したがって、気象庁APIの使い方を考える前に、「予報」「観測」「防災」「過去データ」のどれが必要かを決めることが重要です。

気象庁のJSONデータは無料?APIキーは必要?

天気予報JSONの取得にAPIキーやユーザー登録は必要ありません。URLへGETリクエストを送るとJSONが返ります。ただし、正式な開発者向けAPI契約ではないため、仕様変更、URL変更、停止、遅延に備える必要があります。業務で利用する場合は、取得失敗時の再試行、キャッシュ、監視、代替データ源を設計してください。

気象庁APIで取得できるデータは?

天気予報JSONでは、地域別の天気、風、波、降水確率、気温、週間予報などを取得できます。気象庁APIの使い方で迷いやすいのは、同じレスポンスの中でも項目によって対象地域と時間軸が異なる点です。配列番号だけで決め打ちせず、`area.name`や`timeDefines`を確認するのが安全です。

主な項目JSON内の例利用例
発表機関publishingOfficeデータの出典確認
発表日時reportDatetimeデータ鮮度の確認
対象時刻timeDefines予報日・時間帯の対応付け
地域areas[].area東京地方、伊豆諸島などの識別
天気weathers / weatherCodes画面表示、分類、集計
降水確率popsイベントや配送判断の補助
気温temps / tempsMin / tempsMax需要予測、設備管理

一方、数年分の実測気温や降水量を、この予報JSONから一括取得することはできません。過去の観測値には、気象庁の過去の気象データ・ダウンロードを使います。

気象庁APIの使い方|天気予報JSONを取得する手順

気象庁APIの使い方は、エリアコードを確認し、そのコードを天気予報JSONのURLへ入れるだけです。まずブラウザでレスポンスを確認してからPythonへ進むと、URLの間違いとコードの問題を切り分けやすくなります。

Step 1:エリアコードを確認する

地域コードは、気象庁のarea.jsonで確認できます。たとえば東京都の府県予報区コードは`130000`、大阪府は`270000`です。都道府県名と一次細分区域のコードは役割が異なるため、予報URLには府県予報区のコードを使用します。

Step 2:天気予報JSONのURLを開く

URLは次の形式です。

https://www.jma.go.jp/bosai/forecast/data/forecast/{エリアコード}.json

東京の場合は、forecast/130000.jsonを開きます。2026年10月8日の確認時には、`publishingOffice`が「気象庁」、`reportDatetime`が「2026-10-08T11:00:00+09:00」となり、東京地方の天気、風、波、降水確率、気温、週間予報が返りました。

Step 3:必要な地域と時間を特定する

レスポンスは入れ子構造です。`timeSeries`ごとに、天気、降水確率、気温など別のデータが格納されています。同じ配列位置が将来も続くとは限らないため、取得結果を保存するときは発表日時、対象時刻、地域名、地域コードも一緒に記録してください。

気象庁APIをPythonで利用する方法

Pythonでは`requests`でJSONを取得し、地域名と日時を対応付けて処理します。ここでは、気象庁APIの使い方をそのまま試せるように、東京の府県天気予報から各地域の天気を表示する最小構成を示します。

import requests

AREA_CODE = "130000"
URL = f"https://www.jma.go.jp/bosai/forecast/data/forecast/{AREA_CODE}.json"

headers = {
    "User-Agent": "weather-data-study/1.0 (contact: your-email@example.com)"
}

response = requests.get(URL, headers=headers, timeout=15)
response.raise_for_status()

data = response.json()
report = data[0]
weather_series = report["timeSeries"][0]

print("発表機関:", report["publishingOffice"])
print("発表日時:", report["reportDatetime"])

for area in weather_series["areas"]:
    area_name = area["area"]["name"]
    area_code = area["area"]["code"]
    for target_time, weather in zip(
        weather_series["timeDefines"], area.get("weathers", [])
    ):
        print(target_time, area_name, area_code, weather)

`timeout`を設定しないと、接続が戻らない場合に処理が止まり続ける可能性があります。`raise_for_status()`を入れると、404や一時的なサーバーエラーを正常データとして処理する事故を減らせます。User-Agentには用途と連絡先を記載し、必要以上の頻度でアクセスしないでください。

PythonでCSVへ保存する

取得結果をExcelで分析したい場合は、行形式に整えてCSVへ保存します。

import csv

rows = []
for area in weather_series["areas"]:
    for target_time, weather in zip(
        weather_series["timeDefines"], area.get("weathers", [])
    ):
        rows.append({
            "report_datetime": report["reportDatetime"],
            "target_time": target_time,
            "area_name": area["area"]["name"],
            "area_code": area["area"]["code"],
            "weather": weather.replace(" ", " "),
        })

with open("jma_forecast.csv", "w", newline="", encoding="utf-8-sig") as file:
    writer = csv.DictWriter(file, fieldnames=rows[0].keys())
    writer.writeheader()
    writer.writerows(rows)

Windows版Excelで開くことを想定し、文字コードには`utf-8-sig`を指定しています。予報を定期保存する場合は、同じ発表日時のデータを重複登録しない仕組みも追加してください。

気象庁APIでエラーが出るときは?

気象庁APIで取得できない場合は、URL、地区コード、HTTPステータス、Content-Type、JSON構造の順で確認します。気象庁APIの使い方が正しくても、一時的な応答や公開側の変更で失敗する場合があります。無料で利用できるデータでも、常に同じ構造と可用性が保証されるわけではありません。

症状主な原因確認方法
404になるエリアコードまたはURLが誤っているarea.jsonとURLの`forecast`部分を確認
JSON解析に失敗する一時的なエラーページ、レスポンス変更ステータスコードとContent-Typeを先に確認
欲しい地域がない府県予報区と一次細分区域を混同areas内のnameとcodeを確認
気温が取得できない天気系列と気温系列が別各timeSeriesのareasとtimeDefinesを確認
ブラウザのJavaScriptから失敗CORS等の制約サーバー側Pythonで試し、用途に合う構成を検討
以前のコードが動かないJSON構造や公開方法の変更保存済みサンプルと現在のレスポンスを比較

過去の気象データをCSVでダウンロードする方法

過去の気温や降水量を一度に取得するなら、予報JSONではなく公式のCSVダウンロード機能が適しています。気象庁APIの使い方だけにこだわらず、観測地点、項目、期間、表示オプションを選び、CSVとして保存する方が短時間で済むケースもあります。

  1. 過去の気象データ・ダウンロードを開く
  2. 都道府県と観測地点を選ぶ
  3. 気温、降水量、湿度、風など必要な項目を選ぶ
  4. 日別値・時別値など集計単位と期間を選ぶ
  5. 内容を確認してCSVをダウンロードする

研究や統計分析では、品質情報、均質番号、欠測値も確認してください。また、ダウンロード画面には一度に取得できるデータ量の制限があり、自動化ツール等による過度のアクセスを控えるよう案内されています。制限を回避する目的で自動アクセスを繰り返すのは適切ではありません。

気象データの取得方法を比較|API・CSV・XML・スクレイピング

最適な方法は、データの種類、取得頻度、プログラミングの有無、必要な信頼性で決まります。気象庁APIの使い方を覚えても、目的が過去データの一括分析なら公式CSVの方が簡単です。

方法主なデータプログラミング自動化出力・利用適した人
天気予報JSON天気、降水確率、気温、週間予報基本的に必要コードと実行環境を用意JSONを加工開発者、学習者
防災情報XML警報、注意報、地震、台風等の電文必要PULL型等を設計XMLを解析防災情報を処理する開発者
公式CSV最新・過去の観測値手動なら不要公開方法と注意事項に従うCSV、Excelで利用研究、分析、単発取得
OctoparseWebページ上の表や公開情報不要クラウド収集・スケジュールは対応プランで利用Excel、CSV、JSON、Google Sheets等非エンジニア、反復収集担当者
民間気象API事業者ごとの予報・観測・加工データ多くは必要契約仕様によるAPI、ファイル等SLAやサポートが必要な企業

APIを使わずに気象データを定期収集する方法は?

プログラミング不要でWeb上の気象データを繰り返し収集したい場合は、Octoparse(オクトパース・オクトパス)が選択肢になります。Octoparseは、公開Webページを内蔵ブラウザで開き、画面上で指定した表、テキスト、URLなどを構造化データとして取得するノーコードWebスクレイピングツールです。

気象庁の公開データは、APIやCSVを使って取得できます。ただし、複数のWebページに掲載された気象情報を繰り返し収集したい場合、毎回手作業でコピーするのは手間がかかります。こうした作業を効率化する方法の一つがOctoparseです。

Octoparseは、Webページに表示されている情報を表形式で取得し、ExcelやCSVに出力できます。プログラミングの知識がなくても利用でき、対応プランではクラウド収集とスケジュール実行にも対応しています。例えば、複数地域の気温や降水量を継続的に記録できれば、売上データとの比較や地域別の傾向分析にも活用できます。

Octoparseにはどのような機能がある?

  • ノーコードの抽出設定:内蔵ブラウザ上で気温、降水量、観測地点、日時などを選び、取得フィールドを設定できます。
  • 複数URLの一括処理:地域や日付ごとにURLが分かれている場合、URLリストを使って同じ項目を繰り返し取得できます。
  • クラウド収集:対応プランではOctoparseのクラウド上でタスクを実行でき、PCを起動し続ける必要がありません。
  • スケジュール実行:日次、週次など対象データの更新頻度に合わせて収集を実行できます。
  • データ出力:Excel、CSV、HTML、JSON、Google Sheets、データベース等へ出力できます。利用できる出力先と自動化機能はプランによって異なります。
  • Webページ変更への再設定:ページ構造が変わったときは、GUI上で取得項目や操作フローを確認・修正できます。

なぜ気象データの収集にOctoparseを使う?

Octoparseを推薦できるのは、「公開Webページに必要なデータがある」「同じ作業を何度も繰り返す」「Pythonの開発・保守を避けたい」という3条件がそろう場合です。一度だけ過去の気温を取得するなら、公式CSVの方が早く、Octoparseを使う必要はありません。

気象データ業務の悩みOctoparseで対応できること注意点
複数地点のページを毎日開いている同じ抽出ルールでURLを順番に処理対象ページとアクセス頻度を限定する
表をExcelへコピーしている行・列を構造化しExcelやCSVへ出力単位、欠測、取得日時も保存する
担当者がPythonを保守できないGUIでワークフローを確認・修正複雑なデータ変換は別ツールが必要な場合がある
毎週同じレポートを作る対応プランでクラウド・スケジュール実行サイト更新後は結果と実行ログを確認する
天気と売上を比較したい気象表を分析しやすい形式で保存売上との結合・分析自体はExcelやBI等で行う

Octoparseが向いている気象データ活用例

  • 東京・大阪・名古屋など複数地域の気温や降水量を継続保存し、店舗売上と比較する
  • 降雨、風速、積雪などを地域別に整理し、配送や施工計画の参考データにする
  • 複数の公開ページに分かれた観測値を同じ列構成で保存する
  • 取得結果をGoogle Sheetsへ渡し、担当チームで共有する

ここでは、Octoparseを使って気象庁のデータを簡単にスクレイピングする方法について詳しく紹介します。

STEP 1:Octoparseをダウンロードしてアカウントを作成する

まずは公式サイトでOctoparseをダウンロードしアカウントを作成します。

STEP 2:新規タスクを作成して気象庁URLを読み込む

「新しいタスク」から取得先URLを入力します。気象庁の過去データ検索URLは prec_no(都道府県コード)・block_no(観測地点コード)・year/month/day などのパラメータで構成されており、複数地点を収集したい場合はこのURLリストを事前に準備しておくとスムーズです。

STEP 3:自動検出でデータテーブルを選択する

気象庁の観測データページには、気温・降水量・風速などが表(テーブル)形式で並んでいます。「自動検出」ボタンをクリックすると、Octoparseがページのテーブル構造を自動認識し、全行・全列を取得候補として提示します。列の確認と「適用」操作だけで、フィールド設定が完了します。手動でXPathを指定する上級の操作についてはXPathの使い方もご参照ください。

STEP 4:クラウドで実行する(PCを閉じたままでもOK)

クラウド抽出機能を使えば、Octoparseアプリを閉じたままでもクラウドサーバーがデータ収集を継続します。複数地点のURLリストを登録しておくと、タスクが自動分割されて並列処理が行われ、ローカル実行の約6〜20倍の速度で収集が完了します。

STEP 5:データをExcel/CSVでエクスポートする

収集完了後、ダッシュボードからワンクリックでExcel(.xlsx)またはCSV形式にエクスポートできます。取得したデータはそのまま既存のExcelファイルに貼り付けて使用可能です。Googleスプレッドシートへの自動取り込みや、OpenAPIを利用したデータベース連携にも対応しています。

関連記事:

気象庁スクレイピングをノーコードで実現|アメダスの自動取得からExcel出力まで

気象データを業務でどう活用できる?

気象データは、それ単体を見るより、売上、来店、広告、配送、設備など社内データと組み合わせることで価値が高まります。ただし相関があっても、天気が直接の原因とは限りません。曜日、祝日、販促、地域イベントなども同時に確認します。

業種組み合わせるデータ分析例
小売・EC気温、降水量、売上、在庫高温日の飲料需要、雨天時の店舗売上
マーケティング天気、広告費、クリック、来店天候別キャンペーン成果
物流・建設降雨、風速、配送・工程実績遅延や中止判断の振り返り
農業気温、降水、日照、収量地域・年度ごとの生育条件比較
研究・教育長期観測値、人口、土地利用気候傾向、都市熱環境の分析

気象データの商用利用・出典・アクセス頻度で注意することは?

気象庁ホームページのコンテンツは、個別の権利表示がない限り公共データ利用規約第1.0版に基づいて利用できますが、出典の記載が必要です。編集・加工した場合は、その事実と編集責任も明記します。画像などに第三者の権利が含まれる場合は、別途確認が必要です。

  • 「出典:気象庁ホームページ(対象ページURL)」のように出典を示す
  • 加工したデータは、加工した旨と編集責任を明記する
  • 更新頻度以上の短い間隔で無意味にアクセスしない
  • 取得エラー時に無制限の再試行をしない
  • 防災・安全上重要な判断を無保証の取得処理だけに依存させない

また、気象庁が発表した内容と異なる独自の予報を反復継続して他者へ提供する場合は、気象業務法に基づく予報業務の許可が必要になる可能性があります。単なるデータ取得と、独自の予報サービス提供は同じではありません。事業化する場合は気象庁の予報業務許可制度を確認し、必要に応じて専門家へ相談してください。

気象庁APIに関するよくある質問

質問1:気象庁APIは無料ですか?

一般に気象庁APIと呼ばれる天気予報JSONは、APIキーや利用料金なしで取得できます。無料の気象庁APIの使い方でも、正式な保証付きAPI契約ではないことを理解し、仕様変更や停止に備える必要があります。

質問2:気象庁APIにAPIキーは必要ですか?

天気予報JSONや公開されているCSVの取得にAPIキーは必要ありません。民間の気象APIや契約型データサービスでは、事業者が発行するキーが必要な場合があります。

質問3:過去の天気を気象庁APIで取得できますか?

天気予報JSONは過去観測値の一括取得用ではありません。過去の気温や降水量は、公式の「過去の気象データ・ダウンロード」からCSVで取得する方法が基本です。

質問4:気象庁APIは商用利用できますか?

気象庁ホームページのコンテンツは、公共データ利用規約第1.0版と個別の注意事項に従って利用できます。出典と加工表示が必要です。独自予報を継続して他者へ提供する場合は、予報業務許可の対象になり得ます。

質問5:気象庁APIをExcelから利用できますか?

Power QueryやVBAでJSONを取得・整形できますが、JSONの入れ子構造を理解する必要があります。一度だけ過去データを分析するなら公式CSV、Webページの表を反復収集するならOctoparse(オクトパース・オクトパス)も候補です。

質問6:Pythonを使わずに気象データを保存できますか?

できます。過去データは気象庁の公式CSVを利用できます。複数の公開Webページから同じ項目を継続収集する場合は、Octoparseで抽出項目を設定し、ExcelやCSVへ出力する方法があります。

まとめ

気象庁APIの使い方を理解する第一歩は、「気象庁API」が単一の公式サービスではなく、JSON、XML、CSVなど目的別の公開経路の総称として使われていると理解することです。今日から数日先の天気予報はJSON、警報等は防災情報XML、過去の観測値は公式CSVというように使い分けます。

Pythonで利用する場合は、エリアコード、発表日時、対象時刻、地域名を確認し、タイムアウトとHTTPエラー処理を加えてください。一方、公開Webページに掲載された複数地域の表を繰り返し整理し、ExcelやCSVへ保存したい場合は、Octoparseを使うことでコード開発と日々のコピー作業を減らせます。公式の取得手段で目的を満たせるときは公式手段を優先し、用途と運用条件に合う方法を選びましょう。

競合情報も営業リストも、ウェブデータをそのままExcel・CSV・Google Sheetsに出力

コード不要、誰でも今日から。クリック操作だけで必要な項目を自動抽出

Google Maps・食べログ・iタウンページ向けテンプレートで、リード獲得をすぐに開始

クラウドで毎日・毎週自動実行。大量取得でも安定して、競合動向を常に把握

MCP対応でAIエージェントと連携。収集データをAIに渡して分析・活用まで一気通貫

クレジットカード不要で無料スタート。世界600万人以上が選んだ信頼のツール

クリックだけでウェブ データを取得
無料ダウンロード

今すぐOctoparseを始めて、業務効率化を実現しましょう。

ダウンロード

関連記事