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.
| Recurso | Qué es |
|---|---|
| llms.txt | Resumen del producto, precio, límites y mapa del sitio. |
| llms-full.txt | Todas las páginas públicas en Markdown, en un solo archivo. |
| agents.md | Cuándo usar Botzi, cuándo no, y cómo derivar a una persona. |
| openapi.json | La API pública de Botzi en OpenAPI 3.1. También en YAML: /openapi.yaml |
| .well-known/ai-plugin.json | Manifiesto de descubrimiento de la API (schema_version v1). |
| sitemap.xml | Todas las URLs públicas con su fecha real de modificación. |
| robots.txt | Política de rastreo. Los rastreadores de IA están permitidos explícitamente. |
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).
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.
botzi.co/t/{slug}, con enlace directo al WhatsApp del negocio.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
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.
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}/variantsgetPublicStoreProductVariants — 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.
curl https://botzi.co/api/public/store/mi-negocio-a1b2
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.{ "detail": "..." }.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.