跳到內容
主控台

颱風

這組端點整理中央氣象署發布的四種颱風資料:路徑(track)、路徑潛勢(potential)、暴風圈侵襲機率(probability)與颱風警報(warning),另有進行中熱帶氣旋索引與疊圖用 GeoJSON。伺服器每分鐘檢查一次來源,歷史快照保留 7 天。適合做颱風動態頁、路徑地圖與警報提示。共通格式見氣象 API 概要。

上游條款
  • 中央氣象署:另須遵守中央氣象署的資料使用規範(例如政府資料開放授權條款);氣象與地震資訊以中央氣象署發布的內容為準。

標示位置、範例與商業使用申請見資料授權與來源標示。

目前不需要 API Token。

  • 所有端點都回 { updated, cyclones: [...] }(GeoJSON 端點除外)。同時有多個熱帶氣旋時,cyclones 有多筆。
  • tdNo 是熱帶氣旋的唯一識別(中央氣象署的熱帶性低氣壓編號),同一個快照內不重複;四種資料用 tdNo 互相對應。尚未命名的熱帶性低氣壓也有 tdNo,此時 name、cwaName、tyNo 為 ""。
  • 時間是 Unix 秒。沒有資料時 updated 為 0。
  • 缺值是 null。
  • 座標:索引、路徑、警報用 lat、lon 兩個欄位;路徑潛勢、侵襲機率與 GeoJSON 用 [經度, 緯度] 陣列。小數 4 位。
  • 單位:風速、陣風 m/s;氣壓 hPa;移速 km/h;半徑 km。移向是 16 方位英文縮寫,例如 NNW。
  • 沒有活動中的熱帶氣旋時,索引、track、potential、probability 的 cyclones 為 [];warning 通常保留最近一筆「解除」警報(msgType 為 Cancel)。
kind 內容 用途
track 颱風路徑:過去與目前定位、目前移動、象限暴風半徑、未來各時距的預報定位 數值最完整,判斷暴風範圍請用這份的四象限半徑
potential 路徑潛勢預報:過去路徑、預測路徑、潛勢範圍(不確定性錐)、七級風暴風圈、各預報時間點 畫路徑潛勢圖
probability 暴風圈侵襲機率:20%、40%、60%、80%、100% 的巢狀等值線 畫機率圖,或判斷某個座標落在哪個機率區
warning 颱風警報:發布、更新或解除,警報內文、颱風資訊與影響縣市 顯示目前的海上/陸上颱風警報

每個熱帶氣旋一筆最新定位與強度,取自 track。

GEThttps://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon
伺服器TNN-1
請求範例
curl "https://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon"
回應

成功

{
"updated": 1794614400,
"cyclones": [
{
"tdNo": "27",
"name": "DOLPHIN",
"cwaName": "白海豚",
"year": 2026,
"tyNo": "26",
"t": 1794614400,
"lat": 18.3,
"lon": 128.9,
"wind": 33,
"gust": 43,
"pres": 970,
"speed": 22,
"dir": "WNW"
}
]
}

資料未變更(If-None-Match 相符),沒有 body沒有回應本文

試試看

Token 只會從你的瀏覽器直接送到 API。

欄位類型說明
updatednumber最新定位時間,Unix 秒;沒有資料為 0
cyclones[].tdNostring熱帶性低氣壓編號,唯一識別
cyclones[].namestring國際英文名;未命名為空字串
cyclones[].cwaNamestring中文名;未命名為空字串
cyclones[].yearnumber年份
cyclones[].tyNostring颱風編號;仍是熱帶性低氣壓時為空字串
cyclones[].tnumber這筆定位時間,Unix 秒
cyclones[].latnumber中心緯度
cyclones[].lonnumber中心經度
cyclones[].windnumber | null近中心最大風速(m/s)
cyclones[].gustnumber | null最大陣風(m/s)
cyclones[].presnumber | null中心氣壓(hPa)
cyclones[].speednumber | null移速(km/h)
cyclones[].dirstring | null移向,16 方位英文縮寫

依 kind 取得四種資料的最新一份。各自的結構見下方小節。

GEThttps://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/{kind}
伺服器TNN-1
路徑參數
  • kindstring必填

    路徑參數。track、potential、probability 或 warning

請求範例
curl "https://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/<kind>"
回應

成功(以 track 為例)

