政府開放資料怎麼用?做成內部工具或 App 前,授權商用、API 斷線與自建費用一次看懂

恆遠數位編輯團隊約 17 分鐘閱讀
政府開放資料文章封面:做成內部工具或 App 前,先看授權、API 與自建費用
複製引文

政府開放資料是政府機關把手上的資料整理成機器讀得懂的格式,免費讓任何人下載或用 API 取用,農產品行情、公車到站、天氣預報、公司登記都在裡面。大部分資料集可以拿來做商業產品,條件是清楚標示來源。真正花時間的地方在後面:日期和品名的寫法各機關不一樣,API 會變慢、會改版、也可能停止提供,原始數字跟使用者想知道的事之間,還差一段翻譯。

這些地方我們自己踩過。我們做過一支 App「今日菜價」,把農業部每天公布的蔬果批發行情,做成逛市場前打開就能看的行情雷達,2026 年 7 月 20 日通過審核上架 App Store。資料是免費的,但從「下載得到」到「使用者打開就能用」,中間卡了好幾關。這篇把那些經驗整理給想做資料型產品或內部儀表板的老闆和 PM:資料去哪找、能不能商用、格式和更新頻率要看什麼、API 斷了怎麼辦,以及自建大概要花多少。

拿我們用的那份資料舉例,政府資料開放平臺上的「農產品交易行情」標示每 1 天更新、採用政府資料開放授權條款、免費,2016 年就上架了。資料很成熟,但同一頁寫了一句「部分市場於週一休市」。做產品時最容易出事的,就是這種寫在角落的小字。

政府開放資料去哪找:常用資料源與取得方式一覽

先查 政府資料開放平臺 data.gov.tw,再去各部會自己的開放平臺。前者是總目錄,一份資料集的授權、更新頻率、格式都寫在同一頁;後者常有更完整的 API 說明和會員機制。下表是做產品時最常碰到的幾個來源。

資料源

有什麼

怎麼取得

要不要申請金鑰

做產品前要注意

政府資料開放平臺 data.gov.tw

各機關資料集的總目錄

依資料集提供 CSV、JSON 或 API 連結

看資料集

每份資料集的授權欄位、更新頻率要個別看

農業部資料開放平臺

農產品、漁產品、家禽交易行情

HTTP GET 回 JSON,也有 CSV

我們用的行情 API 不需要

日期是民國年、價格是批發價、部分市場週一休市

交通部 TDX 運輸資料流通服務

公車、軌道、路況等運輸資料

API,先用金鑰換 token

要,會員註冊後取得

呼叫次數依訂閱方案,換 token 的端點另有上限

中央氣象署氣象資料開放平臺

預報、觀測、地震等氣象資料

API

要,會員授權碼

沒帶授權碼直接回 401

縣市政府資料

停車、垃圾車位置、在地設施

很多也掛在 data.gov.tw

看資料集

跨縣市欄位名稱與格式常不一致

如果你要的資料只有網頁、沒有開放資料集,就得改用爬蟲或手動整理,難度和法律風險都高一截,爬蟲工具的差別可以看 Scrapling 跟其他 Python 爬蟲框架的比較。能用開放資料就先用開放資料,授權清楚,格式也穩定得多。

怎麼判斷一份資料集夠不夠穩,能拿來做產品

資料集頁面上的「標章」是很好用的第一道篩選。依 政府資料開放優質標章的規定(2023 年修正版),標章分四級:銅標章是連結有效、可以直接下載;銀標章再要求結構化的開放格式;金標章再要求詮釋資料跟實際欄位對得起來,而且照填報的更新頻率即時更新;白金標章則要求超過兩成欄位符合政府資料標準。

要拿來做每天打開的產品,我們建議至少金標章起跳,農產品交易行情就是金標章。另外兩個頁面值得收藏:data.gov.tw 的「預計下架資料集」和「跨平臺介接即時狀態表」,前者讓你提早知道哪份資料要停,後者可以查各平臺介接的即時狀態。

