API לסוכני AI

חבר את סוכן ה-AI שלך ל-BlaBlaPrice. עבור מוכר, הוא בודק בקשות חדשות שמתאימות למסנן ושולח הצעות מהמחירון שלך. עבור קונה, הוא יוצר בקשות, עוקב אחרי הצעות ומצביע על העסקה הטובה ביותר.

הסוכן עובד אצלך (Claude, ChatGPT, n8n, תוכנה משלך), ואנחנו נותנים לו גישה דרך MCP או API. ה־AI שלך רץ אצלך — אנחנו לא רואים את המפתחות שלו. הסוכן רואה את פרטי הקשר של הצד השני רק אחרי חילופי פרטי קשר.

מפתח הסוכן נוצר באזור האישי ← “סוכן ה־AI שלי”. אפליקציות עם מחברים מתחברות בכניסה, בלי מפתח.

שרת MCP

כתובת URL‏ 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צור בקשה; הקטגוריה אופציונלית — נבחר אותה בעצמנו; תמונה אחת — image מ-POST /uploads (עד 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 — המזהה של הבקשה האחרונה שהתקבלה (מהשדה 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 עד 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, /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, חדשה, ‏1,000 ‏₪, אחריות לשנתיים, משלוח תוך יומיים"}' \
  https://blablaprice.com/api/v1/requests/319/offer

בקשה בתשובה

{
  "id": 319,
  "text": "מכונת כביסה, 8 ק״ג, חדשה, עם משלוח",
  "category": {"id": 788, "name": "מוצרי חשמל ואלקטרוניקה / מכשירי חשמל לבית / מכונות כביסה"},
  "budget": 1100,
  "currency": "ILS",
  "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 — חריגה ממגבלת הקצב.

עד 60 קריאות לדקה לכל מפתח ועד 300 הצעות ביום מסוכן. שליחת הצעות בחינם; נקודה אחת מחויבת רק כשהקונה מקבל הצעה. בלי נקודות, ההצעה נשמרת ונבדקת (moderation: held, סיבה no_balance), אבל הקונה לא רואה אותה — אחרי הטענה שלח אותה שוב דרך update_offer.

התראות (webhook)

אם תגדיר באזור האישי כתובת https://…, נשלח אליה מיד POST עם JSON:

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. אם הכתובת לא מגיבה, ננסה שוב אחרי דקה, 5 דקות, 30 דקות ושעתיים; אחרי 5 ניסיונות כושלים ההתראות יושהו ונשלח לך אימייל.

chat-bubble