{
"updated": 1794614400,
"cyclones": [
{
"tdNo": "27",
"name": "DOLPHIN",
"cwaName": "白海豚",
"year": 2026,
"tyNo": "26",
"analysis": [
{
"t": 1794528000,
"lat": 16.9,
"lon": 131.2,
"wind": 28,
"gust": 38,
"pres": 980
},
{
"t": 1794614400,
"lat": 18.3,
"lon": 128.9,
"wind": 33,
"gust": 43,
"pres": 970
}
],
"now": {
"speed": 22,
"dir": "WNW",
"move": [
"以每小時22公里速度,向西北西進行",
"WNW 22 KM/HR"
],
"c15": {
"avg": 180,
"ne": 200,
"se": 180,
"sw": 160,
"nw": 180
},
"c25": null
},
"forecast": [
{
"tau": 6,
"t": 1794636000,
"lat": 18.8,
"lon": 127.9,
"wind": 35,
"gust": 45,
"pres": 965,
"speed": 20,
"dir": "WNW",
"r15": 180,
"r70": 80,
"state": null
}
]
}
]
}

資料未變更(If-None-Match 相符),沒有 body沒有回應本文

試試看
路徑參數

Token 只會從你的瀏覽器直接送到 API。

欄位類型說明
updatednumber最新定位時間,Unix 秒;沒有資料為 0
cyclones[].tdNo、name、cwaName、year、tyNostring / number同「進行中的熱帶氣旋」
cyclones[].analysis[]object[]過去與目前的定位,時間由舊到新
tnumber定位時間,Unix 秒
lat、lonnumber中心座標
wind、gust、presnumber | null近中心最大風速、最大陣風(m/s)、中心氣壓(hPa)
cyclones[].now.speednumber | null目前移速(km/h)
cyclones[].now.dirstring | null目前移向
cyclones[].now.movestring[] | null移動描述 [中文, 英文]
cyclones[].now.c15object | null七級風暴風半徑(km):avg 平均,ne、se、sw、nw 四象限;太弱時為 null
cyclones[].now.c25object | null十級風暴風半徑(km),結構同 c15
cyclones[].forecast[].taunumber預報時距(小時)
cyclones[].forecast[].tnumber預報時間,Unix 秒
cyclones[].forecast[].lat、lonnumber預報中心座標
cyclones[].forecast[].wind、gust、presnumber | null預報強度
cyclones[].forecast[].speed、dirnumber | null / string | null預報移速(km/h)與移向
cyclones[].forecast[].r15number | null七級風暴風半徑(km)
cyclones[].forecast[].r70number | null70% 機率半徑(km)
cyclones[].forecast[].statestring[] | null減弱或變性描述 [中文, 英文]

判斷某地是否在暴風範圍內時,請用 now.c15 / now.c25 的四象限半徑;potential 的暴風圈是對稱圓,只適合示意。

{
"updated": 1794614400,
"cyclones": [
{
"tdNo": "27",
"name": "白海豚",
"past": [[131.2, 16.9], [128.9, 18.3]],
"forecast": [[128.9, 18.3], [127.9, 18.8], [125.6, 19.9]],
"cone": [[128.4, 18.0], [127.3, 18.4], [124.8, 19.3], [126.1, 20.6], [128.9, 18.3], [128.4, 18.0]],
"circle": [[130.6, 18.3], [128.9, 20.0], [127.2, 18.3], [128.9, 16.6], [130.6, 18.3]],
"current": [128.9, 18.3],
"points": [
{ "label": "11月14日14時", "lng": 127.9, "lat": 18.8 },
{ "label": "11月15日08時", "lng": 125.6, "lat": 19.9 }
]
}
]
}
欄位類型說明
updatednumber資料時間,Unix 秒;沒有資料為 0
cyclones[].tdNostring熱帶性低氣壓編號;對應不到時為空字串
cyclones[].namestring來源資料的名稱,例如中文名或 TD27
cyclones[].pastnumber[][]過去路徑 [[經度, 緯度], ...]
cyclones[].forecastnumber[][]預測路徑
cyclones[].conenumber[][]路徑潛勢範圍(不確定性錐)的外框
cyclones[].circlenumber[][] | null七級風暴風圈(對稱圓,示意用);較弱時為 null
cyclones[].currentnumber[] | null目前中心 [經度, 緯度]
cyclones[].points[]object[]各預報時間點:label 時間文字、lng、lat
{
"updated": 1794614400,
"cyclones": [
{
"tdNo": "27",
"levels": [
{ "p": 100, "coords": [[128.6, 18.0], [129.2, 18.4], [128.9, 18.9], [128.6, 18.0]] },
{ "p": 20, "coords": [[126.0, 17.2], [130.4, 17.6], [129.8, 21.0], [125.1, 20.5], [126.0, 17.2]] }
]
}
]
}
欄位類型說明
updatednumber資料時間,Unix 秒;沒有資料為 0
cyclones[].tdNostring熱帶性低氣壓編號
cyclones[].levels[].pnumber侵襲機率(%):20、40、60、80、100
cyclones[].levels[].coordsnumber[][]該機率的封閉等值線 [[經度, 緯度], ...]

