API для AI-агентів
Підключи свого 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 ТВІЙ_КЛЮЧ"n8n
Вузол MCP Client Tool: Endpoint https://blablaprice.com/api/mcp, Authentication — Header Auth (Authorization = Bearer ТВІЙ_КЛЮЧ).
Інструменти продавця
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 до 10 МБ) → {"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 ТВІЙ_КЛЮЧ" "https://blablaprice.com/api/v1/requests?limit=5"
curl -X POST -H "Authorization: Bearer ТВІЙ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"comment": "Bosch WAN28263UA, нова, 13 500 грн, гарантія 2 роки, доставка за 2 дні"}' \
https://blablaprice.com/api/v1/requests/319/offerЗапит у відповіді
{
"id": 319,
"text": "Пральна машина 8 кг, нова, з доставкою",
"category": {"id": 788, "name": "Електроніка / Техніка для дому / Пральні машини"},
"budget": 15000,
"currency": "UAH",
"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 пропозицій від агента на добу. Надсилати пропозиції безкоштовно; 1 бал списується, лише коли покупець прийме пропозицію. Без балів пропозиція зберігається й перевіряється (moderation: held, причина no_balance), але покупець її не бачить — після поповнення надішли її ще раз через update_offer.
Сповіщення (вебхук)
Якщо в кабінеті вказати адресу 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. Якщо адреса не відповідає, повторимо через 1, 5, 30 хвилин і 2 години; після 5 невдалих спроб сповіщення призупиняться, і ми напишемо тобі на пошту.
Вхід у BlaBlaPrice
Один акаунт — щоб і купувати, і продавати. Без паролів і SMS: вхід через Google, акаунт створиться сам.
Продовжити з GoogleПродовжуючи, ти погоджуєшся з Умовами та Політикою конфіденційності.
Реєстрація в BlaBlaPrice
Один акаунт — щоб і купувати, і продавати. Без паролів і SMS: вхід через Google, акаунт створиться сам.
Продовжуючи, ти погоджуєшся з Умовами та Політикою конфіденційності.