EvoHub Docs Sign in

Status API › Analytics

Get analytics across pages

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs-dev.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs-docs https://docs-dev.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs-dev.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs-docs": {
      "type": "http",
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}
GET/api/v1/pages/analytics

Every page the caller can see, together: views, visitors, feed and AI reads, subscriber growth (signed up, confirmed, unsubscribed, removed) and incidents published with time to first publication, as totals, a series, per page and top lists.

from and to go together: dates (to inclusive) or RFC 3339 instants, widened to whole UTC days; default the last 30 days, at most 366. Two days or less gives an hourly series. compare adds the previous period's or last year's headline numbers.

Permission (API-key scope): status:page:read.

Authorization

Any one of:

Parameters

Query parameters

  • from string
    YYYY-MM-DD or RFC 3339.
    Example: 2026-09-10
  • to string
    YYYY-MM-DD (inclusive) or RFC 3339.
    Example: 2026-10-09
  • team_id string
    Only this team's pages. A team the caller cannot see gives an empty list.
  • page_id string (uuid)
    Only this page (404 if the caller cannot see it).
  • compare string
    One of: previous year

Responses

200

The analytics.

Content type: application/json

Type: object

  • data OrgAnalytics required
    Show OrgAnalytics properties
    • range AnalyticsRange
      Show AnalyticsRange properties
      • from string (date-time)
      • to string (date-time)
      • granularity string
        One of: hour day
      • tz string
        Value: UTC
    • totals object
      • pages integer
      • views integer
      • visitors integer
      • feed_reads integer
      • ai_requests integer
      • subscribers_confirmed integer
      • subscribers SubscriberEvents
        Show SubscriberEvents properties
        • signed_up integer
        • confirmed integer
        • unsubscribed integer
        • removed integer
        • net integer
      • incidents IncidentStats
        Show IncidentStats properties
        • published integer
        • by_impact array of object
          • impact IncidentImpact
            One of: none minor major critical
          • count integer
        • time_to_first_publication DurationStats
          Show DurationStats properties
          • count integer
          • p50_seconds number | null
          • p90_seconds number | null
          • avg_seconds number | null
    • series array of object
      Hourly for a range of two days or less (then the per-day counters are null), daily otherwise.
      • bucket string (date-time)
      • views integer
      • visitors integer | null
      • feed_reads integer | null
      • ai_requests integer | null
      • subscribers SubscriberEvents | null

        One of:

        • SubscriberEvents
          Show SubscriberEvents properties
          • signed_up integer
          • confirmed integer
          • unsubscribed integer
          • removed integer
          • net integer
        • null
      • incidents_published integer
    • pages array of object
      • page_id string
      • name string
      • slug string
      • team_id string
      • custom_domain string | null
      • analytics_enabled boolean
      • views integer
      • visitors integer
      • feed_reads integer
      • ai_requests integer
      • subscribers_confirmed integer
      • subscribers SubscriberEvents
        Show SubscriberEvents properties
        • signed_up integer
        • confirmed integer
        • unsubscribed integer
        • removed integer
        • net integer
      • incidents IncidentStats
        Show IncidentStats properties
        • published integer
        • by_impact array of object
          • impact IncidentImpact
            One of: none minor major critical
          • count integer
        • time_to_first_publication DurationStats
          Show DurationStats properties
          • count integer
          • p50_seconds number | null
          • p90_seconds number | null
          • avg_seconds number | null
    • routes array of object
      • route string
      • views integer
    • referrers array of object
      • host string
      • views integer
    • countries array of object
      • code string
      • views integer
    • devices array of object
      • device string
      • views integer
    • feeds array of object
      • kind string
      • count integer
    • ai array of object
      • kind string
      • count integer
    • ai_agents array of object
      • agent string
      • count integer
    • compare object | null

      One of:

      • object
        • mode string
          One of: previous year
        • from string (date-time)
        • to string (date-time)
        • views integer
        • visitors integer
        • feed_reads integer
        • ai_requests integer
        • subscribers SubscriberEvents
          Show SubscriberEvents properties
          • signed_up integer
          • confirmed integer
          • unsubscribed integer
          • removed integer
          • net integer
        • incidents IncidentStats
          Show IncidentStats properties
          • published integer
          • by_impact array of object
            • impact IncidentImpact
              One of: none minor major critical
            • count integer
          • time_to_first_publication DurationStats
            Show DurationStats properties
            • count integer
            • p50_seconds number | null
            • p90_seconds number | null
            • avg_seconds number | null
      • null
  • success boolean required
    Value: true

400

from/to or compare is not valid (VALIDATION_FAILED, each field in details).

Content type: application/json

Type: ValidationError

  • error object required
    • code string required
      Value: VALIDATION_FAILED
    • message string required
    • request_id string
    • details array of object required
      • field string
      • message string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

404

page_id is not a page the caller can see (NOT_FOUND).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

429

Too many requests (RATE_LIMITED). Wait Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

Example request

curl -X GET 'https://evohub.io/api/v1/pages/analytics' \
  -H 'Authorization: Bearer <TOKEN>'

Last updated