levels 依機率由高到低排列(100 在最內圈)。判斷座標所在機率時,從 p 最高的等值線開始做點在多邊形內的判斷。

中央氣象署通常一次只有一份颱風警報,cyclones 長度為 0 或 1。

{
"updated": 1794615000,
"cyclones": [
{
"tdNo": "27",
"active": true,
"id": "CWA-Weather_typhoon-warning_202611140830000000",
"sent": 1794615000,
"status": "Actual",
"msgType": "Cancel",
"scope": "Public",
"event": "颱風",
"urgency": "Past",
"severity": "Minor",
"certainty": "Observed",
"effective": 1794615000,
"onset": 1794615000,
"expires": 1794618600,
"headline": "解除颱風警報",
"senderName": "中央氣象署",
"typhoon": {
"no": "26",
"name": "DOLPHIN",
"cwaName": "白海豚",
"reportNo": "12",
"category": "END",
"analysis": { "t": 1794614400, "lat": 18.3, "lon": 128.9, "wind": 33, "gust": 43, "pres": 970, "r15": 180, "scale": ["中度颱風", "TYPHOON"] },
"prediction": { "t": 1794700800, "lat": 20.1, "lon": 125.0, "wind": 30, "gust": 40, "pres": 975, "r15": 160, "scale": null }
},
"sections": [
{ "title": "命名與位置", "text": "中度颱風白海豚(國際命名 DOLPHIN)……" }
],
"areas": [
{ "name": "臺北市", "code": "63000000" }
]
}
]
}
欄位類型說明
updatednumber最新警報的發布時間,Unix 秒;沒有資料為 0
cyclones[].tdNostring熱帶性低氣壓編號;對應不到目前的熱帶氣旋時為空字串(常見於舊的解除警報)
cyclones[].activeboolean是否解析到警報內容
cyclones[].idstring警報識別碼
cyclones[].sentnumber | null發布時間,Unix 秒
cyclones[].statusstring例如 Actual
cyclones[].msgTypestringAlert 發布、Update 更新、Cancel 解除
cyclones[].scope、event、urgency、severity、certaintystring警報的範圍、事件、緊急程度、嚴重程度、確定程度,沿用來源原文
cyclones[].effective、onset、expiresnumber | null生效、開始、失效時間,Unix 秒
cyclones[].headlinestring標題,例如「海上颱風警報」「解除颱風警報」
cyclones[].senderNamestring發布單位
cyclones[].typhoon.nostring颱風編號(等於 tyNo,不是 tdNo)
cyclones[].typhoon.name、cwaNamestring英文名、中文名
cyclones[].typhoon.reportNostring警報報數
cyclones[].typhoon.categorystring警報類別,沿用來源原文,例如解除時為 END
cyclones[].typhoon.analysisobject | null目前定位:t、lat、lon、wind、gust、pres、r15(七級風暴風半徑 km)、scale(強度 [中文, 英文])
cyclones[].typhoon.predictionobject | null預測定位,結構同 analysis
cyclones[].sections[]object[]警報內文各段:title、text
cyclones[].areas[]object[]影響縣市:name 名稱、code 縣市代碼

某種資料的歷史快照時間,差量編碼的 Unix 秒,由舊到新。還原方式見差量時間列表。

GEThttps://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/{kind}/list
伺服器TNN-1
路徑參數
  • kindstring必填

    路徑參數。track、potential、probability 或 warning

請求範例
curl "https://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/<kind>/list"
回應

