Analytics API

Platform analytics covering tool usage, error tracking, model usage breakdowns, and cost estimation. All data is scoped to the authenticated user's customer account. Analytics are aggregated from the tool_analytics table and support configurable time windows. All endpoints require JWT authentication.

Base path: /api/v2/analytics

GET/api/v2/analytics/toolsAuthenticated

Get aggregated tool usage summary including success rates, failure counts, cache hit rates, and average duration.

Query Parameters

daysinteger

Number of days to look back. Defaults to 7.

Request

cURL
400">curl -X 400">GET 400">class="text-emerald-400">"https:400">class="text-zinc-500">//api.lvng.ai/api/v2/analytics/tools?days=30" \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_API_KEY"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"period": 400">class="text-emerald-400">"30 days",
  400">class="text-emerald-400">"tools": [
    {
      400">class="text-emerald-400">"tool": 400">class="text-emerald-400">"web_search",
      400">class="text-emerald-400">"total": 245,
      400">class="text-emerald-400">"successRate": 96,
      400">class="text-emerald-400">"failedCount": 10,
      400">class="text-emerald-400">"cachedCount": 82,
      400">class="text-emerald-400">"avgDurationMs": 1250
    },
    {
      400">class="text-emerald-400">"tool": 400">class="text-emerald-400">"send_email",
      400">class="text-emerald-400">"total": 48,
      400">class="text-emerald-400">"successRate": 100,
      400">class="text-emerald-400">"failedCount": 0,
      400">class="text-emerald-400">"cachedCount": 0,
      400">class="text-emerald-400">"avgDurationMs": 890
    }
  ]
}
GET/api/v2/analytics/errorsAuthenticated

Get recent tool execution errors for debugging and monitoring.

Query Parameters

limitinteger

Maximum errors to return. Defaults to 50.

Request

cURL
400">curl -X 400">GET 400">class="text-emerald-400">"https:400">class="text-zinc-500">//api.lvng.ai/api/v2/analytics/errors?limit=10" \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_API_KEY"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"errors": [
    {
      400">class="text-emerald-400">"id": 400">class="text-emerald-400">"err_abc123",
      400">class="text-emerald-400">"tool_name": 400">class="text-emerald-400">"web_search",
      400">class="text-emerald-400">"success": false,
      400">class="text-emerald-400">"error": 400">class="text-emerald-400">"Request timeout after 30s",
      400">class="text-emerald-400">"duration_ms": 30000,
      400">class="text-emerald-400">"model": 400">class="text-emerald-400">"claude-sonnet",
      400">class="text-emerald-400">"created_at": 400">class="text-emerald-400">"2026-04-01T11:30:00.000Z"
    }
  ]
}
GET/api/v2/analytics/modelsAuthenticated

Get model usage breakdown showing call counts and token consumption per model.

Query Parameters

daysinteger

Number of days to look back. Defaults to 7.

Request

cURL
400">curl -X 400">GET 400">class="text-emerald-400">"https:400">class="text-zinc-500">//api.lvng.ai/api/v2/analytics/models?days=7" \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_API_KEY"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"period": 400">class="text-emerald-400">"7 days",
  400">class="text-emerald-400">"models": {
    400">class="text-emerald-400">"claude-sonnet": {
      400">class="text-emerald-400">"calls": 1250,
      400">class="text-emerald-400">"inputTokens": 2500000,
      400">class="text-emerald-400">"outputTokens": 950000
    },
    400">class="text-emerald-400">"claude-haiku": {
      400">class="text-emerald-400">"calls": 3400,
      400">class="text-emerald-400">"inputTokens": 1800000,
      400">class="text-emerald-400">"outputTokens": 420000
    }
  }
}
GET/api/v2/analytics/costsAuthenticated

Get estimated API costs broken down by model and by day. Uses published per-million-token rates for Anthropic and OpenAI models.

Query Parameters

daysinteger

Number of days to look back. Defaults to 7.

Request

cURL
400">curl -X 400">GET 400">class="text-emerald-400">"https:400">class="text-zinc-500">//api.lvng.ai/api/v2/analytics/costs?days=30" \
  -H 400">class="text-emerald-400">"Authorization: Bearer YOUR_API_KEY"

Response 200

{
  400">class="text-emerald-400">"success": true,
  400">class="text-emerald-400">"period": 400">class="text-emerald-400">"30 days",
  400">class="text-emerald-400">"totalCost": 42.85,
  400">class="text-emerald-400">"costByModel": {
    400">class="text-emerald-400">"claude-sonnet": {
      400">class="text-emerald-400">"calls": 1250,
      400">class="text-emerald-400">"inputTokens": 2500000,
      400">class="text-emerald-400">"outputTokens": 950000,
      400">class="text-emerald-400">"cost": 21.75
    },
    400">class="text-emerald-400">"claude-haiku": {
      400">class="text-emerald-400">"calls": 3400,
      400">class="text-emerald-400">"inputTokens": 1800000,
      400">class="text-emerald-400">"outputTokens": 420000,
      400">class="text-emerald-400">"cost": 0.975
    }
  },
  400">class="text-emerald-400">"costByDay": {
    400">class="text-emerald-400">"2026-03-01": 1.45,
    400">class="text-emerald-400">"2026-03-02": 1.23,
    400">class="text-emerald-400">"2026-03-03": 0.89
  }
}