NocoDB 最實用但最少人用到的功能,是它會為你建立的每一張資料表自動產生 REST API。你不需要寫任何後端程式,就能讓其他系統讀寫這些資料。
這讓 NocoDB 很適合當作內部工具的輕量後端:用介面管理資料,用 API 給程式或自動化流程存取。這篇帶你從零跑通第一個請求。
30 秒總覽
| 項目 | 內容 |
|---|---|
| API 從哪來 | 每張表自動產生,不用另外開 |
| 要準備什麼 | 一組 API Token |
| 能做什麼 | 讀、寫、更新、刪除資料 |
| 搭配什麼用 | n8n、網站表單、自己的程式 |
| 安全重點 | 每個用途發一把 Token |
步驟一:取得 API Token
API Token 是呼叫 API 的身分憑證,等同你的帳號權限,請當作密碼保管。
- 登入你的 NocoDB
- 點右上角的頭像,選擇「Account Settings」
- 找到「Tokens」頁籤
- 點「Add New Token」,給它一個看得懂的名字(例如
n8n-integration) - 複製產生的 token——它只會完整顯示這一次
建議為每個用途建立獨立的 token。這樣之後要停用某個整合時,可以只撤銷那一個,不影響其他系統。
步驟二:找到 Table ID
NocoDB 的 v2 API 用 Table ID 定位資料表,而不是資料表名稱。Table ID 是一串英數字,長得像 m1a2b3c4d5e6f7g。
取得方式:在 NocoDB 介面中打開該資料表,看瀏覽器網址列,或是點資料表右鍵選單裡的「Copy Table ID」。
你也可以直接用介面內建的 API Snippet 功能——它會針對當前資料表,直接產生可複製的 curl、JavaScript、Python 範例,裡面已經填好正確的 ID。不確定的時候用這個最快。
步驟三:查詢資料
所有請求都要帶上 xc-token 這個 header。以下把 YOUR_TOKEN、TABLE_ID 換成你自己的值,網域換成你的專屬子網域:
curl -X GET \
'https://your-instance.roamerhost.com/api/v2/tables/TABLE_ID/records?limit=25' \
-H 'xc-token: YOUR_TOKEN'
常用的查詢參數:
| 參數 | 用途 | 範例 |
|---|---|---|
limit | 每頁筆數 | limit=50 |
offset | 跳過幾筆(分頁用) | offset=50 |
where | 條件篩選 | where=(Status,eq,Active) |
sort | 排序,前面加 - 為遞減 | sort=-CreatedAt |
fields | 只回傳指定欄位 | fields=Name,Email |
步驟四:新增資料
curl -X POST \
'https://your-instance.roamerhost.com/api/v2/tables/TABLE_ID/records' \
-H 'xc-token: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"Name": "王小明", "Email": "[email protected]", "Status": "Active"}'
JSON 的 key 必須完全對應你資料表的欄位名稱,大小寫也要一致。這是最常見的錯誤來源。
步驟五:更新與刪除
更新和刪除都是把目標記錄的 Id 放在 request body 裡,而不是網址上:
# 更新
curl -X PATCH \
'https://your-instance.roamerhost.com/api/v2/tables/TABLE_ID/records' \
-H 'xc-token: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"Id": 12, "Status": "Closed"}'
# 刪除
curl -X DELETE \
'https://your-instance.roamerhost.com/api/v2/tables/TABLE_ID/records' \
-H 'xc-token: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"Id": 12}'
常見錯誤排解
| 狀況 | 多半的原因 |
|---|---|
| 401 Unauthorized | token 錯了,或 header 名稱寫成 Authorization——要用 xc-token |
| 404 Not Found | Table ID 錯誤,或誤用了 v1 的網址格式 |
| 新增成功但欄位是空的 | JSON 的 key 跟欄位名稱不完全一致(含大小寫與空格) |
| 只回傳 25 筆 | 這是預設的 limit,要更多請自己帶 limit 與 offset |
NocoDB 的 API 在 v1 與 v2 之間有過路徑調整。如果你在網路上找到的範例是 /api/v1/db/data/noco/... 這種格式,那是舊版。以你自己實例裡的 API Snippet 為準最保險。
搭配 n8n 使用
最常見的組合是 NocoDB 當資料層、n8n 當自動化層:n8n 有現成的 NocoDB 節點,填入實例網址與 API Token 就能讀寫,不用自己組 HTTP 請求。
典型用法像是:表單送出後寫進 NocoDB、每天定時把 NocoDB 的資料整理成報表寄出、或是 NocoDB 有新記錄時觸發 LINE 通知。兩個服務都在你自己的環境裡,資料不經過第三方。
常見問題
Q:API 要另外付費嗎?
不用。每張表自動產生 REST API,這是預設功能不是加購。這也是很多人從按配額計費的服務換過來的主要理由。
Q:Token 會過期嗎?
Token 等於一把長期有效的鑰匙,所以管理方式很重要:每個用途發一把(n8n 一把、網站表單一把),要撤銷時不會影響其他系統。
Q:可以寫進前端程式碼嗎?
不行,那等於公開。前端需要讀資料的話應該透過你自己的後端中轉,不要把 Token 放在瀏覽器看得到的地方。
Q:怎麼跟 n8n 串?
用 HTTP Request 節點帶上 Token 呼叫即可。更完整的雙向用法(NocoDB 資料變動反過來觸發 n8n)在 n8n 加 NocoDB。
Q:有呼叫次數限制嗎?
不是按次數計費,限制來自實例的運算資源。高頻率的呼叫要注意的是資源,不是配額。
資料來源與延伸連結
NocoDB 的欄位型別與權限模型以官方文件為準:
延伸閱讀
想找人幫你做?
資料量再往上、或是要接進公司既有系統時,這件事就不只是選工具而已。浪花科技承接企業系統客製化與 API 整合: