Skip to main content

List Reviews

Retrieve recent pull request reviews with optional filtering.
curl -X GET 'http://localhost:8000/api/v1/reviews?limit=20&status=completed' \
  --cookie 'access_token=<your_jwt>'
Method: GET /api/v1/reviews Authentication: Required

Query Parameters

limit
integer
default:"20"
Maximum reviews to return (1-100)
status
string
Filter by review status: pending, processing, completed, failed
Search by PR title, repository name, or PR number

Response

Array of review objects:
id
integer
required
Event ID
event_type
string
required
Event type (e.g., "opened_pull_request", "synchronize_pull_request")
source
string
required
Event source (always "github")
status
string
required
Review processing status: pending, processing, completed, failed
pr_status
string
required
Pull request state (live from GitHub): open, merged, closed
created_at
string
required
ISO 8601 timestamp when webhook was received
processed_at
string
ISO 8601 timestamp when review completed
pr_title
string
required
Pull request title
pr_number
integer
required
Pull request number
repo_name
string
required
Full repository name (e.g., "octocat/nectr")
branch
string
required
Head branch name
author
string
required
GitHub username of PR author
pr_url
string
required
GitHub pull request URL
ai_summary
string
Full AI-generated review summary (only present for completed reviews)
files_analyzed
integer
Number of files analyzed in the review

Example Response

[
  {
    "id": 123,
    "event_type": "opened_pull_request",
    "source": "github",
    "status": "completed",
    "pr_status": "open",
    "created_at": "2025-03-10T14:30:00.000000",
    "processed_at": "2025-03-10T14:32:15.000000",
    "pr_title": "Add user authentication",
    "pr_number": 42,
    "repo_name": "octocat/nectr",
    "branch": "feature/auth",
    "author": "octocat",
    "pr_url": "https://github.com/octocat/nectr/pull/42",
    "ai_summary": "✅ **APPROVE**\n\nConfidence: 4/5\n\nThis PR implements user authentication with GitHub OAuth...",
    "files_analyzed": 8
  }
]

Deduplication

Reviews are automatically deduplicated by PR number + repository. If multiple webhook events exist for the same PR (e.g., opened and synchronize), only the most recent event with the highest priority status is returned: Priority: completed > failed > processing > pending

Live PR Status

The pr_status field is fetched live from GitHub on each request to ensure accuracy (e.g., a PR may have been merged after the review was created).

Get Review Details

Retrieve a single review with full AI summary.
curl -X GET 'http://localhost:8000/api/v1/reviews/123' \
  --cookie 'access_token=<your_jwt>'
Method: GET /api/v1/reviews/{review_id} Authentication: Required
review_id
integer
required
Review event ID

Response

Single review object (same structure as list endpoint).

Example Response

{
  "id": 123,
  "event_type": "opened_pull_request",
  "status": "completed",
  "pr_status": "open",
  "pr_title": "Add user authentication",
  "pr_number": 42,
  "repo_name": "octocat/nectr",
  "author": "octocat",
  "ai_summary": "✅ **APPROVE**\n\nConfidence: 4/5\n\n### Summary\n\nThis PR implements secure user authentication using GitHub OAuth 2.0 with JWT session management...",
  "files_analyzed": 8
}

Error Responses

  • 404: Review not found

Build docs developers (and LLMs) love