開發者

開放資料 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)
platformfacebook、instagram、threads、youtube、x、website、podcast
topic議題名稱(中文),例如 交通、住宅
intentself_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)
categorymunicipal-mayor、county-mayor、municipal-councilor、county-councilor、township-mayor、indigenous-district-chief、township-rep、indigenous-district-rep、village-chief
township鄉鎮市區名(完全相符),例如 大安區
district / village選舉區、村里名稱(包含即可)
districtKey選舉區代碼(完全相符)
party推薦政黨(包含即可),例如 民主進步黨
incumbenttrue / false:是否為 2022 同選區當選人
number號次
q姓名、選舉區、鄉鎮、村里、政黨關鍵字(空白分隔須全部出現)
sortnumber 或 name(在同一縣市、類別、選舉區內排序)

其他列表端點

端點列表欄位可用篩選
/api/candidates.jsoncandidatescity
/api/sources.jsonsourcescandidate、city
/api/spectrum.jsoncandidatescandidate、city
/api/status.jsonsourcescandidate、platform
/api/cities.jsoncities—

非列表端點(例如 /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=50

JavaScript:

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 回報。