總覽
所有端點皆為 GET 請求,回傳 JSON,無需認證。資料集細小,/api/restaurants 會一次回傳整個已篩選結果。
- Base URL
- https://pawsdine.com
- Auth
- 無
- CORS
- 已開放 (
*) - Content-Type
- application/json
端點
回應格式
每個回應都是一個信封:成功時 success: true 並附 data(部分附 meta);失敗時 success: false 並附 error,同時回傳對應的 HTTP 狀態碼。
{
"success": true,
"data": …,
"meta": …
}更新記錄
/api/changes食環署名單每有變動,即記錄一筆,最新在前,列出當日 added 新增與 removed 下架的食肆。不帶參數即回傳最近 7 日;如需其他範圍,可設定 from / to,首尾兩日都會包含。記錄由 2026-07-15 起追蹤,所以 ?from=2026-07-15 就是全部記錄;該日之前的名單屬未追蹤的起點。每次回應的 meta 都會列明今次涵蓋的範圍,以及整個資料集的 earliest 與 latest。
查詢參數
| 參數 | 型別 | 預設 | 說明 |
|---|---|---|---|
from | string | to 之前 6 日 | 最早包含的日期,YYYY-MM-DD。視窗按曆日計算,當日若無變動,data 便不會有該日紀錄。 |
to | string | 今日 | 最遲包含的日期,YYYY-MM-DD。 |
added | boolean | true | 設為 false 則每筆紀錄不包含 added 陣列,日期本身仍然保留。 |
removed | boolean | true | 設為 false 則每筆紀錄不包含 removed 陣列。 |
常用呼叫
/api/changes本週:最近 7 日,亦即不帶參數時的結果。
/api/changes?from=2026-07-15&to=2026-07-22指定某一週,首尾兩日都包含在內。
/api/changes?from=2026-07-15由最早追蹤日期起計,取得全部記錄。
/api/changes?removed=false只看新增餐廳,回應中不包含下架資料。
請求
curl "https://pawsdine.com/api/changes?from=2026-07-15&to=2026-07-22"回應
{
"success": true,
"data": [
{
"date": "2026-07-15",
"added": [
{
"licence": 2212191804, "nameZh": "BBQ", "nameEn": "BBQ",
"district": "灣仔區", "districtEn": "Wan Chai",
"address": "香港灣仔灣仔道207號地下",
"addressEn": "G/F, 207 WAN CHAI ROAD, WAN CHAI, HONG KONG"
}
],
"removed": [
{
"licence": 2297807221, "nameZh": "ALVA HOUSE", "nameEn": "ALVA HOUSE",
"district": "沙田區", "districtEn": "Sha Tin",
"address": "新界沙田源康街1號帝逸酒店一樓 …",
"addressEn": "1/F, HOTEL ALVA, 1 YUEN HONG STREET, SHA TIN, NEW TERRITORIES"
}
]
}
],
"meta": {
"count": 6,
"from": "2026-07-15",
"to": "2026-07-22",
"earliest": "2026-07-15",
"latest": "2026-07-22"
}
}餐廳清單
/api/restaurants全部狗狗友善餐廳。不帶參數即回傳全部,亦可用 q、region、district、category 任意組合收窄範圍。沒有分頁,符合條件的結果會一次過回傳,總數見 meta.count。如果 region/district/category 並非實際存在的數值,會回傳 400 而非空清單,方便即時發現串錯字;可用數值見 /api/meta。
查詢參數
| 參數 | 型別 | 選填 | 說明 |
|---|---|---|---|
q | string | ✓ 是 | 關鍵字,比對中/英店名、地址、地區(不分大小寫)。 |
region | string | ✓ 是 | 大區,中文或英文(不分大小寫):香港島 / Hong Kong Island、九龍 / Kowloon、新界 / New Territories。 |
district | string | ✓ 是 | 區份,中文或英文,例如 灣仔區 或 Wan Chai、葵青區 或 Kwai Tsing。 |
category | string | ✓ 是 | 推算類型,中文或英文,例如 咖啡店 或 Cafe。 |
請求
curl "https://pawsdine.com/api/restaurants?q=灣仔區"回應
{
"success": true,
"data": [
{
"licence": 3112808861,
"nameZh": "BLUE BOTTLE CAFE",
"nameEn": "BLUE BOTTLE CAFE",
"district": "灣仔區",
"districtEn": "Wan Chai",
"region": "香港島",
"regionEn": "Hong Kong Island",
"category": "咖啡店",
"categoryEn": "Cafe",
"address": "香港灣仔聖佛蘭士街15號 地下至 2樓",
"addressEn": "G/F - 2/F, 15 ST. FRANCIS STREET, WAN CHAI, HONG KONG",
"lat": 22.27602,
"lng": 114.16913
},
{
"licence": 2212802494,
"nameZh": "火車頭越南餐室",
"nameEn": "CAFE LOCOMOTIVE CONTEMPORARY VIETNAMESE",
"district": "灣仔區",
"districtEn": "Wan Chai",
"region": "香港島",
"regionEn": "Hong Kong Island",
"category": "咖啡店",
"categoryEn": "Cafe",
"address": "香港大坑浣紗街11號地下",
"addressEn": "G/F., 11 WUN SHA STREET, TAI HANG, HONG KONG",
"lat": 22.27902,
"lng": 114.19265
}
],
"meta": { "count": 7 }
}餐廳欄位
| 欄位 | 型別 | 說明 |
|---|---|---|
licence | number | 10 位食環署牌照號碼(數字),亦是唯一 id。 |
nameZh | string | 中文店名。 |
nameEn | string | 英文店名。 |
district | string | 區份(中文)。 |
districtEn | string | 區份(英文)。 |
region | string | 大區(香港島 / 九龍 / 新界)。 |
regionEn | string | 大區(英文)。 |
category | string | 推算類型(中文,僅供參考)。 |
categoryEn | string | 推算類型(英文)。 |
address | string | 地址(中文)。 |
addressEn | string | 地址(英文)。 |
addedOn | string | null | 首次在名單出現的日期,YYYY-MM-DD(基準資料為 null)。 |
lat | number | null | 緯度 (WGS84)。 |
lng | number | null | 經度 (WGS84)。 |
篩選數值
/api/meta/api/restaurants 篩選參數可接受的全部數值:大區 → 區份的樹狀結構,以及類型清單,各自附有餐廳數量。用嚟填下拉選單,或者篩選前先確認數值是否存在。無需參數。
請求
curl "https://pawsdine.com/api/meta"回應
{
"success": true,
"data": {
"total": 978,
"geocoded": 978,
"regions": [
{
"name": "香港島",
"nameEn": "Hong Kong Island",
"count": 287,
"districts": [{ "name": "灣仔區", "nameEn": "Wan Chai", "count": 117 }]
}
],
"categories": [{ "name": "咖啡店", "nameEn": "Cafe", "count": 154 }]
}
}錯誤
錯誤回應帶對應 HTTP 狀態碼與穩定的 error.code。
| Status | error.code | 說明 |
|---|---|---|
| 400 | INVALID_REGION | region 不是有效大區。 |
| 400 | INVALID_DISTRICT | district 不是有效區份。 |
| 400 | INVALID_CATEGORY | category 不是有效類型。 |
| 400 | INVALID_DATE | from 或 to 不是有效的 YYYY-MM-DD 日期。 |
| 400 | INVALID_RANGE | from 遲於 to。 |
| 404 | NOT_FOUND | 路由不存在。 |
| 500 | INTERNAL_ERROR | 伺服器錯誤。 |
範例
{
"success": false,
"error": {
"code": "INVALID_DISTRICT",
"message": "Unknown district \"foo\". See /api/meta for valid values."
}
}用法
// q is a single case-insensitive keyword — matches EN/ZH name, address, district
const res = await fetch("https://pawsdine.com/api/restaurants?q=灣仔區");
const json = await res.json();
if (!json.success) throw new Error(json.error.message);
console.log(json.meta.count, json.data.length);授權與來源
免費使用,商業用途亦可。轉載或展示此資料時,請註明「pawsdine.com」並附連結。原始資料按 data.gov.hk 使用條款提供,該條款規範資料來源;本 API 不附加其他限制。
- 食肆名單 © 食物環境衞生署 (FEHD),「獲准許狗隻進入的食肆名單」。
- 地址定位 (geocoding) 採用 data.gov.hk「地址搜尋服務」(ALS),© 香港特別行政區政府。
- 地圖 © OpenFreeMap · © OpenStreetMap contributors。