我們做 今日菜價:蔬果行情雷達 時,第一步也是這樣挑資料:每天更新、全國批發市場都有、不用申請金鑰的農產品交易行情。那套 App 最後涵蓋 24 個批發市場、1,018 個品項,選對資料源,後面的功能才有地基。如果你手上也有一份想拿來用的政府資料,可以跟我們聊聊它適不適合做成產品。

政府資料開放授權條款:可以商用,但有三件事要做到

可以商用。政府資料開放授權條款(第1版)寫明使用者可以「不限目的、時間及地域、非專屬、不可撤回、免授權金」利用開放資料,利用方式包括「開發各種產品或服務型態之衍生物」。做成 App 收費、做成內部系統、包進給客戶的報表,都在範圍內。

要做到的三件事是:標示來源、自己檢查資料對不對、準備好資料停掉的那一天。下表把條款裡跟做產品有關的條文,翻成你實際要做的事。

條款寫什麼

對你的意思

二(一) 不限目的、時間及地域、免授權金,包括開發產品或服務的衍生物

可以收費、可以做成 App 或內部系統,不用另外申請

二(二) 使用者得再轉授權他人

你的客戶或合作夥伴也能用你加工過的資料

三(二) 要依附件「顯名聲明」標示來源,未盡標示義務者,視為自始未取得授權

一定要標來源,漏掉等於從頭就沒拿到授權

四(二) 與創用 CC 姓名標示 4.0 國際版相容

跟國外 CC BY 4.0 資料混用時,標示方式好處理

五 機關得停止全部或一部資料的提供,使用者不得請求賠償

要有資料斷掉的備案,不能把整個產品押在一份資料上

六 機關只在知道資料有錯時負責修正,不負賠償責任

資料錯了是你自己的風險,上線前後都要自己檢查

顯名聲明怎麼寫、放哪裡

條款附件給了範本,開頭是「提供機關/單位 [年份] [開放資料釋出名稱與版本號]」,後面接一句「此開放資料依政府資料開放授權條款 (Open Government Data License) 進行公眾釋出,使用者於遵守本條款各項規定之前提下,得利用之。」再附上條款網址。

放的位置要讓使用者找得到。App 通常放在設定頁或「關於」頁,網頁儀表板放頁尾,匯出的 Excel 或 PDF 報表放在最後一頁。資料源有好幾份,就每一份各寫一行。

三種情況要另外確認

  • 資料集另有授權:平臺上多數資料集用政府資料開放授權條款,但授權方式是逐份標示的,抓資料前先看那一欄。
  • 資料裡有個人資料:條款第五點把「有侵害第三人智慧財產權、隱私權或其他法律上利益之虞」列為機關可以停止提供的理由。就算資料本身已經去識別化,跟你自己的資料比對後能認出個人,也要先停下來評估。
  • 要賣給大客戶或放進合約:這篇整理的是條款內容,算不上法律意見。對外收費或客戶要求你保證資料正確時,合約與標示方式建議請法務看過。

資料格式與更新頻率:「每天更新」背後的五個坑

先講結論:更新頻率欄位只告訴你多久更新一次,沒告訴你日期怎麼寫、東西叫什麼名字、哪幾天根本沒有資料。下表是接農產品交易行情時會碰到的五件事,換成交通、氣象或其他資料,類型也差不多。

坑

在農產品行情長什麼樣

怎麼處理

日期格式

交易日期是民國年,例如 115.06.04

存進資料庫前先轉西元,排序和比較才不會錯

名稱口徑

官方叫「甘藍-初秋」,使用者講「高麗菜」

建口語名對照表,比對規則要寫測試

數字口徑

價格是批發拍賣價,單位是元/公斤

畫面上一律寫「批發參考價」,不跟零售價直接比

休市與空值

休市的市場會回一列作物名稱「休市」、價格全是 0,偶爾也有名稱欄位是空的列

算均價前先把休市列和空值濾掉,不然 0 會把均價拉低

只給近幾天

官方 API 只給四天的滾動視窗

要做走勢就得每天自己抓、自己存

名字對不起來,是最花時間的一個

