サイトのAPI図鑑B版
掲載情報が正確でない可能性があります。
気象・環境データAPI

OpenWeatherMap APIで天気アプリを作る完全ガイド【無料枠・実装例】

OpenWeatherMap APIを使った現在の天気・5日間予報・エアクオリティの取得方法を解説。Next.js・React・Pythonでの実装例と無料プランの活用方法も紹介します。

#OpenWeatherMap#天気API#天気アプリ#気象データ

OpenWeatherMap APIとは

OpenWeatherMapは世界中の天気データをAPIで提供するサービスで、無料プランから始められることから多くの開発者・スタートアップに利用されています。現在の天気・予報・過去データ・大気質・紫外線指数など多様な気象情報を取得できます。

APIキーの取得

  1. openweathermap.orgでアカウント作成
  2. 「API keys」タブからキーを確認(デフォルトキーが自動生成)
  3. キーの有効化に数時間かかる場合があります

現在の天気を取得する

// 都市名での取得
GET https://api.openweathermap.org/data/2.5/weather
  ?q=Tokyo,JP
  &appid={API_KEY}
  &units=metric  // 摂氏
  &lang=ja       // 日本語

// 緯度経度での取得
GET https://api.openweathermap.org/data/2.5/weather
  ?lat=35.6762
  &lon=139.6503
  &appid={API_KEY}
  &units=metric

レスポンスの主要フィールド:

  • main.temp:気温(摂氏)
  • main.humidity:湿度(%)
  • weather[0].description:天気の説明(lang=jaで日本語)
  • weather[0].icon:天気アイコンコード
  • wind.speed:風速(m/s)
  • rain.1h:1時間の降水量(mm)

5日間予報の取得

GET https://api.openweathermap.org/data/2.5/forecast
  ?q=Osaka,JP
  &appid={API_KEY}
  &units=metric
  &lang=ja

3時間ごとのデータが40件返ります。日ごとのグループ化は取得後にクライアント側で処理する必要があります。

Next.jsでの実装例

// app/weather/page.tsx
async function getWeather(city: string) {
  const res = await fetch(
    `https://api.openweathermap.org/data/2.5/weather?q=${city},JP&appid=${process.env.OPENWEATHER_API_KEY}&units=metric&lang=ja`,
    { next: { revalidate: 1800 } } // 30分キャッシュ
  );
  return res.json();
}

export default async function WeatherPage() {
  const weather = await getWeather('Tokyo');
  return (
    <div>
      <h1>東京の天気</h1>
      <p>{Math.round(weather.main.temp)}°C - {weather.weather[0].description}</p>
    </div>
  );
}

アイコンの表示

天気アイコンはAPIレスポンスのiconコードを使って表示できます。

<img src=`https://openweathermap.org/img/wn/${weather.weather[0].icon}@2x.png` alt="天気" />

大気質API(Air Pollution)

Air Pollution APIを使うとPM2.5・CO・NO2・O3などの大気汚染指標を取得できます。健康・アウトドア・農業アプリでの活用に適しています。無料プランでも利用可能です。

まとめ

OpenWeatherMap APIは無料で利用できる充実した天気データAPIです。現在の天気・予報・大気質をシンプルなREST APIで取得でき、個人プロジェクトからスタートアップまで幅広く活用されています。APIキーの取得→無料プランで開発→必要に応じて有料プランに移行というステップで使い始めてみてください。

よくある質問

Q.OpenWeatherMap APIの無料枠で何が使えますか?

Freeプランでは現在の天気(Current Weather API)・5日間3時間ごとの予報(5 Day Forecast API)・大気質(Air Pollution API)が利用でき、月60コール/分・1日1,000コールまで無料です。

Q.日本語で天気情報を取得できますか?

lang=jaパラメーターを追加することで、天気の説明文(descriptionフィールド)が日本語で返ります。都市名は日本語の場合、q=Tokyo,JPのように英語で指定することをお勧めします。

Q.One Call APIとは何ですか?

One Call APIは現在の天気・48時間予報・8日間予報・過去データ・アラートを1回のAPIコールで取得できる便利なAPIです。無料プランでも利用可能(月1,000コール)ですが、One Call API 3.0は別途サブスクリプションが必要な場合があります。

関連記事