INTEGRACIÓN
Ejemplos
Recetas completas: curl, Python y JavaScript.
Tres formas equivalentes de hacer lo mismo — registrar (o reutilizar) una cuenta, crear un menú y anotar una tarea con duración ya finalizada — para que elijas la que mejor encaje con tu stack.
curl / bash
bash
BASE="https://tu-hostname/api/v1"
TOKEN=$(curl -s -X POST "$BASE/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "dev@tuempresa.com", "contrasena": "..."}' \
| python3 -c "import sys,json; print(json.load(sys.stdin)['data']['token'])")
MENU_ID=$(curl -s -X POST "$BASE/categorias" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"nombre": "Cliente Alfa"}' \
| python3 -c "import sys,json; print(json.load(sys.stdin)['data']['id'])")
curl -s -X POST "$BASE/tareas" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d "{\"nombre\": \"Reunión de seguimiento\", \"categoria_id\": $MENU_ID}"
Python
python
import requests
BASE = "https://tu-hostname/api/v1"
resp = requests.post(f"{BASE}/auth/login", json={
"email": "dev@tuempresa.com", "contrasena": "...",
})
token = resp.json()["data"]["token"]
cabeceras = {"Authorization": f"Bearer {token}"}
menu = requests.post(f"{BASE}/categorias", headers=cabeceras,
json={"nombre": "Cliente Alfa"}).json()["data"]
tarea = requests.post(f"{BASE}/tareas", headers=cabeceras, json={
"nombre": "Reunión de seguimiento",
"categoria_id": menu["id"],
}).json()["data"]
requests.post(f"{BASE}/tareas/{tarea['id']}/finalizar", headers=cabeceras)
JavaScript (fetch)
javascript
const BASE = "https://tu-hostname/api/v1";
async function api(ruta, opciones = {}) {
const resp = await fetch(`${BASE}${ruta}`, {
...opciones,
headers: { "Content-Type": "application/json", ...opciones.headers },
});
return resp.json();
}
const { data: { token } } = await api("/auth/login", {
method: "POST",
body: JSON.stringify({ email: "dev@tuempresa.com", contrasena: "..." }),
});
const auth = { Authorization: `Bearer ${token}` };
const { data: menu } = await api("/categorias", {
method: "POST", headers: auth,
body: JSON.stringify({ nombre: "Cliente Alfa" }),
});
await api("/tareas", {
method: "POST", headers: auth,
body: JSON.stringify({ nombre: "Reunión de seguimiento", categoria_id: menu.id }),
});
Exportar el histórico para pegarlo en una conversación de IA
Sin ningún cliente propio: descarga el histórico filtrado en JSON, CSV o un resumen en Markdown ya legible, listo para pegar o adjuntar en una conversación con Claude/ChatGPT.
bash
curl -s "https://tu-hostname/api/v1/export?formato=md&desde=2026-07-01&hasta=2026-07-31" \
-H "Authorization: Bearer $TOKEN" -o resumen-julio.md