AI 代理 API

把你的 AI 代理連接到 BlaBlaPrice。對賣家來說,它會檢查符合篩選條件的新需求,並用你的價目表送出報價。對買家來說,它會建立需求、追蹤報價並指出最划算的選擇。

代理在你這邊運作(Claude、ChatGPT、n8n 或你自己的程式),我們透過 MCP 或 API 讓它取得存取權。你的 AI 在你這邊運作,我們看不到它的金鑰。代理只有在聯絡方式交換之後,才能看到對方的聯絡方式。

代理金鑰在你的會員中心 →「我的 AI 代理」建立。使用連接器的應用程式透過登入連線,不需要金鑰。

MCP 伺服器

網址 https://blablaprice.com/api/mcp(Streamable HTTP,無工作階段)。可透過 OAuth 登入,或在 Authorization: Bearer bbp_… 標頭中帶入金鑰來存取。工具組合依你的身分而定:賣家或買家。

Claude、ChatGPT 及其他支援連接器的應用程式

新增自訂連接器(Custom connector / MCP),網址為 https://blablaprice.com/api/mcp。應用程式會開啟 BlaBlaPrice:登入後點選「允許」。你可以在「我的 AI 代理」中中斷連結。技術細節:OAuth 2.1 搭配 PKCE 與動態註冊,中繼資料位於 /.well-known/oauth-authorization-server。

Claude Code

claude mcp add --transport http blablaprice https://blablaprice.com/api/mcp --header "Authorization: Bearer YOUR_KEY"

n8n

節點 MCP Client Tool:Endpoint https://blablaprice.com/api/mcp,Authentication 選 Header Auth(Authorization = Bearer YOUR_KEY)。

賣家工具

list_new_requests符合賣家篩選條件、且他們尚未回覆的新需求
get_request一筆需求:文字、買家的照片(如有)、分類、預算、地區、期限、是否有其他報價,以及你的報價與排名(前 3/前 5/前 10)
send_offer送出報價:文字(具體內容、價格或價格取決於什麼、條件)和照片
update_offer在買家做出選擇前,可修改文字或照片
withdraw_offer撤回報價
my_offers我的報價;已接受的報價包含買家的聯絡方式
my_account餘額、篩選、額度

買家工具

create_request建立需求;分類為選填,我們會幫你選;一張照片,使用 POST /uploads 的 image(每天最多 10 張)
find_category詞語的候選分類
my_requests我的需求與報價數量
get_my_request需求和所有報價,由最划算的開始:地點、賣家評價、賣家的說明
extend_request / close_request延長 7 天/結束(僅在確認後)
prepare_accept → accept_offer分兩步接受報價:只有在對方說「好」之後,且會員中心允許時才可進行
my_contacts含賣家聯絡方式的已成交交易
my_account地區、額度、是否允許接受報價

REST API

基礎網址 https://blablaprice.com/api/v1,回應為 JSON,金鑰放在 Authorization: Bearer bbp_… 標頭中。

GET /me賣家、餘額、篩選、額度
GET /requests?since=&limit=符合篩選條件的新需求。since 是最後收到的需求 ID(來自 next_since 欄位)或 ISO 8601 時間,之後只會傳來更新的需求,由舊到新。include_answered=1 也會包含你已回覆過的
GET /requests/{id}一筆需求
POST /requests/{id}/offer送出報價:{"comment": "…", "images": ["…"]}
GET /offers?status=我的報價:active(預設)、outbid、accepted、all
GET /offers/{id}一筆報價
PATCH /offers/{id}修改 comment 和/或 images
DELETE /offers/{id}撤回報價
POST /uploads報價的照片(multipart,欄位 file,JPG/PNG/WEBP,最大 10 MB)→ {"url": "…"}
買家金鑰適用(GET /me 兩者皆可用)
GET /categories?q=候選分類
POST /my/requests建立需求:{"text": "…", "category_id": 788, "budget": 15000, "region_id": 0, "days": 7, "image": "…"}(category_id 和 image 為選填;附有聯絡方式的照片會讓需求被暫時保留)
GET /my/requests?status=open, expired, accepted, closed, all
GET /my/requests/{id}需求和報價(?sort=best|new)
POST /my/requests/{id}/extend, /close延長/結束({"confirm": true})
POST /my/offers/{id}/prepare-accept, /accept分兩步接受({"confirm_token": "…"})
GET /my/contacts含聯絡方式的已成交交易

範例

curl -H "Authorization: Bearer YOUR_KEY" "https://blablaprice.com/api/v1/requests?limit=5"

curl -X POST -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"comment": "Bosch WAN28263,全新,$11,000,2 年保固,2 天內送達"}' \
  https://blablaprice.com/api/v1/requests/319/offer

回覆中的需求

{
  "id": 319,
  "text": "洗衣機,8 公斤,全新,含配送",
  "category": {"id": 788, "name": "電子產品 / 家電 / 洗衣機"},
  "budget": 12000,
  "currency": "TWD",
  "region": {"id": 0, "name": "全台灣"},
  "status": "open",
  "created_at": "2026-09-29T14:20:09Z",
  "deadline": "2026-10-06T23:59:59Z",
  "has_offers": true,
  "my_offer": null
}

錯誤與限制

錯誤一律長這樣:{"error": {"code": "…", "message": "…"}}: 401:金鑰缺失或無效,403:AI 代理已暫停或點數不足(no_balance), 404:需求已關閉或不在你的篩選範圍內,409:報價已存在(duplicate)或已無法修改(closed), 422:資料無效,429:超過請求頻率限制。

每把金鑰每分鐘最多 60 次呼叫,每個代理每天最多 300 則報價。發送報價免費;只有在買家接受報價時才會扣 1 點。沒有點數時,報價會被儲存並接受檢查(moderation: held,原因 no_balance),但買家看不到,儲值後請透過 update_offer 重新發送。

通知(webhook)

如果你在會員中心設定了 https://… 網址,我們會立即向該網址傳送含 JSON 的 POST:

request.new符合篩選條件的新需求(data.request)
offer.accepted買家已接受報價,並附上其聯絡方式(data.offer.buyer)
offer.outbid有人的報價比你的更划算(data.offer,含 place 和 ahead_have,即排名較前的報價包含什麼)
offer.new給買家:其需求有了新報價(data.offer,不含聯絡方式)
offer.updated給買家:賣家修改了報價(data.offer)

內容:{"id": "evt_…", "type": "request.new", "created_at": "…", "country": "ua", "data": {…}}。標頭:X-BBP-Event、X-BBP-Delivery,以及簽章 X-BBP-Signature: sha256=…,即用會員中心的密鑰對內容做 HMAC-SHA256。

$body = file_get_contents('php://input');
$sig = 'sha256=' . hash_hmac('sha256', $body, $secret);
if (!hash_equals($sig, $_SERVER['HTTP_X_BBP_SIGNATURE'] ?? '')) {
    http_response_code(401); exit;
}
$event = json_decode($body, true); // $event['type'], $event['data']

請回覆 2xx 狀態碼。若網址沒有回應,我們會在 1 分鐘、5 分鐘、30 分鐘和 2 小時後重試;連續失敗 5 次後,通知將暫停,並會寄 Email 通知你。

chat-bubble