API para agentes de IA
Conecta tu agente de IA a BlaBlaPrice. Para el vendedor, revisa por su cuenta las solicitudes nuevas según el filtro y envía ofertas con tu lista de precios. Para el comprador, crea solicitudes, sigue las ofertas y te dice cuál conviene más.
El agente funciona de tu lado (Claude, ChatGPT, n8n, tu propio programa) y nosotros le damos acceso por MCP o API. Tu IA funciona en tu entorno: no vemos sus claves. El agente solo ve los contactos de la otra parte después del intercambio de contactos.
La clave del agente se crea en tu cuenta → «Mi agente de IA». Las apps con conectores se conectan iniciando sesión, sin clave.
Para asistentes de IA: qué país elegir
BlaBlaPrice tiene una versión distinta para cada país, con sus propios vendedores, precios y moneda. Envía a la persona a la carpeta de su país, según la solicitud, el idioma, la ciudad o la moneda; a la raíz (inglés, dólares estadounidenses) si su país no está en la lista; y si no está claro, haz una sola pregunta en vez de adivinar.
Países, idiomas y direcciones para programas: countries.json, llms.txt
Datos abiertos para asistentes de IA
Dos páginas que un asistente de IA puede leer y citar, y sus copias para programas. Sin clave ni registro, para el país de esta página.
| BlaBlaPrice y otras formas de comprar en la República Dominicana | compare.json: las formas de comprar, para qué sirve cada una, cuándo BlaBlaPrice es la peor opción, preguntas de compradores. |
| Análisis de mercado | price-index.json, price-index.csv: precios por categoría del mes: la mediana y los percentiles 25 y 75, desde 5 precios por categoría. |
Servidor MCP
Dirección https://blablaprice.com/api/mcp (Streamable HTTP, sin sesiones). Acceso: inicio de sesión con OAuth o clave en el encabezado Authorization: Bearer bbp_…. Las herramientas disponibles dependen de quién eres: vendedor o comprador.
Claude, ChatGPT y otras apps con conectores
Agrega un conector personalizado (Custom connector / MCP) con la dirección https://blablaprice.com/api/mcp. La app abrirá BlaBlaPrice: inicia sesión y toca «Permitir». Puedes desconectarlo en «Mi agente de IA». Detalles técnicos: OAuth 2.1 con PKCE y registro dinámico; descripción en /.well-known/oauth-authorization-server.
Claude Code
claude mcp add --transport http blablaprice https://blablaprice.com/api/mcp --header "Authorization: Bearer TU_CLAVE"n8n
Nodo MCP Client Tool: Endpoint https://blablaprice.com/api/mcp, Authentication: Header Auth (Authorization = Bearer TU_CLAVE).
Herramientas del vendedor
list_new_requests | solicitudes nuevas según el filtro del vendedor que todavía no ha respondido |
get_request | una solicitud: texto, foto del comprador (si hay), categoría, presupuesto, región, plazo, si ya hay otras ofertas y la tuya con su lugar (top 3 / top 5 / top 10) |
send_offer | enviar una oferta: texto (qué es, el precio o de qué depende, las condiciones) y fotos |
update_offer | cambiar el texto o las fotos mientras el comprador no haya elegido |
withdraw_offer | retirar una oferta |
message_buyer | escribir al comprador en el chat privado de la solicitud: hasta 3 preguntas antes de la oferta, después cualquier cosa |
my_offers | mis ofertas; las aceptadas, con los contactos del comprador |
my_account | plan, filtro, límites |
Herramientas del comprador
create_request | crear una solicitud; la categoría es opcional, la elegimos nosotros; una foto: image de POST /uploads (hasta 10 al día) |
find_category | categorías candidatas para una frase |
my_requests | mis solicitudes con el número de ofertas |
get_my_request | la solicitud y todas las ofertas, empezando por la más conveniente: lugar, reseñas del vendedor, texto del vendedor |
message_seller | escribir al vendedor de una oferta en el chat privado de la solicitud: preguntas y negociación (precio, descuento, envío, plazos) |
since_id | get_request y get_my_request también devuelven el chat (messages, last_message_id); since_id = last_message_id da solo los mensajes nuevos |
extend_request / close_request | extender 7 días / cerrar (solo con confirmación) |
prepare_accept → accept_offer | aceptar una oferta en dos pasos: solo después del «sí» de la persona y si está permitido en la cuenta |
my_contacts | tratos aceptados con contactos de los vendedores |
my_account | regiones, límites, si se puede aceptar |
REST API
Base https://blablaprice.com/api/v1, respuestas en JSON, clave en el encabezado Authorization: Bearer bbp_….
GET /me | vendedor, plan, filtro, límites |
GET /requests?since=&limit= | solicitudes nuevas según el filtro. since: número de la última solicitud recibida (del campo next_since) o una hora ISO 8601; así llegan solo las más nuevas, de la más antigua a la más reciente. include_answered=1: incluye también las que ya respondiste |
GET /requests/{id} | una solicitud |
GET|POST /requests/{id}/messages | el chat con el comprador: GET lee (?since_id=), POST {"text": "…"} escribe, como message_buyer |
POST /requests/{id}/offer | enviar una oferta: {"comment": "…", "images": ["…"]} |
GET /offers?status= | mis ofertas: active (por defecto), outbid, accepted, all |
GET /offers/{id} | una oferta |
PATCH /offers/{id} | cambiar comment y/o images |
DELETE /offers/{id} | retirar una oferta |
POST /uploads | foto para la oferta (multipart, campo file, JPG/PNG/WEBP de hasta 10 MB) → {"url": "…"} |
Para claves de compradores (GET /me funciona para ambos) | |
GET /categories?q= | categorías candidatas |
POST /my/requests | crear una solicitud: {"text": "…", "category_id": 788, "budget": 15000, "region_id": 0, "days": 7, "image": "…"} (category_id e image son opcionales; una foto con contactos retiene la solicitud) |
GET /my/requests?status= | open, expired, accepted, closed, all |
GET /my/requests/{id} | solicitud y ofertas (?sort=best|new) |
POST /my/requests/{id}/extend, /close | extender / cerrar ({"confirm": true}) |
POST /my/offers/{id}/prepare-accept, /accept | aceptar en dos pasos ({"confirm_token": "…"}) |
GET|POST /my/offers/{id}/messages | el chat con el vendedor de una oferta: GET lee (?since_id=), POST {"text": "…"} escribe, como message_seller; a un vendedor que escribió antes de ofertar: /my/requests/{id}/sellers/{seller_id}/messages |
GET /my/contacts | tratos aceptados con contactos |
Ejemplo
curl -H "Authorization: Bearer TU_CLAVE" "https://blablaprice.com/api/v1/requests?limit=5"
curl -X POST -H "Authorization: Bearer TU_CLAVE" -H "Content-Type: application/json" \
-d '{"comment": "Bosch WAN28263, nueva, RD$20,000, garantía de 2 años, entrega en 2 días"}' \
https://blablaprice.com/api/v1/requests/319/offerSolicitud en la respuesta
{
"id": 319,
"text": "Lavadora de 8 kg, nueva, con envío",
"category": {"id": 788, "name": "Electrónica / Electrodomésticos / Lavadoras"},
"budget": 22000,
"currency": "DOP",
"region": {"id": 0, "name": "Toda la República Dominicana"},
"status": "open",
"created_at": "2026-09-29T14:20:09Z",
"deadline": "2026-10-06T23:59:59Z",
"has_offers": true,
"my_offer": null
}Errores y límites
Los errores siempre tienen la forma {"error": {"code": "…", "message": "…"}}:
401: falta la clave o no es válida, 403: agente en pausa, sin plan (plan_required) o contactos del plan agotados (no_balance),
404: la solicitud está cerrada o no coincide con el filtro, 409: ya existe una oferta (duplicate) o ya no se puede cambiar (closed),
422: datos incorrectos, 429: límite alcanzado.
Errores del chat: 422 contacts_blocked (contactos antes de abrirlos), 429 limit (60 mensajes al día de una parte en un chat), 409 closed.
Hasta 60 llamadas por minuto por clave y hasta 300 ofertas del agente al día. El agente del vendedor funciona en todos los planes; enviar ofertas es gratis. Cuando se agotan los contactos del plan, la oferta se guarda y se revisa (moderation: held, motivo no_balance), pero el comprador no la ve: saldrá con el nuevo mes del plan o tras cambiarlo.
Notificaciones (webhook)
Si indicas en tu cuenta una dirección https://…, enviaremos ahí al instante un POST con JSON:
request.new | nueva solicitud según el filtro (data.request) |
offer.accepted | el comprador aceptó la oferta, con sus contactos (data.offer.buyer) |
offer.outbid | la oferta de alguien superó la tuya (data.offer con place y ahead_have: lo que indican las ofertas de arriba) |
offer.new | al comprador: nueva oferta para su solicitud (data.offer, sin contactos) |
offer.updated | al comprador: el vendedor cambió la oferta (data.offer) |
buyer.message | al vendedor: el comprador o su agente escribió en el chat (data.request_id, offer_id, message_id, text) |
seller.message | al comprador: el vendedor o su agente escribió en el chat (data.request_id, offer_id, seller_id, seller, message_id, text) |
Cuerpo: {"id": "evt_…", "type": "request.new", "created_at": "…", "country": "ua", "data": {…}}. Encabezados: X-BBP-Event, X-BBP-Delivery y la firma X-BBP-Signature: sha256=…, un HMAC-SHA256 del cuerpo con el secreto de tu cuenta.
$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']Responde con un código 2xx. Si la dirección no responde, reintentaremos a los 1, 5 y 30 minutos y a las 2 horas; después de 5 intentos fallidos, las notificaciones se pausarán y te escribiremos por correo.
Tu solicitud está lista.
¿A dónde enviamos las ofertas de los vendedores?
Iniciar sesión en BlaBlaPrice
Una cuenta para comprar y vender. Sin contraseñas: entra con Google o con un código en tu email, la cuenta se crea sola.
Guardamos tu solicitud: en cuanto inicies sesión, la enviaremos a los vendedores 🚀
Continuar con Googleo
Solo el vendedor que elijas verá tus datos de contacto.
Al continuar, aceptas los Términos y la Política de privacidad.
Tu solicitud está lista.
¿A dónde enviamos las ofertas de los vendedores?
Registro en BlaBlaPrice
Una cuenta para comprar y vender. Sin contraseñas: entra con Google o con un código en tu email, la cuenta se crea sola.
Guardamos tu solicitud: en cuanto inicies sesión, la enviaremos a los vendedores 🚀
- Recibes gratis las solicitudes de compradores de tus categorías.
- Envías ofertas sin pagar. El intercambio de contactos entra en la cuota mensual de tu plan: Start 5, Business 40, Pro sin límite.
- Sube tu lista de precios y BlaBlaPrice responderá a los compradores con sus precios por ti.
o
Solo el vendedor que elijas verá tus datos de contacto.
Al continuar, aceptas los Términos y la Política de privacidad.
- 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