Limzo Telegram Group Stats
Estadísticas públicas de solo lectura para grupos de Telegram rastreados por Limzo: actividad, participación, estado de ánimo y tablas de clasificación, sin necesidad de clave API.
Documentación
API de Datos de Limzo
Cada perfil público de grupo de Limzo también está disponible como JSON de solo lectura — las mismas estadísticas agregadas que muestra la página humana, diseñadas para paneles, bots y agentes de IA. Sin autenticación, con CORS habilitado, descrito por una especificación OpenAPI 3.1.
Inicio rápido
Toma cualquier URL de perfil público y añade .json — o simplemente abre limzo.com/s/hipo.json en tu navegador ahora mismo (hipo es un grupo real, el ejemplo en vivo del sitio):
curl https://limzo.com/s/hipo.json
Una respuesta real de esa URL, recortada:
{
"ok": true,
"schema": "limzo.public_stats/v1",
"generated_at": "2026-07-15T12:55:04.464Z",
"docs": "https://limzo.com/docs/",
"openapi": "https://limzo.com/api/public/openapi.json",
"group": {
"slug": "hipo",
"title": "Hipo Chat",
"username": "hipo_chat",
"is_private": false,
"bot_in_group": true,
"plan": "community",
"member_count": 3922,
"url": "https://limzo.com/s/hipo",
"telegram_url": "https://t.me/hipo_chat"
},
"range": { "key": "7d", "label": "7 days", "days": 7 },
"stats": {
"messages": 906,
"replies": 391,
"active_users": 228,
"lifetime_messages": 1728,
"peak_hour_utc": 21,
"mood": { "label": "Sunny", "emoji": "☀️", "positive_pct": 81 },
"daily": [ { "day": "2026-07-09", "messages": 142, "replies": 80, "active_users": 31 }, "…" ],
"top_members": [ { "rank": 1, "name": "Josip", "username": "heretic", "messages": 213, "replies": 116 }, "…" ],
"top_reactor": { "name": "mili", "username": "milibilij", "count": 120 },
"reaction_magnet": { "name": "Josip", "username": "heretic", "count": 228 },
"languages": { "primary": "en", "distinct": 4, "items": [ { "code": "en", "name": "English", "pct": 62 }, { "code": "fa", "name": "Persian", "pct": 21 }, "…" ] },
"levels": [ { "rank": 1, "name": "Josip", "username": "heretic", "level": 12, "tier": "veteran", "tier_title": "Veteran", "xp": 1930 }, "…" ],
"league": { "season": "2026-W30", "members": [ { "rank": 1, "name": "mili", "username": "milibilij", "tier": "diamond", "messages": 213, "movement": 1 }, "…" ] }
}
}
Esa es toda la API: JSON público y de solo lectura sobre HTTPS simple. Sin clave, sin registro, sin SDK necesario.
Úsala con un asistente de IA
La API está diseñada para ser consumida directamente por herramientas de IA — los asistentes pueden obtener estas URLs durante la conversación, y la especificación OpenAPI se integra con marcos de agentes sin código de conexión. Tres cosas para probar (la historia orientada a administradores está en Visibilidad de IA para tu grupo). ¿Aún no tienes un grupo conectado? Cada indicación a continuación funciona tal cual con hipo, el grupo de ejemplo en vivo, en lugar de tugrupo:
1. Lectura instantánea de salud. Pega en ChatGPT o Claude:
Open https://limzo.com/s/yourgroup.json and tell me how my community
is doing — the trend, the mood, and what I should fix first.
2. Herramientas nativas en ChatGPT y Claude. En ChatGPT, prueba el Analista de Comunidad Limzo oficial en la GPT Store — o crea tu propio GPT personalizado importando la especificación como una Acción:
https://limzo.com/api/public/openapi.json
En Claude, añade el conector MCP de Limzo (Configuración → Conectores → Añadir conector personalizado) y Claude obtiene las estadísticas como herramientas nativas:
https://limzo.com/api/public/mcp
La URL de OpenAPI también funciona en cualquier lugar donde se acepten herramientas descritas por OpenAPI; la URL de MCP funciona con cualquier cliente MCP.
3. Un panel en vivo sin backend. La API está abierta a CORS, por lo que las solicitudes del navegador funcionan desde cualquier origen. Una indicación para Claude o ChatGPT:
Build a single-file HTML dashboard that fetches
https://limzo.com/s/yourgroup.json and shows the daily trend
(stats.daily), the leaderboard (stats.top_members), and the
mood (stats.mood). Refresh every 30 minutes. The exact response
schema: https://limzo.com/api/public/openapi.json
Endpoints
GET /s/{slug}.json
Estadísticas para un grupo público. Refleja la URL de la página humana — {slug} es la última parte de la dirección limzo.com/s/<slug> del grupo. Alias: GET /api/public/{slug} devuelve el mismo payload.
¿Parámetro de consulta opcional?range=7d|30d|all — consulta rangos. Los slugs desconocidos devuelven un 404 JSON ({"ok":false,"error":"Public stats page not found."}); los grupos cuya página pública está desactivada devuelven 403; y un grupo cuyas estadísticas han sido eliminadas devuelve un 410 permanente ({"ok":false,"gone":true}) — deja de consultar ese slug.
Pruébalo: /s/hipo.json · /api/public/hipo (alias) · un 404
GET /api/public/groups
Lista o busca el directorio de grupos públicos — el gemelo automático de /groups/, para descubrir grupos y sus slugs. Opcional?q=<keyword> coincide sin distinguir mayúsculas contra título, nombre de usuario, slug y descripción;?lang=<ISO 639-1> (p. ej. fa, es) conserva solo grupos donde ese idioma es una parte significativa de lo que escriben los miembros;?limit=1–50 limita las filas (por defecto 20). Cada fila incluye una mezcla de idiomas (idioma principal + idiomas principales como porcentajes). Ordenado por Puntuación Limzo.
Pruébalo: /api/public/groups · /api/public/groups?q=hipo · /api/public/groups?lang=fa
GET /api/public/global-stats
Totales de toda la red en todos los grupos públicos listados (número de grupos, mensajes, miembros activos, respuestas, reacciones, karma — de 7 días y de todo el tiempo) más los principales grupos actuales por Puntuación Limzo.
Pruébalo: /api/public/global-stats
GET /api/public/openapi.json
Esta API como documento OpenAPI 3.1 legible por máquina — esquemas completos de solicitud/respuesta para generadores de código, clientes de API y agentes de IA. Abrir la especificación.
POST /api/public/mcp
La misma API como servidor MCP (Protocolo de Contexto de Modelo, HTTP transmisible, sin autenticación) para Claude y cualquier cliente MCP. Expone tres herramientas de solo lectura: list_groups, get_group_stats y get_global_stats.
Conéctalo en Claude: Configuración → Conectores → Añadir conector personalizado → https://limzo.com/api/public/mcp. En Claude Code: claude mcp add --transport http limzo https://limzo.com/api/public/mcp
Los clientes MCP que solo hablan stdio pueden usar el paquete npm limzo-mcp, un puente ligero al mismo endpoint: establece el comando del cliente a npx con args ["-y", "limzo-mcp"]. Prefiere la URL del conector anterior cuando tu cliente admita MCP remoto.
El parámetro de rango
Las estadísticas de grupo se establecen por defecto en los últimos 7 días. Existen dos ventanas más amplias:
| Valor | Ventana | Disponibilidad |
|---|---|---|
| 7d | Últimos 7 días | Todos los grupos (por defecto) |
| 30d | Últimos 30 días | Grupos en plan Pro o Comunidad |
| all | Todo el tiempo | Grupos en plan Pro o Comunidad |
Solicitar 30d o all en un grupo de plan gratuito no es un error — la respuesta cae silenciosamente a 7 días. Siempre verifica range.key en el payload para ver qué ventana obtuviste realmente.
El grupo de ejemplo tiene un plan de pago, por lo que ambas ventanas más amplias sirven datos reales — compara range.key entre ?range=30d y ?range=all.
Referencia de respuesta
El payload de estadísticas de grupo (esquema: "limzo.public_stats/v1") tiene tres partes: group, range y stats. La definición exacta legible por máquina está en la especificación OpenAPI.
group
| Campo | Tipo | Significado |
|---|---|---|
| slug | string | El slug público del grupo. |
| title | string? | Título mostrado. |
| username | string? | Nombre de usuario de Telegram sin @, cuando el grupo es público en t.me. |
| is_private | boolean | Verdadero cuando el grupo no tiene dirección pública en t.me. |
| bot_in_group | boolean | Falso una vez que Limzo ha sido eliminado del chat. Cada cifra por ventana deja de avanzar y la página se convierte en un archivo congelado. |
| plan | string | free, pro o community. |
| member_count | integer? | Total de miembros. |
| description | string? | Descripción del grupo. |
| url | string | La página humana de estadísticas. |
| telegram_url | string? | Enlace t.me, cuando es público. |
range
| Campo | Tipo | Significado |
|---|---|---|
| key | string | La ventana realmente servida: 7d, 30d o all. |
| label | string | Etiqueta humana, p. ej. "7 días". |
| days | integer | Duración de la ventana en días. |
stats
| Campo | Tipo | Significado |
|---|---|---|
| messages | integer | Mensajes en el rango seleccionado. |
| replies | integer | Respuestas en el rango seleccionado. |
| stickers | integer | Pegatinas en el rango seleccionado. |
| active_users | integer | Miembros únicos que publican en el rango. |
| messages_today | integer | Mensajes hasta hoy (UTC). |
| active_users_today | integer | Miembros únicos que publican hasta hoy (UTC). |
| lifetime_messages | integer | Mensajes desde que comenzó el seguimiento. |
| tracked_since_days | integer | Días desde que comenzó el seguimiento. |
| new_active_members | integer | Miembros que publicaron por primera vez en el rango. |
| tracking_frozen | boolean | Verdadero mientras el seguimiento está pausado porque el grupo agotó la asignación mensual de mensajes de su plan. Se restablece el día 1 (UTC). Mientras sea verdadero, las estadísticas por ventana subestiman la actividad real — el grupo no está en silencio. |
| tracking_paused | boolean | Verdadero cuando Limzo ya no está en el grupo, por lo que nada más se contará. A diferencia de tracking_frozen, esto solo se limpia si el bot se vuelve a añadir. |
| peak_hour_utc | integer? | Hora más ocupada del día, 0–23 UTC. |
| mood | object? | { label, emoji, positive_pct } — estado de ánimo del grupo a partir de reacciones. |
| daily | array | Serie por día: { day, messages, replies, active_users }. |
| top_members | array | Clasificación: { rank, name, username, messages, replies }. |
| top_reactor | object? | Miembro que más reaccionó: { name, username, count }. |
| reaction_magnet | object? | Miembro cuyos mensajes atrajeron más reacciones. |
| languages | object? | Qué tan internacional es el grupo: { primary, distinct, items:[{ code, name, pct }] }. Los códigos son ISO 639-1; detectados de lo que escriben los miembros, con respaldo al idioma de su aplicación. Nulo cuando la señal es débil. |
Los campos marcados con? pueden ser nulos — generalmente cuando un grupo aún no ha acumulado esos datos.
Caché, CORS y límites de velocidad
| Cabecera / límite | Valor | Notas |
|---|---|---|
| Cache-Control | public, max-age=1800 | Las estadísticas cambian lentamente; respeta la caché de 30 minutos en lugar de consultar repetidamente. |
| Access-Control-Allow-Origin | * | Llama a la API directamente desde aplicaciones de navegador. |
| Límite de velocidad | 5 req/s, ráfaga 20 | Por IP de cliente. Las solicitudes excesivas reciben HTTP 429 — retrocede y reintenta. |
| HEAD | compatible | Todos los endpoints responden a sondas HEAD solo con cabeceras. |
Compruébalo tú mismo:
$ curl -I https://limzo.com/s/hipo.json
HTTP/2 200
content-type: application/json; charset=utf-8
cache-control: public, max-age=1800
access-control-allow-origin: *
JSON es la forma económica de consumir Limzo — un payload típico es ~50× más pequeño que la página HTML equivalente. Si estás construyendo algo que necesita más de lo que ofrece el feed público, cuéntanoslo.
Encontrar grupos para consultar
Los slugs son públicos y descubribles:
• El directorio público de grupos lista perfiles públicos activos.
• El mapa del sitio de grupos enumera cada URL de perfil público.
• Cada página de estadísticas lleva una etiqueta <link rel="alternate" type="application/json"> que apunta a su gemelo JSON.
• llms.txt resume todo el sitio — incluida esta API — para asistentes de IA.
Versionado y estabilidad
El payload lleva schema: "limzo.public_stats/v1". Se pueden añadir nuevos campos en cualquier momento sin aviso — escribe consumidores que ignoren claves desconocidas. Los cambios disruptivos (campos renombrados o eliminados, significados cambiados) aumentarán la versión del esquema, así que fija tu integración al valor del esquema.
¿Preguntas o solicitudes de funciones? Únete a la comunidad de Telegram de Limzo o contáctanos.