EvoHub Docs Sign in

EvoTrail API › Usage

Get usage by product

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/evotrail/usage

For each product the key may read: actions and active people in the range, compared with the previous period of the same length, a series (hourly for a range of 48 hours or less with no team or person filter, daily otherwise), and the top 10 actions and teams. Every number carries a drill: the audit-trail filters that list the events behind it.

Permission (API-key scope): evotrail:metrics:read. Each product also needs one of its read permissions.

Authorization

Any one of:

Parameters

Query parameters

  • product array of Product
    Only these products; repeat it (product=oncall&product=uptime) or comma-separate. Products the key cannot read are dropped. Default: every product it can read.
  • team_id string
    Only events on this team's resources.
  • actor_id string
    Only this person's events. Owners and administrators only: an API key always gets 403.
  • from string
    YYYY-MM-DD (UTC) or RFC 3339. Default 30 days before to.
    Example: 2026-09-10
  • to string
    YYYY-MM-DD (inclusive) or RFC 3339. Default now.
    Example: 2026-10-09

Responses

200

Usage.

Content type: application/json

Type: object

  • data UsageView required
    Show UsageView properties
    • from string (date-time)
    • to string (date-time)
    • previous_from string (date-time)
      Start of the previous period of the same length, which deltas compare with.
    • granularity string
      One of: hour day
    • totals object
      • actions integer
      • previous_actions integer
      • delta_pct number | null
        null when the previous period had none.
      • active_people integer
      • previous_active_people integer
      • drill Drill
        Show Drill properties
        • product array of string
        • action string
        • team_id string
        • actor_id string
        • from string (date-time) required
        • to string (date-time) required
    • products array of object
      • product Product
        One of: organization oncall uptime status docs changelog board retro support catalog evotrail
      • actions integer
      • previous_actions integer
      • delta_pct number | null
      • active_people integer
      • last_active_day string (date) | null
      • series array of Point
        Show Point properties
        • t string (date-time)
        • count integer
        • drill Drill
          Show Drill properties
          • product array of string
          • action string
          • team_id string
          • actor_id string
          • from string (date-time) required
          • to string (date-time) required
      • drill Drill
        Show Drill properties
        • product array of string
        • action string
        • team_id string
        • actor_id string
        • from string (date-time) required
        • to string (date-time) required
    • top_actions array of object
      Max items: 10
      • product string
      • action string
      • count integer
      • drill Drill
        Show Drill properties
        • product array of string
        • action string
        • team_id string
        • actor_id string
        • from string (date-time) required
        • to string (date-time) required
    • top_teams array of object
      Max items: 10
      • team_id string
      • actions integer
      • active_people integer
      • drill Drill
        Show Drill properties
        • product array of string
        • action string
        • team_id string
        • actor_id string
        • from string (date-time) required
        • to string (date-time) required
    • quiet_products array of object
      Readable products with no action in the range.
      • product string
      • last_active_day string (date) | null
  • success boolean required
    Value: true

400

A range or filter is not valid (VALIDATION_ERROR); the message names it.

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.
  • success boolean
    Value: false

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.
  • success boolean
    Value: false

403

The key lacks the scope, may read none of the products asked for, or used actor_id (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.
  • success boolean
    Value: false

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.
  • success boolean
    Value: false

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.
  • success boolean
    Value: false

Example request

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

Last updated