在今日菜價裡卡最久的就是名稱。官方品項是「主名-品種」的寫法,同一種菜可以拆成十幾個品種;使用者打的卻是口語名。我們的做法是建一張口語名對照表,先把「高麗菜」轉成官方主名「甘藍」,再去找資料。

比對方式也有講究。如果用「名稱裡有沒有包含這兩個字」去撈,查甘藍會把「球莖甘藍」一起撈進來,這是完全不同的菜,均價就被污染了。改成前綴比對(名稱開頭是甘藍才算)才乾淨,這條規則後來寫成回歸測試釘住,避免之後有人改壞。下面這段 Python 可以直接跑,看兩種比對的差別:

Python
from datetime import date

def roc_to_date(s):
    """民國年字串 '115.06.04' 轉成西元日期"""
    y, m, d = (int(x) for x in s.split("."))
    return date(y + 1911, m, d)

names = ["甘藍-初秋", "甘藍-改良種", "球莖甘藍"]
keyword = "甘藍"

print(roc_to_date("115.06.04"))                  # 2026-06-04
print([n for n in names if keyword in n])         # 包含比對:會撈到球莖甘藍
print([n for n in names if n.startswith(keyword)])  # 前綴比對:只留甘藍

下圖是今日菜價的搜尋畫面:使用者打「高麗菜」,結果對應到官方的「甘藍」,球莖甘藍是另一個獨立品項,不會混進甘藍的均價。

文字搜尋:口語菜名自動對應官方品項
文字搜尋:口語菜名自動對應官方品項

內部系統也一樣。採購部門習慣講的品名、ERP 裡的料號、政府資料的分類代碼,三邊各說各話,第一步通常是先把對照表做出來,而且要有人負責維護。

政府 API 變慢、斷線、改版怎麼辦:別讓 App 直接打官方 API

一句話:在官方 API 和你的產品中間,放一層自己的資料服務。排程去抓官方資料、檢查過再存進自家資料庫,App 和儀表板只讀自己的資料庫。官方那邊慢了、掛了,使用者看到的是「最後更新時間」,看不到空白頁。

這是我們真的吃過虧的地方。農產品行情的官方 API 一次回約 3MB、九千多筆,冷啟動實測要 18 秒;App 端原本設 12 秒逾時,結果在真機上必定失敗,永遠退回內建的範例資料,使用者看到的一直是範例資料。後來把逾時放寬到 30 秒,下載成功後寫進手機的本地快取、設 6 小時有效,之後打開就是秒開。

走勢圖是另一個例子。官方 API 只給四天的滾動視窗,要畫更長的走勢,就得自己每天抓、自己累積。我們另外寫了一支排程服務,每天固定時間抓資料、整理成每個品項每天的加權均價存起來,App 再跟這支服務拿歷史。一般建議的資料流大致如下,其中寫入前的檢查與失敗通知,是我們建議另外加上的保護:

圖表載入中…

這層服務不用很大。一支排程程式、一個資料庫、一支簡單的 API 就夠了,前端已經有自己後台的話,直接掛在既有後端上也行。想先搞懂 API 在系統之間扮演什麼角色,可以看 API 是什麼這篇白話說明。下表是常見的出狀況方式,以及使用者會看到什麼。

狀況

沒有中間層時使用者看到

有中間層的做法

官方 API 變慢

畫面一直轉圈,最後逾時

背景排程抓,前端讀自家資料庫,不受影響

官方 API 暫時掛掉

空白頁或錯誤訊息

保留最後一份成功的資料,畫面標示更新時間

欄位改名或格式改了

數字錯、程式直接崩潰

寫入前檢查欄位,不符就發通知、不覆蓋舊資料

回傳筆數突然少很多

整排品項消失

設筆數下限,低於門檻視為異常

資料集停止提供

整個功能不能用

開工前列好備援來源,定期看預計下架名單

跨好幾個系統、好幾份資料一起串的時候,這層中間服務就會長成正式的整合層,要自己寫還是用 iPaaS,可以參考 API 整合中介層與 iPaaS 的比較。

