這份文件是什麼

本站把各地方政府與公路局依法主動公開的公告整理成可檢索的形式。此頁說明如何用程式取用同一份資料:公開資料 API(v1)提供 JSON,RSS提供訂閱用的 feed。兩者都是唯讀,不需要申請金鑰、不需要註冊。

機器可讀的介面描述:OpenAPI 3.1 文件(/api/openapi.json)。本頁內容與該檔以同一份實作為準。

端點一覽

API v1 端點(全部為 GET,基底位址 https://traffic.i23iv.cc
路徑用途參數回應主要欄位
/api/v1/records 分頁列表,排序 publish_date DESC, id ASC page(≥1,預設 1)、per_page(10–200,預設 50)、county(縣市代碼,大寫)、since / untilYYYY-MM-DD,比對公告日,閉區間)、q(關鍵字) api_versionpageper_pagetotaltotal_pagesfiltersrows[]
/api/v1/records/<id> 單筆記錄 id 須為 16 碼小寫十六進位字串;格式不符回 400,格式正確但查無資料回 404 api_versionrecord
/api/v1/counties 縣市清單與各縣筆數 api_versioncounties[]codezhregiontotal_recordslast_publish_daterss_url
/api/v1/latest 最新 N 筆(/api/v1/records 的輕量版,資料列形狀相同) limit(1–100,預設 20)、county(選用) api_versionlimitcountfiltersrows[]

參數處理慣例:數值型參數超出範圍一律夾到邊界值(不報錯);只有語法明確錯誤才回 400 —— 日期非 YYYY-MM-DDcounty 不是有效縣市代碼、id 格式不符。

curl 範例

列表(第 1 頁,每頁 50 筆):

curl -s "https://traffic.i23iv.cc/api/v1/records?page=1&per_page=50"

單筆記錄:

curl -s "https://traffic.i23iv.cc/api/v1/records/075bfed18688a160"

縣市清單:

curl -s "https://traffic.i23iv.cc/api/v1/counties"

最新 5 筆(限臺北市):

curl -s "https://traffic.i23iv.cc/api/v1/latest?limit=5&county=TPE"

縣市代碼可由 /api/v1/counties 取得(例:TPENWTTYCTXGKHH)。

record 欄位

資料列(rows[]record 使用同一組欄位;欄位名沿用資料庫欄位名,不改寫)
欄位型別說明
idstring16 碼小寫十六進位;同一筆公告的穩定識別碼
countystring縣市代碼(大寫)
county_zhstring縣市中文名
namestring公告所載姓名
publish_datestring / null公告日(YYYY-MM-DD
violation_datestring / null公告揭示的違規日期欄位(YYYY-MM-DD
incident_datestring / null事件發生日(YYYY-MM-DD
locationstring / null公告所載地點原文
districtstring / null由地點推得的鄉鎮市區(未能判定時為 null)
announcementstring / null公告事由原文(含換行)
photo_pathstring / null本站保存的公告截圖路徑(相對路徑)
source_urlstring / null政府原始公告頁網址
source_filestring / null本站抓取批次的來源檔名
fetched_atstring / null本站抓取時間,ISO 8601 帶 +08:00
geo_lat / geo_lngnumber / null地點座標(未定位時為 null)
geo_precisionstring / null座標精度層級
record_urlstring本站對應的單筆頁面網址

時間一律台灣時間 +08:00:所有日期欄位(publish_dateviolation_dateincident_date)都是台灣當地日期;fetched_at 為 ISO 8601 字串並明帶 +08:00 位移。請勿假設為 UTC。

姓名未遮罩,與政府原始公告一致name 欄位照政府公告原文輸出,本站不做遮罩、不做人別比對、不補充任何外部資料。使用時請一併遵守《個人資料保護法》相關規定,並以政府原始公告為準。

錯誤格式

除 429 外,非 2xx 回應一律為扁平兩鍵 JSON;429 的 body 不帶 message,改帶 retry_after_sec(與 Retry-After 標頭同值):

{"error":"invalid_parameter","message":"county 不是有效的縣市代碼:XXX"}
{"error":"rate_limit_exceeded","retry_after_sec":37}
狀態碼error時機
400invalid_parameter參數語法錯誤(日期格式、縣市代碼、id 格式)
404not_found查無該筆記錄,或不存在的 v1 端點
429rate_limit_exceeded超出流量限制(見下節);body 為 error + retry_after_sec,無 message
503database_unavailable資料庫暫時無法存取

RSS 訂閱

路徑內容
/rss.xml全站最新 50 筆公告
/rss/<COUNTY_CODE>.xml單一縣市最新 50 筆,<COUNTY_CODE> 為大寫縣市代碼(例 /rss/TPE.xml
curl -s "https://traffic.i23iv.cc/rss.xml"
curl -s "https://traffic.i23iv.cc/rss/TPE.xml"

CORS

/api/v1/* 是公開唯讀資料,回應一律帶 Access-Control-Allow-Origin: *,瀏覽器端可直接跨網域取用,不需代理。

其餘端點(例如站台自用的 /api/search/api/metrics/*不帶此標頭,預設同源使用;這些路徑的形狀可能隨站台前端調整,請以 /api/v1/* 作為對外介接對象。

流量限制

/api/ 為前綴的路徑套用每個來源 IP 每 60 秒 600 次請求的滑動視窗限制,超出時回 429。健康檢查端點(/api/health/api/healthz)豁免。

HTML 頁面、站台根目錄下的靜態檔與 /rss*.xml 不計入此額度;feed 改以伺服器端 300 秒快取控制負載。例外:限流以路徑前綴判斷,因此位於 /api/ 前綴下的靜態檔(例如 /api/openapi.json)仍計入額度,回應會帶 X-RateLimit-* 標頭。若需大量批次取用,建議以 per_page=200 分頁取代高頻小量請求。

版本策略

資料來源與引用建議

本站資料 100% 取自政府主動公開的網頁:交通部公路總局 酒駕累犯公布專區及各監理所、直轄市政府交通局的公告專區。詳細來源清單見公告來源總覽

引用時建議一併註明:資料原始出處(該筆的 source_url)、公告日(publish_date)、以及取用時間。本站僅做彙整與索引,不新增、不評價、不加註;資料正確性以政府公布為準,更正與下架流程見法律聲明常見問題

介面與整合邏輯採 CC BY-NC-SA 4.0 授權;政府公告本身的再利用條件依《政府資訊公開法》與各機關規定辦理。