Leer tus datos
La API de lectura (/api/v1) devuelve la misma verdad que tu panel, en JSON. Pensada para conectar tus propias herramientas o dársela a una IA para que la analice.
La API de lectura te devuelve tus propios datos —clientes, atribución, personas,
cohortes y actividad— en JSON estable, versionado bajo /api/v1. Es la misma verdad que
ves en el panel, para que puedas conectar tus herramientas o dársela a una IA que la analice.
Antes de empezar
- Base:
https://track.alloop.ch - Autenticación obligatoria en toda la API de lectura (expone importes y datos de personas).
Se autentica con HTTP Basic: usuario y contraseña, los que te damos al montar tu cuenta.
En
curles la opción-u; en cualquier cliente HTTP, el modo "Basic auth". Sin ellos, la respuesta es401. - Solo ves lo tuyo. Tu token está limitado a tus clientes; pedir el
client_idde otra cuenta responde404(como si no existiera), nunca los datos de un tercero.
Estos endpoints devuelven datos de personas reales (nombre, email, importe). Trátalos como lo que son: información privada de tus clientes. No los expongas en una web pública ni los pegues en un canal compartido.
Endpoints
GET /api/v1/clients
Tus clientes (proyectos) con sus KPIs de cabecera. Es el nivel 0: por dónde empezar. La lista ya viene filtrada a lo que tus credenciales pueden ver.
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" \
https://track.alloop.ch/api/v1/clientsGET /api/v1/clients/{client_id}/attribution
De dónde vienen tus ventas: origen, canal y pieza que trajo cada ingreso. Responde a "¿qué está funcionando?".
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
days | query | entero | no | 90 | Ventana en días hacia atrás. |
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" \
"https://track.alloop.ch/api/v1/clients/tu-cliente/attribution?days=30"El parámetro model decide a quién se le da el crédito: first (por defecto, quién captó) o
last (quién cerró). Las dos reparten los mismos ingresos totales — no se suman entre sí. La
respuesta incluye model para que sepas cuál estás leyendo.
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
days | query | entero | no | 90 | Ventana en días. |
model | query | texto | no | first | first o last — ver quién captó y quién cerró. |
GET /api/v1/clients/{client_id}/cohorts
Cohortes de valor: cuánto deja cada grupo de altas a lo largo del tiempo. Para ver si el cliente nuevo mejora o empeora mes a mes.
| Parámetro | En | Tipo | Req. | Qué hace |
|---|---|---|---|---|
client_id | ruta | texto | sí | Tu cliente. |
GET /api/v1/clients/{client_id}/people
Las personas (tus clientes finales) con su origen. Es el nivel 1: de los KPIs a los nombres.
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
limit | query | entero | no | 50 | Cuántas personas devolver. |
GET /api/v1/clients/{client_id}/people/{person_id}/timeline
El recorrido completo de una persona, en lenguaje llano y con el detalle debajo. Es el nivel 2: qué hizo esta persona concreta desde que llegó.
| Parámetro | En | Tipo | Req. | Qué hace |
|---|---|---|---|---|
client_id | ruta | texto | sí | Tu cliente. |
person_id | ruta | texto | sí | La persona dentro de ese cliente. |
GET /api/v1/clients/{client_id}/campus
Actividad del campus: KPIs, la serie diaria y qué alumnos están en riesgo. Solo aplica si usas el módulo de campus.
| Parámetro | En | Tipo | Req. | Qué hace |
|---|---|---|---|---|
client_id | ruta | texto | sí | Tu cliente. |
GET /api/v1/clients/{client_id}/revenue
Tus ingresos separando captación (ventas nuevas) de retención (renovaciones). Se leen
por separado a propósito: el ingreso inicial es contra lo que comparas tu gasto en anuncios, y
el recurrente es dinero que ya no cuesta captar. En un único titular, un mes malo de captación
queda tapado por la base que renueva. inicial + recurrente = bruto, siempre.
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
days | query | entero | no | 30 | Ventana en días (máx. 3650). |
GET /api/v1/clients/{client_id}/cohorts/ltv
El valor de vida por cohorte de alta: cuánto ha dejado, mes a mes, cada grupo que entró en un mes concreto. Sirve para ver si tus clientes nuevos valen más o menos que los de hace un año.
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
months | query | entero | no | 12 | Cuántos meses de cohortes. |
GET /api/v1/clients/{client_id}/survey
Las respuestas a la pregunta "¿cómo nos conociste?" de tu página de gracias. Es la única señal que alcanza donde no llega la medición —quien entró sin enlace marcado—, así que se lee como segunda opinión, no como corrección de la atribución (por qué).
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
days | query | entero | no | 90 | Ventana en días. |
GET /api/v1/clients/{client_id}/ad-spend
Lo que llevas gastado en anuncios frente a lo que has ingresado, para el retorno real. Solo devuelve datos si tienes conectada la inversión publicitaria.
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
days | query | entero | no | 30 | Ventana en días. |
GET /api/v1/clients/{client_id}/funnels
Tus embudos y en qué punto se cae la gente. Devuelve la
definición de todos y los conteos del que esté activo. por_defecto: true significa que aún no
has creado ninguno y estás viendo el de ejemplo.
| Parámetro | En | Tipo | Req. | Por defecto | Qué hace |
|---|---|---|---|---|---|
client_id | ruta | texto | sí | — | Tu cliente. |
days | query | entero | no | 30 | Ventana en días (máx. 365). |
funnel | query | texto | no | el primero | El id del embudo cuyos conteos quieres. |
PUT /api/v1/clients/{client_id}/funnels
Reemplaza tus embudos. Se manda la lista entera, no un embudo suelto: el orden importa (el
primero es el que se pinta por defecto). Mandar [] vuelve al embudo de ejemplo.
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" -X PUT \
-H "Content-Type: application/json" \
-d '{"funnels":[{"name":"Reto","steps":[
{"label":"Landing","match":{"events":["$pageview"],
"url":{"op":"exact","value":"/reto/"}}},
{"label":"Compraron","match":{"purchase":{"segment":"*"}}}]}]}' \
https://track.alloop.ch/api/v1/clients/tu-cliente/funnelsCada paso lleva un label y un match, que combina (con Y):
Clave del match | Qué hace |
|---|---|
events | El evento es uno de estos. Los nombres son los que tu web emite de verdad. |
url | {"op": "exact" | "starts_with" | "contains", "value": "/ruta/"} |
purchase | {"segment": "*"} (cualquier compra) o el id de uno de tus tipos de venta. |
props | [{"key": "canal", "op": "eq", "value": "whatsapp"}] — cualquier propiedad. |
Si algo no es válido responde 400 con el motivo en llano, diciendo qué embudo y qué paso:
corrígelo y repite. Máximo 5 embudos de 8 pasos, mínimo 2 pasos cada uno.
GET y PUT /api/v1/clients/{client_id}/purchase-segments
Cómo separas tus tipos de venta (ver si vendes más de una
cosa). declarados: false
significa que no has definido ninguno y todo cuenta junto, que es lo correcto para la mayoría.
[{"id": "cursos", "label": "Cursos", "primary": true,
"events": ["purchase", "subscription_renewed"],
"product": {"op": "in", "values": ["curso-b2", "curso-c1"]}}]product.op admite in, not_in y any. PUT con [] vuelve al comportamiento por defecto.
Dárselo a una IA
Como la respuesta es JSON estable, puedes pegar el resultado de cualquiera de estos endpoints en Claude, ChatGPT o Gemini y pedirle que te lo analice ("¿qué canal me trae los clientes que más duran?"). No sustituye a tu panel, pero acelera las preguntas sueltas.
Pregúntale a tu IA
Esta documentación está pensada para leerse con una IA al lado. Abre tu asistente con el contexto de alloop ya cargado y pregúntale lo que necesites, en tu idioma.
Para qué NO sirve: una IA no ve tu panel, tus pagos ni tus datos, y puede equivocarse. Si un ingreso no aparece, algo toca tu producción o necesitas una respuesta oficial, escríbenos: esto no sustituye al soporte.
Referencia de API
El mapa completo de la API de alloop-tracking: los 56 endpoints que tú o tu equipo técnico podéis usar. Todo lo interno (administración, panel) queda fuera a propósito.
Integrar el snippet
Los endpoints públicos que usa el snippet para medir tu web. En una instalación normal no llamas a ninguno a mano: el snippet lo hace por ti. Aquí están por si integras a mano.