成功

[
1794528000,
21600,
21600,
21600,
21600
]

資料未變更(If-None-Match 相符),沒有 body沒有回應本文

試試看
路徑參數

Token 只會從你的瀏覽器直接送到 API。

欄位類型說明
[0]number最舊一筆快照的時間,Unix 秒
[i](i ≥ 1)number與前一筆的時間差(秒)

快照時間是資料本身的時間:track 是最新定位時間,potential、probability 是來源資料時間,warning 是警報發布時間(sent)。沒有快照時回 []。

某種資料在指定時刻的快照,結構與對應的最新資料相同。只在 static.core 提供,api.core 對這個路徑回 404。

GEThttps://static.core-tnn1.exptech.dev/api/v5/meteor/typhoon/{kind}/{time}
伺服器TNN-1
路徑參數
  • kindstring必填

    路徑參數。track、potential、probability 或 warning

  • timeinteger必填

    路徑參數。10 位 Unix 秒,必須是 /{kind}/list 裡出現過的值

請求範例
curl "https://static.core-tnn1.exptech.dev/api/v5/meteor/typhoon/<kind>/<time>"
回應

成功(以 probability 為例)

{
"updated": 1794614400,
"cyclones": [
{
"tdNo": "27",
"levels": [
{
"p": 100,
"coords": [
[
128.6,
18
],
[
129.2,
18.4
],
[
128.9,
18.9
],
[
128.6,
18
]
]
}
]
}
]
}

資料未變更(If-None-Match 相符),沒有 body沒有回應本文

time 不是整數,或該時刻沒有快照(超過保留期限也是)。沒有 body沒有回應本文

試試看
路徑參數

Token 只會從你的瀏覽器直接送到 API。

同取得颱風資料中對應 kind 的欄位。

由最新的 potential 與 probability 組成的 GeoJSON FeatureCollection,可直接加到 MapLibre、Leaflet 等地圖。

GEThttps://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/geojson
伺服器TNN-1
請求範例
curl "https://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/geojson"
回應

成功

{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
128.9,
18.3
],
[
127.9,
18.8
],
[
125.6,
19.9
]
]
},
"properties": {
"kind": "forecast",
"tdNo": "27"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
127.9,
18.8
]
},
"properties": {
"kind": "forecastPoint",
"label": "11月14日14時",
"tdNo": "27"
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
128.6,
18
],
[
129.2,
18.4
],
[
128.9,
18.9
],
[
128.6,
18
]
]
]
},
"properties": {
"kind": "probability",
"p": 100,
"tdNo": "27"
}
}
]
}

資料未變更(If-None-Match 相符),沒有 body沒有回應本文

試試看

Token 只會從你的瀏覽器直接送到 API。

每個 Feature 的 properties.kind 決定它是什麼,並都帶 properties.tdNo。

properties.kind 幾何 內容
past LineString 過去路徑
forecast LineString 預測路徑
cone Polygon 路徑潛勢範圍
circle15 Polygon 七級風暴風圈(對稱圓)
current Point 目前中心
forecastPoint Point 預報時間點,properties.label 為時間文字
probability Polygon 侵襲機率等值線,properties.p 為機率(%)

沒有颱風時 features 為 []。

把疊圖用 GeoJSON 直接當作 MapLibre GL JS 的 source,再用 kind 篩出要畫的圖形,例如潛勢範圍:

map.addSource("typhoon", {
type: "geojson",
data: "https://api.core-tnn1.exptech.dev/api/v5/meteor/typhoon/geojson",
});
map.addLayer({
id: "typhoon-cone",
type: "fill",
source: "typhoon",
filter: ["==", ["get", "kind"], "cone"],
paint: { "fill-color": "#f97316", "fill-opacity": 0.2 },
});
  • 時間都是 Unix 秒,缺值是 null。
  • 歷史快照保留 7 天,但每種資料至少保留最新一筆,所以颱風季結束後仍查得到最後一份(通常是解除警報)。
  • potential、probability、warning 的 tdNo 是伺服器依名稱、編號或位置對應到 track 得出的,對應不到時為空字串。
  • 資料來源:中央氣象署開放資料的颱風資料。
  • 伺服器選擇見氣象 API 概要:時間戳快照走 static.core,其他走 api.core,建議直接用 TNN-1 的網址。