跳至主要內容

For developers

全港狗狗友善食肆,一條 API 拉齊

978 間持牌食肆

免自建後端,直接串接。A free, no-key JSON API.

整個 API 濃縮成一個純文字檔,餵俾 ChatGPT、Claude 等 AI 搜尋工具。

# 按日期的新增與下架

GET/api/changes

# 全部餐廳 · 可搜尋篩選

GET/api/restaurants

# 可用嚟篩選嘅數值

GET/api/meta

全部 免費 · 資料源自食環署持牌食肆

總覽

所有端點皆為 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": …
}

更新記錄

GET/api/changes

食環署名單每有變動,即記錄一筆,最新在前,列出當日 added 新增與 removed 下架的食肆。不帶參數即回傳最近 7 日;如需其他範圍,可設定 fromto,首尾兩日都會包含。記錄由 2026-07-15 起追蹤,所以 ?from=2026-07-15 就是全部記錄;該日之前的名單屬未追蹤的起點。每次回應的 meta 都會列明今次涵蓋的範圍,以及整個資料集的 earliestlatest

查詢參數

參數型別預設說明
fromstringto 之前 6 日最早包含的日期,YYYY-MM-DD。視窗按曆日計算,當日若無變動,data 便不會有該日紀錄。
tostring今日最遲包含的日期,YYYY-MM-DD。
addedbooleantrue設為 false 則每筆紀錄不包含 added 陣列,日期本身仍然保留。
removedbooleantrue設為 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"

回應

json
{
  "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"
  }
}

餐廳清單

GET/api/restaurants

全部狗狗友善餐廳。不帶參數即回傳全部,亦可用 qregiondistrictcategory 任意組合收窄範圍。沒有分頁,符合條件的結果會一次過回傳,總數見 meta.count。如果 region/district/category 並非實際存在的數值,會回傳 400 而非空清單,方便即時發現串錯字;可用數值見 /api/meta。

查詢參數

參數型別選填說明
qstring✓ 是關鍵字,比對中/英店名、地址、地區(不分大小寫)。
regionstring✓ 是大區,中文或英文(不分大小寫):香港島 / Hong Kong Island、九龍 / Kowloon、新界 / New Territories。
districtstring✓ 是區份,中文或英文,例如 灣仔區 或 Wan Chai、葵青區 或 Kwai Tsing。
categorystring✓ 是推算類型,中文或英文,例如 咖啡店 或 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 }
}

餐廳欄位

欄位型別說明
licencenumber10 位食環署牌照號碼(數字),亦是唯一 id。
nameZhstring中文店名。
nameEnstring英文店名。
districtstring區份(中文)。
districtEnstring區份(英文)。
regionstring大區(香港島 / 九龍 / 新界)。
regionEnstring大區(英文)。
categorystring推算類型(中文,僅供參考)。
categoryEnstring推算類型(英文)。
addressstring地址(中文)。
addressEnstring地址(英文)。
addedOnstring | null首次在名單出現的日期,YYYY-MM-DD(基準資料為 null)。
latnumber | null緯度 (WGS84)。
lngnumber | null經度 (WGS84)。

篩選數值

GET/api/meta

/api/restaurants 篩選參數可接受的全部數值:大區 → 區份的樹狀結構,以及類型清單,各自附有餐廳數量。用嚟填下拉選單,或者篩選前先確認數值是否存在。無需參數。

請求

curl "https://pawsdine.com/api/meta"

回應

json
{
  "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

Statuserror.code說明
400INVALID_REGIONregion 不是有效大區。
400INVALID_DISTRICTdistrict 不是有效區份。
400INVALID_CATEGORYcategory 不是有效類型。
400INVALID_DATEfrom 或 to 不是有效的 YYYY-MM-DD 日期。
400INVALID_RANGEfrom 遲於 to。
404NOT_FOUND路由不存在。
500INTERNAL_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。
← 返回地圖