AIエージェント向けAPI

AIエージェントをBlaBlaPriceに連携しましょう。売り手なら、フィルターに合う新しい依頼を確認し、価格表からオファーを送ります。買い手なら、依頼を作成し、オファーを追跡して、いちばんお得なものを教えてくれます。

エージェントはあなたの側(Claude、ChatGPT、n8n、自作のプログラム)で動き、私たちはMCPまたはAPIでアクセスを提供します。AIはあなたの側で動くので、キーは私たちには見えません。エージェントが相手の連絡先を見られるのは、連絡先の交換後だけです。

エージェントのキーは、ダッシュボード → 「マイAIエージェント」で作成します。コネクター対応のアプリは、キーなしでログインして接続します。

MCPサーバー

URL https://blablaprice.com/api/mcp(Streamable HTTP、セッションなし)。アクセスはOAuthでのログイン、または Authorization: Bearer bbp_… ヘッダーのキーで行います。使えるツールは、売り手か買い手かによって変わります。

Claude、ChatGPTなど、コネクターに対応したアプリ

URL https://blablaprice.com/api/mcp でカスタムコネクター(Custom connector / MCP)を追加してください。アプリがBlaBlaPriceを開くので、ログインして「許可」をタップします。連携は「マイAIエージェント」で解除できます。技術情報:PKCEと動的登録に対応したOAuth 2.1、メタデータは /.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_request1件の依頼:テキスト、買い手の写真(あれば)、カテゴリ、予算、地域、期限、ほかのオファーの有無、自分のオファーとその順位(上位3/5/10)
send_offerオファーを送る:テキスト(具体的な内容、価格または価格を左右する条件、条件面)と写真
update_offer買い手が選ぶまで、テキストや写真を変更できます
withdraw_offerオファーを取り下げる
my_offers自分のオファー。承諾されたものには買い手の連絡先が含まれます
my_account残高、フィルター、上限

買い手向けツール

create_request依頼を作成します。カテゴリは任意で、こちらで選びます。写真は1枚まで。POST /uploadsで取得したimageを指定します(1日10枚まで)
find_categoryフレーズに対するカテゴリ候補
my_requestsオファー数つきの自分の依頼
get_my_request依頼と、お得な順に並べたすべてのオファー:場所、売り手のレビュー、売り手のコメント
extend_request / close_request7日間延長/終了(確認後のみ)
prepare_accept → accept_offerオファーの承諾は2段階:本人の「はい」の後、かつダッシュボードで許可されている場合のみ
my_contacts売り手の連絡先つきの成立した取引
my_account地域、上限、承諾を許可するかどうか

REST API

ベースURL: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}1件の依頼
POST /requests/{id}/offerオファーを送る:{"comment": "…", "images": ["…"]}
GET /offers?status=自分のオファー:active(デフォルト)、outbid、accepted、all
GET /offers/{id}1件のオファー
PATCH /offers/{id}commentやimagesを変更
DELETE /offers/{id}オファーを取り下げる
POST /uploadsオファー用の写真(multipart、フィールドfile、JPG/PNG/WEBPで10MBまで)→ {"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, /accept2段階で承諾({"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、新品、¥52,000、2年保証、2日で配送"}' \
  https://blablaprice.com/api/v1/requests/319/offer

レスポンスに含まれる依頼

{
  "id": 319,
  "text": "洗濯機、8kg、新品、配送付き",
  "category": {"id": 788, "name": "家電・電子機器 / 生活家電 / 洗濯機"},
  "budget": 58000,
  "currency": "JPY",
  "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:エージェントが一時停止中、またはポイント不足(no_balance)、 404:依頼が終了した、またはフィルターの対象外、409:オファーがすでにある(duplicate)、またはもう変更できない(closed)、 422:データが無効、429:リクエスト回数の制限。

1つのキーにつき1分あたり60回、エージェントからのオファーは1日300件までです。オファーの送信は無料で、買い手がオファーを承諾したときだけ1ポイントが差し引かれます。ポイントがない場合、オファーは保存されて確認されますが(moderation: held、理由 no_balance)、買い手には表示されません。チャージしたあと、update_offer でもう一度送信してください。

通知(Webhook)

ダッシュボードにhttps://…のURLを設定すると、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のコードで応答してください。URLが応答しない場合は、1分後、5分後、30分後、2時間後に再試行します。5回失敗すると通知を一時停止して、メールでお知らせします。

chat-bubble