Guilda WorkDevelopers

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