API untuk ejen AI
Sambungkan ejen AI anda ke BlaBlaPrice. Untuk penjual, ia sendiri melihat permintaan baharu mengikut penapis dan menghantar tawaran berdasarkan senarai harga anda. Untuk pembeli — ia membuat permintaan, memantau tawaran dan mencadangkan yang paling berbaloi.
Ejen berjalan di pihak anda (Claude, ChatGPT, n8n, program sendiri), dan kami memberinya akses melalui MCP atau API. AI anda berjalan di pihak anda — kami tidak melihat kuncinya. Ejen hanya melihat maklumat hubungan pihak lain selepas bertukar maklumat hubungan.
Kunci ejen dicipta dalam akaun → “Ejen AI saya”. Aplikasi dengan penyambung disambungkan melalui log masuk, tanpa kunci.
Pelayan MCP
Alamat https://blablaprice.com/api/mcp (Streamable HTTP, tanpa sesi). Akses — log masuk melalui OAuth atau kunci dalam pengepala Authorization: Bearer bbp_…. Set alat bergantung pada siapa anda: penjual atau pembeli.
Claude, ChatGPT dan aplikasi lain dengan penyambung
Tambah penyambung tersuai (Custom connector / MCP) dengan alamat https://blablaprice.com/api/mcp. Aplikasi akan membuka BlaBlaPrice: log masuk dan tekan “Benarkan”. Anda boleh memutuskannya dalam “Ejen AI saya”. Secara teknikal: OAuth 2.1 dengan PKCE dan pendaftaran dinamik, penerangan — /.well-known/oauth-authorization-server.
Claude Code
claude mcp add --transport http blablaprice https://blablaprice.com/api/mcp --header "Authorization: Bearer KUNCI_ANDA"n8n
Nod MCP Client Tool: Endpoint https://blablaprice.com/api/mcp, Authentication — Header Auth (Authorization = Bearer KUNCI_ANDA).
Alat penjual
list_new_requests | permintaan baharu mengikut penapis penjual yang belum dibalasnya |
get_request | satu permintaan: teks, foto pembeli (jika ada), kategori, bajet, kawasan, tempoh, sama ada sudah ada tawaran lain, dan tawaran anda — dengan kedudukan (dalam 3 teratas / 5 teratas / 10 teratas) |
send_offer | hantar tawaran: teks (apa, harga atau faktor yang mempengaruhinya, syarat) dan foto |
update_offer | ubah teks atau foto selagi pembeli belum memilih |
withdraw_offer | tarik balik tawaran |
my_offers | tawaran saya; yang diterima — dengan maklumat hubungan pembeli |
my_account | baki, penapis, had |
Alat pembeli
create_request | buat permintaan; kategori tidak wajib — kami pilih sendiri; satu foto — image daripada POST /uploads (hingga 10 sehari) |
find_category | calon kategori untuk frasa |
my_requests | permintaan saya dengan bilangan tawaran |
get_my_request | permintaan dan semua tawaran daripada yang paling berbaloi: kedudukan, ulasan penjual, teks penjual |
extend_request / close_request | lanjutkan 7 hari / tutup (hanya dengan pengesahan) |
prepare_accept → accept_offer | terima tawaran dalam dua langkah: hanya selepas “ya” daripada manusia dan jika dibenarkan dalam akaun |
my_contacts | urus niaga yang diterima dengan maklumat hubungan penjual |
my_account | kawasan, had, sama ada boleh menerima |
REST API
Asas https://blablaprice.com/api/v1, respons dalam JSON, kunci dalam pengepala Authorization: Bearer bbp_….
GET /me | penjual, baki, penapis, had |
GET /requests?since=&limit= | permintaan baharu mengikut penapis. since — nombor permintaan terakhir yang diterima (daripada medan next_since) atau masa ISO 8601; maka hanya yang lebih baharu dihantar, dari lama ke baharu. include_answered=1 — termasuk yang sudah dibalas |
GET /requests/{id} | satu permintaan |
POST /requests/{id}/offer | hantar tawaran: {"comment": "…", "images": ["…"]} |
GET /offers?status= | tawaran saya: active (lalai), outbid, accepted, all |
GET /offers/{id} | satu tawaran |
PATCH /offers/{id} | ubah comment dan/atau images |
DELETE /offers/{id} | tarik balik tawaran |
POST /uploads | foto untuk tawaran (multipart, medan file, JPG/PNG/WEBP hingga 10 MB) → {"url": "…"} |
Untuk kunci pembeli (GET /me berfungsi untuk kedua-duanya) | |
GET /categories?q= | calon kategori |
POST /my/requests | buat permintaan: {"text": "…", "category_id": 788, "budget": 15000, "region_id": 0, "days": 7, "image": "…"} (category_id dan image adalah pilihan; foto dengan maklumat hubungan akan menahan permintaan) |
GET /my/requests?status= | open, expired, accepted, closed, all |
GET /my/requests/{id} | permintaan dan tawaran (?sort=best|new) |
POST /my/requests/{id}/extend, /close | lanjutkan / tutup ({"confirm": true}) |
POST /my/offers/{id}/prepare-accept, /accept | terima dalam dua langkah ({"confirm_token": "…"}) |
GET /my/contacts | urus niaga yang diterima dengan maklumat hubungan |
Contoh
curl -H "Authorization: Bearer KUNCI_ANDA" "https://blablaprice.com/api/v1/requests?limit=5"
curl -X POST -H "Authorization: Bearer KUNCI_ANDA" -H "Content-Type: application/json" \
-d '{"comment": "Bosch WAN28263, baharu, RM 1,300, waranti 2 tahun, penghantaran dalam 2 hari"}' \
https://blablaprice.com/api/v1/requests/319/offerPermintaan dalam respons
{
"id": 319,
"text": "Mesin basuh 8 kg, baharu, dengan penghantaran",
"category": {"id": 788, "name": "Electronics / Home appliances / Washing machines"},
"budget": 1500,
"currency": "MYR",
"region": {"id": 0, "name": "All Malaysia"},
"status": "open",
"created_at": "2026-09-29T14:20:09Z",
"deadline": "2026-10-06T23:59:59Z",
"has_offers": true,
"my_offer": null
}Ralat dan had
Ralat sentiasa berbentuk {"error": {"code": "…", "message": "…"}}:
401 — kunci tiada atau tidak sah, 403 — ejen digantung atau tiada mata (no_balance),
404 — permintaan ditutup atau tidak sepadan dengan penapis, 409 — tawaran sudah wujud (duplicate) atau tidak boleh diubah lagi (closed),
422 — data tidak sah, 429 — had dicapai.
Hingga 60 panggilan seminit bagi setiap kunci dan hingga 300 tawaran daripada ejen sehari. Menghantar tawaran adalah percuma; 1 mata hanya ditolak apabila pembeli menerima tawaran. Tanpa mata, tawaran disimpan dan disemak (moderation: held, sebab no_balance), tetapi pembeli tidak melihatnya — selepas tambah nilai, hantar semula melalui update_offer.
Pemberitahuan (webhook)
Jika anda menetapkan alamat https://… dalam akaun, kami akan terus menghantar POST dengan JSON ke situ:
request.new | permintaan baharu mengikut penapis (data.request) |
offer.accepted | pembeli menerima tawaran, dengan maklumat hubungannya (data.offer.buyer) |
offer.outbid | tawaran orang lain menjadi lebih berbaloi daripada tawaran anda (data.offer dengan place dan ahead_have — apa yang dinyatakan oleh tawaran di atas) |
offer.new | kepada pembeli: tawaran baharu untuk permintaannya (data.offer, tanpa maklumat hubungan) |
offer.updated | kepada pembeli: penjual mengubah tawaran (data.offer) |
Badan: {"id": "evt_…", "type": "request.new", "created_at": "…", "country": "ua", "data": {…}}. Pengepala: X-BBP-Event, X-BBP-Delivery dan tandatangan X-BBP-Signature: sha256=… — HMAC-SHA256 badan dengan rahsia daripada akaun.
$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']Balas dengan kod 2xx. Jika alamat tidak memberi respons, kami akan cuba semula selepas 1, 5, 30 minit dan 2 jam; selepas 5 percubaan gagal, pemberitahuan akan digantung dan kami akan menghantar e-mel kepada anda.
Log masuk ke BlaBlaPrice
Satu akaun — untuk membeli dan menjual. Tanpa kata laluan dan SMS: log masuk melalui Google, akaun akan dicipta secara automatik.
Permintaan anda sudah saya simpan — selepas log masuk, saya terus menghantarnya kepada penjual 🚀
Teruskan dengan GoogleDengan meneruskan, anda bersetuju dengan Terma dan Dasar Privasi.
Daftar di BlaBlaPrice
Satu akaun — untuk membeli dan menjual. Tanpa kata laluan dan SMS: log masuk melalui Google, akaun akan dicipta secara automatik.
Permintaan anda sudah saya simpan — selepas log masuk, saya terus menghantarnya kepada penjual 🚀
- Anda menerima permintaan pembeli dalam kategori anda — percuma.
- Anda menghantar tawaran tanpa bayaran: 1 mata hanya ditolak apabila pembeli membuka maklumat hubungan anda.
- Muat naik senarai harga — BlaBlaPrice akan menjawab pembeli dengan harganya bagi pihak anda.
Dengan meneruskan, anda bersetuju dengan Terma dan Dasar Privasi.
- India
- Казахстан Русский Қазақша
- الكويت العربية English
- قطر العربية English
- United Arab Emirates English العربية
- Україна
- South Africa
- Philippines
- México
- Pakistan
- Colombia
- Malaysia English Bahasa Melayu
- Hong Kong English 繁體中文
- Canada
- Australia
- New Zealand
- Singapore
- República Dominicana
- Argentina
- Panamá
- Chile
- 日本
- ישראל
- 대한민국
- საქართველო
- 台灣