Japan Weather Forecast API - JMA Official Data avatar

Japan Weather Forecast API - JMA Official Data

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Japan Weather Forecast API - JMA Official Data

Japan Weather Forecast API - JMA Official Data

Official Japan weather forecasts as clean JSON: 3-day and weekly forecasts for all 47 prefectures (56 JMA forecast areas) from Japan Meteorological Agency open data. Weather codes, rain probability, min/max temperatures, overview text. No API key.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

panda studio

panda studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

25 days ago

Last modified

Share

Japan Weather Forecast API (JMA Official Data)

Get official Japan weather forecasts as clean JSON — 3-day and weekly forecasts for all 47 prefectures, straight from the Japan Meteorological Agency (JMA / 気象庁) open data. Weather codes, precipitation probability, min/max temperatures with ranges, wind, waves and the forecaster's written overview, one tidy item per forecast area. No API key, no login, no proxy.

What does Japan Weather Forecast (JMA) do?

JMA publishes its forecasts as free open JSON (jma.go.jp/bosai), but the raw feed is undocumented and hard to use: values sit in parallel arrays, temperatures arrive as strings (sometimes empty), areas are numeric codes, and the 3-day and weekly blocks have different shapes.

This Actor downloads those official files and restructures them:

  • parallel arrays are turned into one entry per timestamp (time, weather, weatherCode, pop, temp, ...)
  • numbers become numbers ("26" → 26, empty → null)
  • every weather code gets a language-independent weatherCategory (sunny / cloudy / rain / snow)
  • each item carries the office name in Japanese and English, the JMA report time, the exact source URLs and the attribution JMA requires

Who is it for?

  • App and dashboard developers who need Japan forecasts in a stable JSON shape
  • Travel, events and logistics teams checking the week ahead across prefectures
  • Retail / e-commerce analysts adding weather to demand models for Japan
  • AI agents and LLM workflows that need current Japanese forecast data through the Apify API or MCP
  • Researchers archiving daily snapshots of official forecasts

Why use this Actor?

  • Official source only: JMA's own published files, not a third-party weather API
  • The whole country in one run: 56 JMA forecast files covering all 47 prefectures (Hokkaido, Kagoshima and Okinawa are split into several areas)
  • 3-day + weekly + written overview in the same item
  • Provenance on every item: reportDatetime, sourceUrls, fetchedAt, attribution
  • Partial failures do not break your pipeline: a missing section becomes null and the reason goes into errors
  • Light and polite: standard-library Python, one connection, at least 0.5 s between requests; a Tokyo run takes a few seconds at 256 MB

What data do you get?

One dataset item per forecast office:

FieldDescription
areaCode, areaName, areaNameEnJMA office code and name (e.g. 130000, 東京都, Tokyo)
publishingOffice, reportDatetimeIssuing office and official report time (JST)
forecastThreeDay.timeSeries3-day forecast per sub-area: weather (Japanese text), weatherCode, weatherCategory, wind, wave; 6-hourly pop (%); point temp for observation stations
forecastWeekly.timeSeries7-day forecast: weatherCode, weatherCategory, pop, reliability (A/B/C), tempMin/tempMax with ...Upper/...Lower ranges
forecastWeekly.tempAverage, precipAverageClimatological normals JMA ships with the weekly forecast
overviewForecaster's written discussion (text, targetArea, reportDatetime) in Japanese
sourceUrls, attribution, fetchedAt, errorsProvenance and non-fatal problems

How much does it cost?

Pay per event: $0.005 per dataset item (= per forecast area) plus $0.00005 per run start. Platform usage is included.

ScenarioItemsCost
Tokyo, one run1$0.00505
Tokyo, once a day for 30 days30about $0.15
Whole country (56 forecast files), one run56about $0.28
Whole country, once a day for 30 days1,680about $8.40

If you set a maximum cost per run in Apify, the Actor processes only as many areas as fit under it.

How to use it

  1. Click Try for free (Tokyo 130000 is prefilled).
  2. Add more office codes, or tick Fetch all areas for the whole country.
  3. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
  4. For a continuously updated feed, add a Schedule (JMA updates at about 05:00, 11:00 and 17:00 JST).

Office codes: 130000 Tokyo, 270000 Osaka, 230000 Aichi, 016000 Ishikari/Sorachi/Shiribeshi (Sapporo), 400000 Fukuoka, 471000 Okinawa main island. Full list: the offices object in area.json.

Input

FieldTypeDefaultDescription
areaCodesarray["130000"]JMA office codes
allAreasbooleanfalseFetch the whole country, 56 forecast files (overrides areaCodes)
includeOverviewbooleantrueAlso fetch the written overview
includeWeeklybooleantrueInclude the 7-day block
maxAreasinteger60Safety cap per run (max 60)
requestIntervalSecsinteger1Delay between requests to JMA
{
"areaCodes": ["130000", "270000"],
"includeOverview": true,
"includeWeekly": true
}

Output example

Real output for Tokyo, fetched 2026-09-24 (report of 17:00 JST), shortened to the first sub-area and a few days:

{
"areaCode": "130000",
"areaName": "東京都",
"areaNameEn": "Tokyo",
"publishingOffice": "気象庁",
"reportDatetime": "2026-09-24T17:00:00+09:00",
"forecastThreeDay": {
"timeSeries": [
[
{
"areaName": "東京地方",
"areaCode": "130010",
"entries": [
{ "time": "2026-09-24T17:00:00+09:00", "weatherCode": "111", "weatherCategory": "sunny",
"weather": "晴れ 夜 くもり 所により 雨", "wind": "南の風 後 北東の風", "wave": "0.5メートル" },
{ "time": "2026-09-25T00:00:00+09:00", "weatherCode": "200", "weatherCategory": "cloudy",
"weather": "くもり 所により 朝晩 雨", "wind": "北東の風 後 南東の風", "wave": "0.5メートル" }
]
}
],
[
{
"areaName": "東京地方",
"areaCode": "130010",
"entries": [
{ "time": "2026-09-24T18:00:00+09:00", "pop": 20 },
{ "time": "2026-09-25T06:00:00+09:00", "pop": 10 }
]
}
],
[
{
"areaName": "東京",
"areaCode": "44132",
"entries": [
{ "time": "2026-09-25T00:00:00+09:00", "temp": 20 },
{ "time": "2026-09-25T09:00:00+09:00", "temp": 26 }
]
}
]
]
},
"forecastWeekly": {
"timeSeries": [
[
{
"areaName": "東京地方",
"areaCode": "130010",
"entries": [
{ "time": "2026-09-26T00:00:00+09:00", "weatherCode": "203", "weatherCategory": "cloudy", "pop": 70, "reliability": null },
{ "time": "2026-09-29T00:00:00+09:00", "weatherCode": "200", "weatherCategory": "cloudy", "pop": 40, "reliability": "B" }
]
}
],
[
{
"areaName": "東京",
"areaCode": "44132",
"entries": [
{ "time": "2026-09-28T00:00:00+09:00", "tempMin": 20, "tempMinUpper": 22, "tempMinLower": 18,
"tempMax": 27, "tempMaxUpper": 31, "tempMaxLower": 25 }
]
}
]
],
"tempAverage": { "areas": [ { "area": { "name": "東京", "code": "44132" }, "min": "17.8", "max": "25.0" } ] }
},
"overview": {
"reportDatetime": "2026-09-24T16:35:00+09:00",
"targetArea": "東京都",
"text": " 低気圧が日本の東を東北東に進み、関東甲信地方は高気圧に緩やかに覆われています。..."
},
"sourceUrls": [
"https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json",
"https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json"
],
"attribution": "Source: Japan Meteorological Agency website (出典:気象庁ホームページ https://www.jma.go.jp/)",
"fetchedAt": "2026-09-24T14:18:51+00:00",
"errors": []
}

Tips

  • Use weatherCategory or weatherCode for logic; weather is JMA's Japanese text.
  • The first weekly day often has pop: null / tempMin: null because it overlaps the 3-day forecast. That is how JMA publishes it.
  • Polling more often than JMA's update times returns the same data; compare reportDatetime to detect a new issue.
  • Turn off includeOverview if you only need numbers (one request less per area).

Integrations and API

Connect the dataset to Google Sheets, Slack, Make, Zapier, n8n or a webhook from the Integrations tab.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("panda_studio/jma-weather-forecast").call(run_input={"areaCodes": ["130000"]})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('panda_studio/jma-weather-forecast').call({ areaCodes: ['130000'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

cURL (run and get items in one call)

curl -X POST "https://api.apify.com/v2/acts/panda_studio~jma-weather-forecast/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" -d '{"areaCodes":["130000"]}'

MCP (Claude, Cursor, VS Code): https://mcp.apify.com?tools=panda_studio/jma-weather-forecast

Data source, terms and attribution

  • Data: Japan Meteorological Agency, https://www.jma.go.jp/bosai/forecast/
  • JMA's website terms (https://www.jma.go.jp/jma/kishou/info/coment.html) follow the Public Data License v1.0: copying, modification and redistribution, including commercial use, are allowed with attribution.
  • Every item carries the attribution string. If you republish the data, keep it ("出典:気象庁ホームページ" / "Source: Japan Meteorological Agency website") and do not present edited data as issued by the Government of Japan.
  • Not affiliated with or endorsed by JMA. No personal data is processed.

Scope. This Actor relays JMA's published forecasts unchanged. It does not create its own forecasts or warnings. Under Japan's Meteorological Service Act (Articles 17 and 23), original forecasting or issuing warnings requires a JMA licence; if you build that on top of this data, that responsibility is yours.

FAQ

Do I need an API key? No. JMA's files are public.

Is the text in English? Office names have English versions (areaNameEn). Weather text and the overview are in Japanese as issued by JMA; codes, categories and numbers are language-independent.

Does it include weather warnings, typhoon tracks or live observations? No. Only the 3-day and weekly forecasts and the forecast overview.

How do I get every prefecture? Tick Fetch all areas. It returns 56 items covering all 47 prefectures. JMA lists 58 offices, but Tokachi (014030) is published inside Kushiro/Nemuro (014100) and Amami (460040) inside Kagoshima (460100); the Actor fetches those parent files instead of returning errors.

How often is the data updated? JMA usually issues forecasts at about 05:00, 11:00 and 17:00 JST.

What happens if JMA is down for one area? The item is still returned; the failed part is null and the reason is in errors.

Can I use the output commercially? JMA's terms allow it with attribution. Check the terms yourself for your use case.

Changelog

  • 2026-09-24 — maxAreas default raised from 47 to 60 so Fetch all areas covers the whole country (before, the last 11 offices, Saga to Okinawa, were cut). Tokachi and Amami, which have no forecast file of their own, are now read from their parent files instead of returning a 404 error item. The Actor now respects your maximum cost per run. README rewritten with real output and cost examples.
  • 2026-08-16 — Rebuilt without the Apify SDK (standard library only) for reliable builds.