Skip to main content
GET
/
api
/
v1
/
analytics
/
summary
Analytics Summary
curl --request GET \
  --url https://api.example.com/api/v1/analytics/summary
{
  "total_reviews": 123,
  "success_rate": 123,
  "avg_processing_seconds": 123,
  "connected_repos": 123,
  "reviews_today": 123,
  "reviews_this_week": 123,
  "avg_merge_hours": 123,
  "avg_pr_size": 123,
  "last_week_activity": [
    {}
  ],
  "last_week_activity[].pr_number": 123,
  "last_week_activity[].title": "<string>",
  "last_week_activity[].author": "<string>",
  "last_week_activity[].repo_name": "<string>",
  "last_week_activity[].state": "<string>",
  "last_week_activity[].additions": 123,
  "last_week_activity[].deletions": 123,
  "last_week_activity[].changed_files": 123
}

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Nectr-AI/nectr-ai-pr-review-agent/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Retrieve comprehensive analytics including total reviews, success rates, processing times, and repository metrics. Data is deduplicated by unique PR to provide accurate insights.

Authentication

Requires a valid JWT token in the Authorization header:
Authorization: Bearer YOUR_JWT_TOKEN

Response

total_reviews
integer
Total number of unique PRs reviewed (deduplicated by repo + PR number)
success_rate
float
Percentage of reviews that completed successfully (0-100)
avg_processing_seconds
float
Average time in seconds to complete a review
connected_repos
integer
Number of active repositories connected to your account
reviews_today
integer
Number of PRs reviewed today
reviews_this_week
integer
Number of PRs reviewed in the last 7 days
avg_merge_hours
float
Average time in hours from PR creation to merge (null if no merged PRs)
avg_pr_size
integer
Average PR size in lines changed (additions + deletions)
last_week_activity
array
Array of PRs reviewed in the last 7 days
last_week_activity[].pr_number
integer
Pull request number
last_week_activity[].title
string
PR title
last_week_activity[].author
string
GitHub username of the author
last_week_activity[].repo_name
string
Repository full name (owner/repo)
last_week_activity[].state
string
Current PR state: open, merged, or closed
last_week_activity[].additions
integer
Lines added in the PR
last_week_activity[].deletions
integer
Lines deleted in the PR
last_week_activity[].changed_files
integer
Number of files modified in the PR

Example Request

curl -X GET "https://api.nectr.ai/api/v1/analytics/summary" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Example Response

{
  "total_reviews": 127,
  "success_rate": 94.5,
  "avg_processing_seconds": 45.3,
  "connected_repos": 5,
  "reviews_today": 8,
  "reviews_this_week": 23,
  "avg_merge_hours": 18.7,
  "avg_pr_size": 342,
  "last_week_activity": [
    {
      "pr_number": 42,
      "title": "Add user authentication endpoints",
      "author": "johndoe",
      "repo_name": "acme/api-server",
      "state": "open",
      "additions": 245,
      "deletions": 18,
      "changed_files": 8
    },
    {
      "pr_number": 41,
      "title": "Fix database connection pooling",
      "author": "janedoe",
      "repo_name": "acme/api-server",
      "state": "merged",
      "additions": 87,
      "deletions": 43,
      "changed_files": 3
    }
  ]
}

Metrics Explanation

Success Rate

Calculated as:
success_rate = (completed_reviews / total_reviews) * 100
Where:
  • completed_reviews: Reviews with status = “completed”
  • total_reviews: Total unique PRs (deduplicated by repo + PR number)

Average Processing Time

Average duration from started_at to completed_at for all completed workflow runs. Excludes outliers (>5 minutes) to prevent skewing from stuck processes.

Average Merge Hours

Calculated only for merged PRs with valid timestamps. Excludes outliers (>30 days) to prevent skewing from stale PRs. Returns null if no merged PRs exist.

PR Size

Sum of additions and deletions for each PR:
pr_size = additions + deletions

Use Cases

Dashboard Overview

summary = get_analytics_summary()

print(f"📊 Analytics Dashboard")
print(f"Total Reviews: {summary['total_reviews']}")
print(f"Success Rate: {summary['success_rate']}%")
print(f"Avg Processing: {summary['avg_processing_seconds']}s")
print(f"Connected Repos: {summary['connected_repos']}")
print(f"")
print(f"📈 Recent Activity")
print(f"Today: {summary['reviews_today']} reviews")
print(f"This Week: {summary['reviews_this_week']} reviews")
print(f"")
print(f"⏱️ PR Metrics")
print(f"Avg Merge Time: {summary['avg_merge_hours']:.1f} hours")
print(f"Avg PR Size: {summary['avg_pr_size']} lines")

Monitor Team Velocity

summary = get_analytics_summary()

if summary['avg_merge_hours']:
    if summary['avg_merge_hours'] < 24:
        print("✅ Excellent merge velocity! PRs are being merged quickly.")
    elif summary['avg_merge_hours'] < 72:
        print("⚠️ Moderate merge velocity. Consider reviewing PRs faster.")
    else:
        print("❌ Slow merge velocity. PRs are taking too long to merge.")

Activity Tracking

summary = get_analytics_summary()

print("Recent PR Activity:")
for pr in summary['last_week_activity']:
    status_emoji = {'open': '🔵', 'merged': '✅', 'closed': '❌'}[pr['state']]
    print(f"{status_emoji} #{pr['pr_number']}: {pr['title']}")
    print(f"   Author: {pr['author']} | Changes: +{pr['additions']} -{pr['deletions']}")

Build docs developers (and LLMs) love