Cabi.Chat API
Cabi.Chat API es una sola API sobre todo el grafo. Todo lo que haces en Cabi.Chat, la app web lo hace a través de esta API: proyectos, artículos, espacios de trabajo, campañas, oráculos, la bandeja de entrada. Cabi.Chat es el primer cliente del grafo, no el único posible link. Tus scripts, tu sitio web, tus propios oráculos y tu asistente de IA también son clientes, en las mismas condiciones. Un asistente se conecta por MCP: Conecta tu asistente de IA a Cabi.Chat (MCP)
Dos mitades
- Grafo:
/graph/...lee el grafo tal como quien llama puede verlo,/my/...crea, edita, organiza y ejecuta tus tarjetas. Cabi.Chat API — Endpoints del grafo - Cuenta: tú, tus tokens, plan y saldo, bandeja de entrada, dominios y tráfico. Cabi.Chat API — Endpoints de cuenta
Quién llama
Envía Authorization: Bearer <token>. Lo que alcanza una llamada depende de en nombre de quién habla el token.
- Token de acceso personal: actúa como tú, para tus scripts y herramientas. Cabi.Chat API — Tokens de acceso personal
- Sesión del navegador y de la Mini App: una persona que inició sesión con Telegram. Pipeline de API: iniciar sesión en Cabi.Chat con Telegram
- Acceso de configuración: un oráculo que configuró tu página con tu acuerdo: Cabi.Chat API — Tokens de acceso personal
- Token de agenda: un oráculo o una app que alojas actúa como su agenda, no como tú: Cabi.Chat API — Apps
- Sin token: solo lecturas públicas, como visitante anónimo. Los grupos de Telegram son tarjetas Ecosystem, así que quien llama sin token no ve ninguno.
Convenciones
- URL base:
https://api.cabi.chat/v0, JSON de entrada y de salida;/v1sirve las mismas rutas como alias. - Especificación:
https://api.cabi.chat/api-docs/openapi.json. Genera un cliente a partir de ella. - Nonces: cada tarjeta tiene un nonce, un número de 64 bits. Viaja como string; mantenlo como string, porque los números de JavaScript pierden los últimos dígitos. Donde una ruta dice
{ident}, un@handlefunciona igual que un nonce; donde dice{nonce}, envía el nonce. - Idioma:
?lang=ruoAccept-Language. Una tarjeta devuelve todos los idiomas en los que está guardada, bajoi18n. - Errores: JSON
{"error": "..."}que dice qué corregir. 400: hay que corregir la solicitud. 401: el token es incorrecto o está revocado. 404: una tarjeta que no puedes alcanzar; la API no confirma que exista una tarjeta oculta. 500{"error": "internal error"}: reintenta más tarde. - Paginación: las listas usan
limityoffset. El contenido de un espacio de trabajo o de una rúbrica se pagina concontained_limitycontained_offset, y la respuesta dacontained_next_offset. La búsqueda y lossendsde una campaña se paginan conpage, desde 1. - Fechas: las tarjetas llevan RFC 3339 en UTC; las filas de informes (envíos, rendimiento) llevan
YYYY-MM-DD HH:MM:SS.mmmen UTC. - Campos de tarjetas: un campo que acepta tarjetas (
tg_groups,not_tg_groups,oracles,posts) acepta también espacios de trabajo, y unPATCHreemplaza la lista entera. - Creaciones: llevan un
Idempotency-Key. Cabi.Chat API — Crear tarjetas: idempotencia y límites - Derechos: cada llamada sigue las políticas de tarjetas, exactamente como en la app. Grafo de Cabi.Chat — Políticas de tarjetas
Primera llamada
curl -H "Authorization: Bearer $CABI_PAT" https://api.cabi.chat/v0/my/self
curl -H "Authorization: Bearer $CABI_PAT" https://api.cabi.chat/v0/my/projects
La primera responde quién eres (200 con tu perfil), la segunda lista tus proyectos. Tu primer proyecto por la API: Pipeline de API: crear y editar la página de tu proyecto