PageLens Analytics
Pregunta a tu asistente de IA sobre los análisis de tu sitio web: visitantes, páginas principales, fuentes, embudos, ingresos por fuente y qué rastreadores de IA y asistentes leen tu sitio. Solo lectura, funciona con una clave API de PageLens Analytics (pagelens.io).
Servidor MCP alojado
npx add-mcp 'https://app.pagelens.io/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Todo lo que ves en el panel de PageLens está disponible como JSON. Usa la API REST desde scripts y backends, o conecta el servidor MCP para que Claude, Cursor y otros asistentes de IA puedan responder preguntas sobre tu tráfico.
Claves de API
Crea claves en el panel bajo API & MCP. Una clave actúa como tú, con el mismo acceso que tienes a cada sitio. Cuando creas una, eliges:
- Solo lectura o Lectura y escritura. Las claves de escritura también pueden crear objetivos, embudos y anotaciones, actualizar la configuración del sitio, añadir sitios y enviar eventos del lado del servidor.
- Todos los sitios o un solo sitio.
Las claves comienzan con pl_ y se muestran una sola vez. Solo almacenamos un hash. Envíalas en el encabezado Authorization:
Authorization: Bearer pl_your_key
Las claves no pueden gestionar otras claves, facturación ni miembros, y no pueden eliminar sitios. Esas acciones requieren una sesión de navegador iniciada.
Servidor MCP
Endpoint: https://app.pagelens.io/mcp (HTTP transmisible). Autentícate con una clave de API.
Claude Code
claude mcp add --transport http pagelens https://app.pagelens.io/mcp \
--header "Authorization: Bearer pl_your_key"
Cursor, Windsurf y otros clientes con soporte de servidor remoto
{
"mcpServers": {
"pagelens": {
"url": "https://app.pagelens.io/mcp",
"headers": { "Authorization": "Bearer pl_your_key" }
}
}
}
Claude Desktop
Añade esto a claude_desktop_config.json (Configuración → Desarrollador → Editar configuración) y reinicia. Requiere Node.js.
{
"mcpServers": {
"pagelens": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.pagelens.io/mcp",
"--header", "Authorization: Bearer pl_your_key"]
}
}
}
Herramientas
| Herramienta | Qué hace |
|---|---|
list_sites | Sitios a los que la clave tiene acceso, con visitantes en las últimas 24 horas |
get_overview | Visitantes, sesiones, páginas vistas, tasa de rebote y duración, comparados con el período anterior, más una serie temporal |
get_breakdown | Páginas principales, páginas de entrada/salida, referentes, canales, etiquetas UTM, países, ciudades, navegadores, SO, dispositivos, idiomas, eventos |
get_pages | Visitantes por página, entradas, tasa de rebote y tiempo en página |
get_realtime | Visitantes en línea ahora y qué están viendo |
list_sessions, get_session | Sesiones y la línea de tiempo completa de una sesión |
get_events | Eventos personalizados y clics de salida con propiedades |
get_errors, get_web_vitals | Errores de JavaScript; percentiles de LCP, INP, CLS, FCP y TTFB |
get_journeys, run_funnel | Rutas comunes; conversión paso a paso |
list_goals, list_segments | Objetivos con tasas de conversión; segmentos guardados (cualquier herramienta acepta segment_id) |
list_users, get_user, get_retention | Usuarios identificados, perfiles y retención de cohortes |
get_bots_and_ai | Rastreadores de IA, asistentes de IA, bots de búsqueda y visitas referidas por ChatGPT, Perplexity, Claude y otros |
create_goal, add_annotation | Solo claves de escritura: crear un objetivo, marcar una fecha en los gráficos |
API REST
URL base: https://app.pagelens.io. Las respuestas son JSON. Las marcas de tiempo están en ISO 8601 en UTC.
curl "https://app.pagelens.io/api/sites/SITE_ID/overview?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z" \
-H "Authorization: Bearer pl_your_key"
Parámetros de consulta comunes
| Parámetro | Descripción |
|---|---|
from, to | Fechas ISO o marcas de tiempo. to es exclusivo. Predeterminado: los últimos 7 días. |
tz | Zona horaria IANA usada para agrupar días y horas, p. ej. Europe/Berlin. Predeterminado: UTC. |
bucket | hour, day, week o month para series temporales. Se elige automáticamente si se omite. |
filter | dimension:value repetible, p. ej. filter=country:DE&filter=channel:Organic%20Search. Mantiene sesiones completas que coinciden. Los operadores van después de la dimensión: page!:/x es no, page~:blog contiene, page!~:blog no contiene, page^:/docs comienza con (codifica en URL ^ y ~). |
segment | Id de un segmento guardado (GET /api/sites/:id/segments). Sus filtros se combinan con cualquier filter. |
limit | Filas para listas (predeterminado 10, máximo 500). |
Dimensiones de filtro y desglose: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country, city, language, event. Los desgloses también aceptan entry, exit y outbound.
Endpoints
| Método y ruta | Devuelve |
|---|---|
GET /api/sites | Tus sitios |
GET /api/sites/:id | Un sitio con su configuración |
GET /api/sites/:id/overview | Totales de current y previous, series, previousSeries |
GET /api/sites/:id/breakdown/:dimension | rows de valor, visitantes, sesiones, recuento. Admite search. |
GET /api/sites/:id/pages | Métricas por página |
GET /api/sites/:id/realtime | Visitantes en los últimos 5 minutos |
GET /api/sites/:id/sessions | Sesiones. tab = comprometidas, con rebote, errores o reproducción. user = un id de usuario identificado. |
GET /api/sites/:id/sessions/:sid | Eventos de una sesión |
GET /api/sites/:id/events | Eventos personalizados y propiedades |
GET /api/sites/:id/errors | Errores de JavaScript |
GET /api/sites/:id/performance | Web Vitals |
GET /api/sites/:id/journeys | Rutas comunes |
GET /api/sites/:id/goals | Objetivos con conversiones |
POST /api/sites/:id/funnel | Cuerpo {"steps":[{"type":"page","value":"/"},{"type":"event","value":"signup"}]} |
GET /api/sites/:id/users | Usuarios. tab = identificados o anónimos. Admite search. |
GET /api/sites/:id/users/:uid | Perfil y sesiones de un usuario |
GET /api/sites/:id/retention | Cohortes; unit = día o semana |
GET /api/sites/:id/bots | Tráfico de bots e IA |
GET /api/sites/:id/export/:type | Descarga CSV |
GET /api/sites/:id/segments | Segmentos guardados |
POST /api/sites/:id/goals, /funnels, /annotations, /segments | Claves de escritura: crear. DELETE …/:itemId elimina. |
Eventos del lado del servidor
Rastrea eventos desde tu backend (pagos, registros, webhooks) con una clave de escritura. Pasa la IP del visitante y el agente de usuario si los tienes; se usan para ubicación y dispositivo y no se almacenan.
curl https://app.pagelens.io/api/track \
-H "Authorization: Bearer pl_your_write_key" \
-H "Content-Type: application/json" \
-d '{
"site_id": "SITE_ID",
"type": "custom_event",
"name": "purchase",
"url": "https://example.com/checkout",
"props": { "plan": "pro", "amount": 49 },
"ip": "203.0.113.7",
"user_agent": "Mozilla/5.0 ..."
}'
Límites y errores
| Plan | Solicitudes por día |
|---|---|
| Prueba gratuita | 5,000 |
| Starter | 2,000 |
| Pro | 10,000 |
| Business | 50,000 |
Cada clave también está limitada a 120 solicitudes por minuto. Las respuestas incluyen X-RateLimit-Limit y X-RateLimit-Remaining. Cuando alcanzas un límite, obtienes 429 con Retry-After.
Los errores se ven así {"error": "message"}:
401: clave faltante, inválida o revocada.402: la prueba ha terminado.403: la clave no puede llamar a esta ruta.404: el sitio no es accesible con esta clave.
¿Preguntas o endpoints faltantes? hello@pagelens.io