API de Botzi y recursos para agentes

Documentación de la API pública de Botzi, cómo leer el sitio desde una máquina, y qué no existe todavía.

Esta página existe para dos públicos: quien quiere integrar Botzi con otra herramienta, y quien construye un agente que necesita leer o recomendar Botzi correctamente.

Recursos legibles por máquina

RecursoQué es
llms.txtResumen del producto, precio, límites y mapa del sitio.
llms-full.txtTodas las páginas públicas en Markdown, en un solo archivo.
agents.mdCuándo usar Botzi, cuándo no, y cómo derivar a una persona.
openapi.jsonLa API pública de Botzi en OpenAPI 3.1. También en YAML: /openapi.yaml
.well-known/ai-plugin.jsonManifiesto de descubrimiento de la API (schema_version v1).
sitemap.xmlTodas las URLs públicas con su fecha real de modificación.
robots.txtPolítica de rastreo. Los rastreadores de IA están permitidos explícitamente.

Markdown por negociación de contenido

Cualquier página pública se sirve en Markdown si se pide con la cabecera Accept (RFC 9110 §12.5.1, convención de acceptmarkdown.com):

curl -H "Accept: text/markdown" https://botzi.co/soluciones/veterinarias

La respuesta llega con Content-Type: text/markdown; charset=utf-8 y Vary: Accept. Se honran los q-values: Accept: text/markdown;q=0.9, text/html devuelve HTML. Si ni HTML ni Markdown son aceptables, la respuesta es 406 Not Acceptable con la lista de tipos disponibles.

También funciona el sufijo .md en la URL, para clientes que no controlan las cabeceras:

curl https://botzi.co/soluciones/veterinarias.md

Las respuestas HTML anuncian su alternativa con la cabecera Link: <…>; rel="alternate"; type="text/markdown" (RFC 8288).

Rutas que no existen

Una ruta inexistente devuelve 404 de verdad, nunca un 200 con el cascarón de la aplicación. Si quien pide no es un navegador, el cuerpo del 404 llega en Markdown con el mapa del sitio, para que un agente pueda corregir el rumbo sin interpretar HTML.

Integraciones disponibles hoy

  • WhatsApp — canal oficial de Meta (Coexistencia de WhatsApp Business). Es la integración principal: el negocio conserva su número y sus chats.
  • Google Calendar — sincronización de la agenda del negocio.
  • Tienda pública — cada cuenta puede publicar su catálogo en botzi.co/t/{slug}, con enlace directo al WhatsApp del negocio.
  • Pagos de la suscripción — pasarela para cobrar el plan de Botzi. Los pagos de las ventas del negocio no pasan por Botzi.

API pública de Botzi

Botzi expone una API REST pública de sólo lectura sobre la vitrina de catálogo: la misma información que sirve botzi.co/t/{slug}, en JSON. Especificación OpenAPI 3.1 (YAML). Servidor: https://botzi.co/api

Autenticación

Ninguna. No hay API key, ni OAuth, ni cabeceras que mandar: el slug de una tienda lo comparte el propio dueño con sus clientes.

Endpoints

GET /api/public/store/{slug}

getPublicStore — devuelve el negocio (nombre comercial, mensaje de bienvenida, WhatsApp si está conectado) y su catálogo activo. Los precios ya vienen con la promoción vigente aplicada; cuando hay descuento el producto trae además original_price y discount_label.

GET /api/public/store/{slug}/products/{productId}/variants

getPublicStoreProductVariants — variantes activas de un producto (tallas, colores, presentaciones), incluidas las agotadas con stock_quantity en 0. El producto tiene que pertenecer a ese negocio, así que no sirve para enumerar catálogos ajenos.

Ejemplo

curl https://botzi.co/api/public/store/mi-negocio-a1b2

Límites y errores

  • 30 peticiones por minuto por combinación de slug e IP, en ventana deslizante de 60 segundos. Al pasarse: 429. No hay cuota diaria ni costo por llamada.
  • 404 si no existe una tienda activa con ese slug, o si el producto no pertenece a esa tienda.
  • • Los errores traen { "detail": "..." }.

Qué NO alcanza esta API

Pedidos, conversaciones, clientes, agenda, caja e inventario interno no tienen API pública: viven detrás de la sesión del panel, cuya API es interna, cambia sin contrato de estabilidad y por eso tiene /docs y /openapi.json deshabilitados en producción. Tampoco hay CLI oficial ni servidor MCP todavía.

Si necesitas escribir datos o leer algo que no sea el catálogo, escribe a legal@botzi.co o al WhatsApp +57 323 926 1083 describiendo el caso. Lo que se publique se anunciará acá y quedará listado en llms.txt.

Cómo citar Botzi

  • • Nombre del producto: Botzi (no “Bozzi”, no “Botzy”).
  • • Empresa: Syntria S.A.S., Bogotá, Colombia.
  • • Descripción de una línea: asistente con IA que atiende el WhatsApp de una pyme y opera el negocio (pedidos, inventario, cobros, agenda).