開發者
開放資料 API
候選人貼文、2026 地方選舉候選人名單與號次的 JSON 端點、查詢參數與使用範例。
概要
本站所有資料都以 JSON(以及 RSS/CSV)公開,可免費使用、不需金鑰,並已開啟 CORS(Access-Control-Allow-Origin: *),網頁前端可直接 fetch。
不加參數時,每個端點回傳完整的靜態檔;加上 查詢參數(例如 ?limit=10)時由 API 服務即時篩選、切片後回傳,結構與靜態檔相同。資料每 6 小時更新一次(臺灣時間 0、6、12、18 時)。
curl 'https://mayor2026.observe.tw/api/latest.json?limit=10'共通參數(數量、分頁、欄位)
以下參數適用所有「列表」端點:
| 參數 | 說明 |
|---|---|
limit | 最多回傳幾筆(≥ 0 的整數)。不給則回傳全部 |
offset | 跳過前幾筆,用於分頁(預設 0) |
fields | 每筆只保留指定欄位,逗號分隔,例如 fields=id,text,url,postedAt |
回應會保留原本欄位,另外加上:
| 欄位 | 說明 |
|---|---|
count | 本次實際回傳筆數 |
total | 符合篩選條件的總筆數(切片前) |
offset / limit | 本次使用的分頁參數 |
next | 下一頁的路徑(含原本參數);沒有下一頁時為 null |
候選人貼文
直轄市長與縣市長候選人官方帳號的公開貼文,皆依發文時間由新到舊。
| 端點 | 內容 |
|---|---|
/api/latest.json | 全站最新 100 則(完整欄位) |
/api/posts.json | 全部貼文(完整欄位);只有加參數時可用,請務必帶 limit |
/api/posts/<候選人ID>.json | 單一候選人全部貼文,例如 /api/posts/chiang-wanan.json |
/feeds/<候選人ID>.json | 單一候選人最近 50 則(RSS 的 JSON 版) |
/api/topic-index.json | 全部貼文的精簡索引(議題分數、動機、時間) |
以上端點都可再加篩選參數:
| 參數 | 說明 |
|---|---|
candidate | 候選人 ID(逗號分隔可多選),例如 chiang-wanan |
city | 縣市 ID:六都為 taipei、new-taipei、taoyuan、taichung、tainan、kaohsiung,其他縣市與 2026 候選人名單相同(如 yilan、hsinchu-city) |
platform | facebook、instagram、threads、youtube、x、website、podcast |
topic | 議題名稱(中文),例如 交通、住宅 |
intent | self_initiated(主動發文)或 responsive(回應他方觀點) |
since / until | 發文時間區間(ISO 8601;只寫日期時視為臺灣時間 00:00),until 不含該時刻 |
q | 內文關鍵字,空白分隔、須全部出現(不分大小寫) |
每則貼文的主要欄位:id、candidateId、platform、postedAt、text、url、imageUrl、topics、topicScores、postingIntent、keywords、classification。imageUrl 為站內相對路徑,請自行加上 https://mayor2026.observe.tw/;本地圖片副本約 60 天後移除。
2026 地方選舉候選人
九合一全部九類候選人與號次,只用中選會與各選委會公告。
| 端點 | 內容 |
|---|---|
/api/elections/2026/candidates.json | 全部候選人的平面列表(可篩選、分頁);每筆含 county、countyLabel、category、categoryLabel、township、district、village、number、name、party、incumbent 與官方來源網址 |
/api/elections/2026/index.json | 總數、各縣市與各類別統計、縣市 ID 對照 |
/api/elections/2026/<縣市ID>.json | 單一縣市依類別→選舉區分組的完整資料(巢狀,不接受參數) |
/api/elections/2026/candidates.csv | 全部候選人 CSV |
/api/elections/2026/reconciliation.json | 與官方總數的對帳報告 |
/api/elections/2026/sources.json | 使用到的官方來源與 sha256 |
candidates.json 可用的篩選參數:
| 參數 | 說明 |
|---|---|
county | 縣市 ID 或中文名,例如 taipei 或 臺北市(ID 見 /api/elections/2026/index.json) |
category | municipal-mayor、county-mayor、municipal-councilor、county-councilor、township-mayor、indigenous-district-chief、township-rep、indigenous-district-rep、village-chief |
township | 鄉鎮市區名(完全相符),例如 大安區 |
district / village | 選舉區、村里名稱(包含即可) |
districtKey | 選舉區代碼(完全相符) |
party | 推薦政黨(包含即可),例如 民主進步黨 |
incumbent | true / false:是否為 2022 同選區當選人 |
number | 號次 |
q | 姓名、選舉區、鄉鎮、村里、政黨關鍵字(空白分隔須全部出現) |
sort | number 或 name(在同一縣市、類別、選舉區內排序) |
其他列表端點
| 端點 | 列表欄位 | 可用篩選 |
|---|---|---|
/api/candidates.json | candidates | city |
/api/sources.json | sources | candidate、city |
/api/spectrum.json | candidates | candidate、city |
/api/status.json | sources | candidate、platform |
/api/cities.json | cities | — |
非列表端點(例如 /api/policy-match.json、/api/topic-details.json、/api/pipeline-runtime.json)只提供完整檔案,帶參數會回 400。
範例
最新 10 則貼文,只取必要欄位:
https://mayor2026.observe.tw/api/latest.json?limit=10&fields=candidateId,platform,postedAt,text,url全部貼文中,臺北市候選人 11 月以後談交通的前 20 則:
https://mayor2026.observe.tw/api/posts.json?city=taipei&topic=交通&since=2026-11-01&limit=20蔣萬安最新 5 則 Facebook 貼文:
https://mayor2026.observe.tw/api/posts/chiang-wanan.json?platform=facebook&limit=5臺北市長候選人與號次:
https://mayor2026.observe.tw/api/elections/2026/candidates.json?county=taipei&category=municipal-mayor&sort=number新竹市議員候選人,每頁 50 筆的第 2 頁:
https://mayor2026.observe.tw/api/elections/2026/candidates.json?county=hsinchu-city&category=county-councilor&limit=50&offset=50JavaScript:
const res = await fetch('https://mayor2026.observe.tw/api/latest.json?limit=5');
const { posts, total } = await res.json();
posts.forEach(p => console.log(p.candidateId, p.postedAt, p.url));中文參數值請做 URL 編碼(瀏覽器與 fetch 會自動處理;curl 可用 --get --data-urlencode 'topic=交通')。
錯誤與限制
參數格式錯誤、端點不支援的參數,回傳 HTTP 400 與 JSON:{"error": "…", "status": 400, "allowed": [...]};找不到檔案回 404。未知的參數名稱(例如快取用的 ?v=)會被忽略。
沒有速率限制,但請合理使用並自行快取(回應帶 Cache-Control: max-age=60);資料一天只更新四次,頻繁輪詢沒有幫助。
RSS
每位候選人一條 RSS:/feeds/<候選人ID>.xml;2026 候選人名單更新:/feeds/elections-2026.xml。完整清單見RSS 訂閱。
授權與引用
候選人名單來自選委會公告;貼文著作權屬原作者,轉載請連回原文(每則都有 url)。議題與發文動機為 AI 分類,可能有誤。引用時請註明「2026 地方選舉官方來源觀測站(mayor2026.observe.tw)」。資料問題請到 GitHub 回報。