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

HerramientaQué hace
list_sitesSitios a los que la clave tiene acceso, con visitantes en las últimas 24 horas
get_overviewVisitantes, sesiones, páginas vistas, tasa de rebote y duración, comparados con el período anterior, más una serie temporal
get_breakdownPáginas principales, páginas de entrada/salida, referentes, canales, etiquetas UTM, países, ciudades, navegadores, SO, dispositivos, idiomas, eventos
get_pagesVisitantes por página, entradas, tasa de rebote y tiempo en página
get_realtimeVisitantes en línea ahora y qué están viendo
list_sessions, get_sessionSesiones y la línea de tiempo completa de una sesión
get_eventsEventos personalizados y clics de salida con propiedades
get_errors, get_web_vitalsErrores de JavaScript; percentiles de LCP, INP, CLS, FCP y TTFB
get_journeys, run_funnelRutas comunes; conversión paso a paso
list_goals, list_segmentsObjetivos con tasas de conversión; segmentos guardados (cualquier herramienta acepta segment_id)
list_users, get_user, get_retentionUsuarios identificados, perfiles y retención de cohortes
get_bots_and_aiRastreadores de IA, asistentes de IA, bots de búsqueda y visitas referidas por ChatGPT, Perplexity, Claude y otros
create_goal, add_annotationSolo 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ámetroDescripción
from, toFechas ISO o marcas de tiempo. to es exclusivo. Predeterminado: los últimos 7 días.
tzZona horaria IANA usada para agrupar días y horas, p. ej. Europe/Berlin. Predeterminado: UTC.
buckethour, day, week o month para series temporales. Se elige automáticamente si se omite.
filterdimension: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 ~).
segmentId de un segmento guardado (GET /api/sites/:id/segments). Sus filtros se combinan con cualquier filter.
limitFilas 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 rutaDevuelve
GET /api/sitesTus sitios
GET /api/sites/:idUn sitio con su configuración
GET /api/sites/:id/overviewTotales de current y previous, series, previousSeries
GET /api/sites/:id/breakdown/:dimensionrows de valor, visitantes, sesiones, recuento. Admite search.
GET /api/sites/:id/pagesMétricas por página
GET /api/sites/:id/realtimeVisitantes en los últimos 5 minutos
GET /api/sites/:id/sessionsSesiones. tab = comprometidas, con rebote, errores o reproducción. user = un id de usuario identificado.
GET /api/sites/:id/sessions/:sidEventos de una sesión
GET /api/sites/:id/eventsEventos personalizados y propiedades
GET /api/sites/:id/errorsErrores de JavaScript
GET /api/sites/:id/performanceWeb Vitals
GET /api/sites/:id/journeysRutas comunes
GET /api/sites/:id/goalsObjetivos con conversiones
POST /api/sites/:id/funnelCuerpo {"steps":[{"type":"page","value":"/"},{"type":"event","value":"signup"}]}
GET /api/sites/:id/usersUsuarios. tab = identificados o anónimos. Admite search.
GET /api/sites/:id/users/:uidPerfil y sesiones de un usuario
GET /api/sites/:id/retentionCohortes; unit = día o semana
GET /api/sites/:id/botsTráfico de bots e IA
GET /api/sites/:id/export/:typeDescarga CSV
GET /api/sites/:id/segmentsSegmentos guardados
POST /api/sites/:id/goals, /funnels, /annotations, /segmentsClaves 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

PlanSolicitudes por día
Prueba gratuita5,000
Starter2,000
Pro10,000
Business50,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