要金鑰的政府 API:TDX、氣象署這類資料源怎麼接

先講結論:先註冊拿金鑰,金鑰只放在自家後端,不要寫進 App 或網頁前端;token 要快取重用,不要每次呼叫都重新換。

交通部的 TDX 是最典型的例子。它的 官方範例程式說明寫得很清楚:要先註冊會員,完成 Email 驗證、帳號經管理員審核後才能登入,每個帳號最多建 3 組金鑰;呼叫 API 前要先用金鑰換 Access Token,換 token 的端點每個 IP 每分鐘最多 20 次。從 2024 年 4 月 29 日起,每把金鑰的呼叫次數上限依會員訂閱的方案而不同,官方也建議程式端定時換一次 token、其餘時間重複使用。

中央氣象署的氣象資料開放平臺則是會員授權碼制,我們實測不帶授權碼直接呼叫預報 API,回的是 401。這類資料源還是可以商用,只是多了帳號管理和用量估算兩件事。

取得方式

例子

架構上要注意

免金鑰直接下載或呼叫

農產品交易行情

排程抓、存自家資料庫,不要讓每個使用者各自去打官方 API

會員授權碼

中央氣象署

授權碼放後端環境變數,App 透過自家 API 拿資料

金鑰換 token,依方案限次數

交通部 TDX

token 快取重用、監控每日用量,使用者成長前先估方案費用

定期下載整包檔案

內政部實價登錄

排程下載、比對差異後匯入,做法可參考實價登錄 API 串接實戰

金鑰放錯位置是最常見的錯誤。寫進 App 安裝檔或網頁前端程式的金鑰,任何人都能拆出來拿去用,額度被別人吃光,你的產品就跟著停擺。金鑰放後端還有一個好處:同一份資料抓一次,所有使用者共用,呼叫次數跟使用者人數脫鉤。

把政府開放資料做成產品:使用者要的是判斷,表格只是原料

我們的判斷是:開放資料做成產品,最難的部分在想清楚「使用者看完要做什麼決定」,技術反而排在後面。把官方的表格原封不動搬上手機,跟打開政府網站沒有兩樣,沒有人會為了它多裝一支 App。

今日菜價一開始的構想也走過冤枉路。最早想做的是通用的「拍照自動記帳」,查下去發現台灣電子發票的生態已經很完整,照片記帳在國外也早就成熟。真正的空白在沒有發票的消費場景,例如傳統市場。但「拍商品比價、告訴你買貴了」這條路也被我們否決:比價資料沒有來源,事後告訴使用者虧了,是在製造後悔。最後定位成行情雷達,只講「今天什麼便宜、該不該買」,範圍縮到蔬果之後,辨識準度也跟著上來。

數字的意思也要講對。官方給的是批發拍賣價,我們做產品時抓的經驗範圍是攤販零售大約是批發價的 1.5 到 2.5 倍,所以絕不能拿批發價對使用者說「攤販賣你貴」。那套 App 的做法是所有價格都標示為批發參考價,建議一律用正面的說法,而且這條規則寫成自動化測試:建議文案只要出現「被坑」「買貴了」這類字眼,測試就會失敗。辨識信心不夠時也不硬猜,改列候選讓使用者自己點,錯的建議比沒有建議更傷信任。

下圖是拍照辨識後的結果頁:今日批發價、近幾天均價、走勢,以及「近期偏高,不急可以再等等」這種使用者看得懂的判斷。

拍照辨識結果:品種細分價與每日批發走勢圖
拍照辨識結果:品種細分價與每日批發走勢圖

辨識的成本也是產品決策的一部分。雲端影像辨識每張約 $0.0006,使用者每天掃幾次就是一筆持續支出;我們最後改成自己訓練的模型跑在手機上,單次掃描的雲端成本降到 0,還能離線使用。類似的「把運算搬到裝置端」思路,在 瀏覽器端 OCR 的比較裡也看得到。

公司內部可以怎麼用:幾個情境

同樣的方法套到企業內部,重點一樣是「把資料翻成某個部門每天要做的決定」。下表是幾個常見的情境舉例,資料源都是公開的:

