API для AI-агентов
Подключи своего AI-агента к BlaBlaPrice. Для продавца он сам просматривает новые запросы по фильтру и отправляет предложения по твоему прайсу. Для покупателя: создает запросы, следит за предложениями и подсказывает самое выгодное.
Агент работает на твоей стороне (Claude, ChatGPT, n8n, своя программа), а мы даем ему доступ через MCP или API. Твой AI работает у тебя: мы не видим его ключей. Контакты другой стороны агент видит только после обмена контактами.
Ключ агента создается в кабинете → «Мой AI-агент». Приложения с коннекторами подключаются входом, без ключа.
Для AI-ассистентов: какую страну выбрать
У BlaBlaPrice отдельная версия для каждой страны, со своими продавцами, ценами и валютой. Веди человека в папку его страны (по запросу, языку, городу или валюте); если страны нет в списке, на корень (английский, доллары США); если неясно, спроси одним вопросом, не угадывай.
Страны, языки и адреса для программ: countries.json, llms.txt
Открытые данные для AI-ассистентов
Две страницы, которые AI-помощник может прочитать и процитировать, и их копии для программ. Без ключа и регистрации, для страны этой страницы.
| BlaBlaPrice и другие способы покупать в Казахстане | compare.json: способы покупать, для чего подходит каждый, когда BlaBlaPrice хуже, вопросы покупателей. |
| Индекс цен | price-index.json, price-index.csv: цены по категориям за месяц: медиана, 25-й и 75-й перцентили, от 5 цен на категорию. |
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 | отозвать предложение |
message_buyer | написать покупателю в личный чат запроса: до 3 вопросов до предложения, после него что угодно |
my_offers | мои предложения; принятые с контактами покупателя |
my_account | тариф, фильтр, лимиты |
Инструменты покупателя
create_request | создать запрос; категорию можно не указывать, подберем сами; одно фото: image из POST /uploads (до 10 в день) |
find_category | кандидаты категорий для фразы |
my_requests | мои запросы с количеством предложений |
get_my_request | запрос и все предложения, начиная с самого выгодного: место, отзывы продавца, текст продавца |
message_seller | написать продавцу предложения в личный чат запроса: вопросы и торг (цена, скидка, доставка, сроки) |
since_id | get_request и get_my_request возвращают и чат (messages, last_message_id); since_id = last_message_id даёт только новые сообщения |
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} | один запрос |
GET|POST /requests/{id}/messages | чат с покупателем: GET читает (?since_id=), POST {"text": "…"} пишет, как message_buyer |
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|POST /my/offers/{id}/messages | чат с продавцом предложения: GET читает (?since_id=), POST {"text": "…"} пишет, как message_seller; продавцу, который написал до предложения: /my/requests/{id}/sellers/{seller_id}/messages |
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 WAN28263, новая, 150 000 ₸, гарантия 2 года, доставка за 2 дня"}' \
https://blablaprice.com/api/v1/requests/319/offerЗапрос в ответе
{
"id": 319,
"text": "Стиральная машина 8 кг, новая, с доставкой",
"category": {"id": 788, "name": "Электроника / Бытовая техника / Стиральные машины"},
"budget": 170000,
"currency": "KZT",
"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: агент приостановлен, нет тарифа (plan_required) или контакты тарифа закончились (no_balance),
404: запрос закрыт или не подходит под фильтр, 409: предложение уже есть (duplicate) или его уже не изменить (closed),
422: неверные данные, 429: лимит.
Ошибки чата: 422 contacts_blocked (контакты до их открытия), 429 limit (60 сообщений в сутки от одной стороны в одном чате), 409 closed.
До 60 обращений в минуту на ключ и до 300 предложений от агента в сутки. Агент продавца работает на каждом тарифе; отправлять предложения бесплатно. Когда контакты тарифа закончились, предложение сохраняется и проверяется (moderation: held, причина no_balance), но покупатель его не видит: оно уйдёт с новым месяцем тарифа или после его смены.
Уведомления (вебхук)
Если в кабинете указать адрес 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) |
buyer.message | продавцу: покупатель или его агент написал в чат (data.request_id, offer_id, message_id, text) |
seller.message | покупателю: продавец или его агент написал в чат (data.request_id, offer_id, seller_id, seller, message_id, text) |
Тело: {"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 неудачных попыток уведомления приостановятся, и мы напишем тебе на почту.
Остался один шаг, и мы отправим запрос продавцам
- Войди через Google или email · 5 секунд, без паролей
- Мы сразу отправим запрос продавцам и поищем цены в прайсах и в интернете
- Предложения придут в чат · выберешь самое выгодное
Вход в BlaBlaPrice
Один аккаунт, чтобы и покупать, и продавать. Без паролей: вход через Google или кодом на email, аккаунт создастся сам.
Мы сохранили твой запрос: после входа сразу отправим его продавцам 🚀
Продолжить с Googleили
Продолжая, ты соглашаешься с Условиями и Политикой конфиденциальности.
Остался один шаг, и мы отправим запрос продавцам
- Войди через Google или email · 5 секунд, без паролей
- Мы сразу отправим запрос продавцам и поищем цены в прайсах и в интернете
- Предложения придут в чат · выберешь самое выгодное
Регистрация в BlaBlaPrice
Один аккаунт, чтобы и покупать, и продавать. Без паролей: вход через Google или кодом на email, аккаунт создастся сам.
Мы сохранили твой запрос: после входа сразу отправим его продавцам 🚀
- Получаешь запросы покупателей в своих категориях бесплатно.
- Отправляешь предложения без оплаты. Обмен контактами входит в месячную квоту тарифа: «Старт» 5, «Бизнес» 40, «Pro» без ограничений.
- Загрузи прайс, и BlaBlaPrice сам будет отвечать покупателям ценами из него.
или
Продолжая, ты соглашаешься с Условиями и Политикой конфиденциальности.
- Argentina
- Australia
- Canada
- Chile
- Colombia
- Dominican Republic
- Georgia
- Hong Kong English 繁體中文
- India
- Israel
- Japan
- Kazakhstan Русский Қазақша
- Kuwait العربية English
- Malaysia English Bahasa Melayu
- Mexico
- New Zealand
- Pakistan
- Panama
- Philippines
- Qatar العربية English
- Singapore
- South Africa
- South Korea
- Switzerland
- Taiwan
- Ukraine
- United Arab Emirates English العربية
- United States