AI-агенттерге арналған API

Өз 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 және коннекторы бар басқа қолданбалар

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 СЕНІҢ_КІЛТІҢ"

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сұраныс жасау; санатты көрсетпеуге болады, өзіміз іріктейміз; бір фото: POST /uploads арқылы алынған image (күніне 10-ға дейін)
find_categoryфразаға сай санат үміткерлері
my_requestsұсыныс саны көрсетілген сұраныстарым
get_my_requestсұраныс және ең тиімдісінен бастап барлық ұсыныстар: орны, сатушы туралы пікірлер, сатушының мәтіні
message_sellerұсыныс сатушысына сұраныстың жеке чатында жазу: сұрақтар және саудаласу (баға, жеңілдік, жеткізу, мерзім)
since_idget_request және get_my_request чатты да қайтарады (messages, last_message_id); since_id = last_message_id тек жаңа хабарламаларды береді
extend_request / close_request7 күнге ұзарту / жабу (тек растаумен)
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 өрісі, 10 МБ-қа дейінгі JPG/PNG/WEBP) → {"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://… мекенжайын көрсетсең, біз оған JSON бар POST сұрауын бірден жіберіп отырамыз:

request.newсүзгі бойынша жаңа сұраныс (data.request)
offer.acceptedсатып алушы ұсынысты қабылдады, оның контактілерімен (data.offer.buyer)
offer.outbidбіреудің ұсынысы сенікінен тиімдірек болды (place және ahead_have бар data.offer: жоғарыдағы ұсыныстарда не көрсетілген)
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 сәтсіз әрекеттен кейін хабарландырулар тоқтатылады, ал біз саған поштаға жазамыз.

chat-bubble