部門

開放資料

做成什麼判斷(情境舉例)

餐飲、團膳採購

農產品交易行情

本週哪些菜偏貴,下週菜單要不要換

物流、外勤調度

TDX 運輸資料

哪些時段、路段派車要多抓時間

營建、戶外活動

氣象署預報

明天要不要調整施工或活動安排

房仲、估價

實價登錄

物件開價跟周邊成交差多少

B2B 業務開發

公司與營業登記資料

最近新設立、符合條件的公司名單

做成內部儀表板的話,指標怎麼定、圖表給誰看,可以接著看 BI 數據儀表板怎麼做;資料量大到要另外建資料倉儲時,再參考 中小企業資料倉儲怎麼選。

用政府開放資料自建系統要多少錢:三種規模的費用與時程

先給答案:只抓一兩份資料、做成內部報表的小工具,通常幾週就做得完;要上架給一般人用的 App,光是審核、離線、推播、帳號這些事,就會把範圍和費用拉高好幾倍。下表是常見的三種規模,金額是市場行情參考區間,實際要看功能範圍。

規模

範圍

大約時程

開發費行情參考

每月固定成本

內部小工具

排程抓 1 到 2 份資料、存資料庫、表格查詢或匯出 Excel

2 到 4 週

10 到 30 萬

主機與資料庫,大約數百到一兩千元

內部儀表板

多份資料整合、權限、圖表、異常通知

1 到 3 個月

30 到 90 萬

數千元,另計維護

對外 App

iOS/Android、後端資料服務、推播、上架審核

2 到 4 個月起

80 萬起

主機、Apple 與 Google 開發者帳號費、維護

拿我們自己的經驗對照:今日菜價從立項到上架 App Store 約 7 週,那是自有產品,範圍刻意砍得很小,需求也是自己定的。替客戶做的專案多了需求訪談、驗收和修改的往返,時程會比這個長。

App 費用怎麼拆、為什麼同一份需求會報出很大的價差,APP 開發費用比較有完整的拆解;要找外包,報價分級和驗收方式可以看 App 外包指南。框架選擇(Flutter、React Native、原生)可以參考 客製 App 框架怎麼選,今日菜價用的是 React Native 搭配 Expo。準備上架 iOS 的話,iOS App 開發要準備什麼整理了帳號與審核要注意的事。

買現成、找人做、自己寫,怎麼選

  • 已經有人做好整理過的服務:先用現成的。很多開放資料已經有民間網站或 App 整理好,內部只是偶爾查一下,就不必自建。
  • 資料要跟公司自己的系統、流程接在一起:例如採購價格要對到料號、要自動通知特定部門,現成工具多半做不到,這時候值得做。用 No-Code 內部工具平台先做雛形也是一條路。
  • 要對外收費或當成產品賣:資料層、比對規則、測試都要做到穩,找有做過資料型產品的團隊比較省事,發包前可以先看 API 整合外包怎麼找。

動手前的檢查清單:政府開放資料產品化先回答這八題

一句話:這八題答不出來的,開工前先處理。每一題都對應前面講過的坑。

檢查題目

為什麼要問

每份資料集的授權欄位都看過了嗎?

授權方式是逐份標示的

顯名聲明要放在哪裡,決定了嗎?

未盡標示義務,視為自始未取得授權

資料裡有沒有個資,或比對後能認出個人?

有隱私疑慮的資料,機關可以停止提供,你也有法律風險

前端是不是只讀自家資料服務?

官方 API 慢或掛掉時,使用者才不會看到空白頁

抓資料失敗時會通知,而且不會用壞資料蓋掉好資料?

欄位改名、回傳空陣列都可能洗掉舊資料

日期、單位、名稱都轉成內部統一格式了嗎?

民國年、元/公斤、品名加品種,各機關寫法不同

金鑰放在後端,沒有寫進 App 或網頁前端?

寫進安裝檔的金鑰任何人都拆得出來

資料停止提供時,有備案嗎?

條款寫明機關可以停止提供,不負賠償

