Japan Weather Forecast API - JMA Official Data
Pricing
from $5.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
25 days ago
Last modified
Categories
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
nulland the reason goes intoerrors - 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:
| Field | Description |
|---|---|
areaCode, areaName, areaNameEn | JMA office code and name (e.g. 130000, 東京都, Tokyo) |
publishingOffice, reportDatetime | Issuing office and official report time (JST) |
forecastThreeDay.timeSeries | 3-day forecast per sub-area: weather (Japanese text), weatherCode, weatherCategory, wind, wave; 6-hourly pop (%); point temp for observation stations |
forecastWeekly.timeSeries | 7-day forecast: weatherCode, weatherCategory, pop, reliability (A/B/C), tempMin/tempMax with ...Upper/...Lower ranges |
forecastWeekly.tempAverage, precipAverage | Climatological normals JMA ships with the weekly forecast |
overview | Forecaster's written discussion (text, targetArea, reportDatetime) in Japanese |
sourceUrls, attribution, fetchedAt, errors | Provenance 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.
| Scenario | Items | Cost |
|---|---|---|
| Tokyo, one run | 1 | $0.00505 |
| Tokyo, once a day for 30 days | 30 | about $0.15 |
| Whole country (56 forecast files), one run | 56 | about $0.28 |
| Whole country, once a day for 30 days | 1,680 | about $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
- Click Try for free (Tokyo
130000is prefilled). - Add more office codes, or tick Fetch all areas for the whole country.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
- 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
| Field | Type | Default | Description |
|---|---|---|---|
areaCodes | array | ["130000"] | JMA office codes |
allAreas | boolean | false | Fetch the whole country, 56 forecast files (overrides areaCodes) |
includeOverview | boolean | true | Also fetch the written overview |
includeWeekly | boolean | true | Include the 7-day block |
maxAreas | integer | 60 | Safety cap per run (max 60) |
requestIntervalSecs | integer | 1 | Delay 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
weatherCategoryorweatherCodefor logic;weatheris JMA's Japanese text. - The first weekly day often has
pop: null/tempMin: nullbecause 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
reportDatetimeto detect a new issue. - Turn off
includeOverviewif 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 ApifyClientclient = 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 —
maxAreasdefault 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.