Excel 版多了四題:呼叫上限與方案費用、需要歷史資料時有沒有每天累積、畫面用詞跟資料口徑有沒有一致,以及誰負責每季回頭檢查資料集頁面。最後一題最容易被忘記,資料集改版通常不會另外通知你。

看到這裡,如果你也在想「我們手上這份政府資料,能不能變成內部天天在用的工具」,我們很樂意 聽你聊聊現在的想法。把你想用的資料集連結和想解決的問題丟過來,我們會直接告訴你哪些用現成服務就夠、哪些值得做成系統。

ℹ️我們怎麼看

我們的判斷是:接下來三年,政府開放資料的價值會往「接進公司自己的流程」移動。我們觀察到 AI 助理已經能直接幫人查公開資料,單純把資料做成好看圖表的產品會越來越難站住。值得做的是把公開資料跟你自己的資料接在一起,例如行情接到採購單、天氣接到派工表,這一段別人抄不走。所以我們做資料型產品時,先把資料層和比對規則做穩,畫面放後面。給你一個判斷工具:寫下「誰、每天、看完這份資料要做什麼決定」,寫得出具體的人和決定,就值得做;寫不出來的話,可以先從手動整理一份週報試起。

ℹ️我們做過這件事

順帶說一下,恆遠到目前為止有 40+ 企業客製案落地,自己也做產品。拿最貼近這篇的一件來說,我們把農業部每天公布的蔬果批發行情做成 App「今日菜價」:每天排程抓資料、累積成走勢,口語菜名對照到官方品項,辨識跑在手機上不花雲端費用,2026 年 7 月 20 日上架 App Store,涵蓋 24 個批發市場、1,018 個品項。完整的功能與畫面在 今日菜價:蔬果行情雷達。如果你也在想政府資料放進你公司會是什麼樣子,我們很樂意 聽你聊聊現在的實際情況,一起看看從哪一塊開始最划算。

Q政府開放資料是什麼?

政府開放資料是政府機關把職權範圍內的資料,以機器可讀的格式免費開放給大眾使用,例如農產品交易行情、公車到站、天氣預報、公司登記。台灣的總入口是政府資料開放平臺 data.gov.tw,各部會也有自己的開放平臺。

Q政府開放資料可以商用嗎?

多數可以。政府資料開放授權條款允許不限目的、免授權金利用,包括開發產品或服務。條件是依顯名聲明標示來源,而且授權方式是逐份資料集標示的,使用前要先看該資料集的授權欄位。

Q顯名聲明要怎麼寫?

條款附件的範本是「提供機關/單位 [年份] [開放資料釋出名稱與版本號]」,再加上「此開放資料依政府資料開放授權條款 (Open Government Data License) 進行公眾釋出,使用者於遵守本條款各項規定之前提下,得利用之。」並附條款網址 https://data.gov.tw/license。App 可放在設定頁,報表放最後一頁。

Q政府開放資料的 API 要錢嗎?

多數免費,有些要先註冊會員取得金鑰或授權碼,例如中央氣象署。交通部 TDX 從 2024 年 4 月 29 日起,每把金鑰的呼叫次數上限依會員訂閱的方案而不同,用量大的產品要先看方案說明。

Q政府開放資料去哪裡下載?

先到政府資料開放平臺 data.gov.tw 用關鍵字搜尋,資料集頁面會列出提供機關、更新頻率、授權方式與 CSV、JSON 或 API 的下載網址。交通、氣象、農業這類資料,各部會自己的開放平臺通常有更完整的 API 說明。

Q資料有錯,造成損失誰負責?

依授權條款,提供機關只在知道資料有錯或遺漏時負修正與補充的責任,使用者因利用資料受有損害,除法令另有規定外,機關不負賠償責任。所以資料拿來做決策或對外服務時,要自己做檢查與異常偵測。

分享文章
恆

AUTHOR

恆遠數位編輯團隊

查看作者頁

留言(0)

尚無留言,成為第一個留言的人吧!

需要網站系統架設或軟體開發?

無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。