/api/projects and require authentication.
List projects
GET /api/projects
Returns all synced projects as a flat list.
200
List projects (paginated)
GET /api/projects/paginated
Returns a paginated, filterable list of projects.
Page number. Default:
1.Items per page. Default:
20, max: 100.Search term matched against project name or path.
Filter by platform:
gitlab | github.Filter by platform config UUID.
Filter by enabled status.
Filter by webhook status:
active | inactive | error | unknown | not_configured.Get project statistics
GET /api/projects/stats
Returns aggregate statistics across all projects (review counts, webhook coverage, etc.).
Response 200
Aggregate project statistics.
Sync projects from a platform
POST /api/projects/sync/platform
Fetches all projects from the specified platform config and upserts them into the database. Requires project:create permission.
UUID of the platform config to sync from.
200
Number of projects successfully synced.
Total number of projects found on the platform.
List of any errors encountered during sync.
Update project settings
PATCH /api/projects/:projectId
Partially updates a project’s configuration. Requires project:update permission.
UUID of the project to update.
Enable or disable AI review for this project.
Override auto-review setting. Set to
null to inherit the global default.List of glob patterns for files to exclude from review.
null inherits global setting.UUID of the AI config to use.
null inherits the global default.Array of platform user IDs to auto-assign as reviewers on new MRs / PRs.
Whether to automatically assign the MR / PR author as assignee.
200
Updated project record.
Get project configuration
GET /api/projects/:projectId/config
Returns the resolved configuration for a project, including inherited global settings.
UUID of the project.
200
Resolved project configuration.
Get project workspace summary
GET /api/projects/:projectId/workspace
Returns an aggregated workspace view for the project, including recent reviews and pipeline status.
UUID of the project.
200
Aggregated workspace data.
Get platform project details
GET /api/projects/:projectId/platform
Fetches live project details from the upstream platform API (GitLab or GitHub).
UUID of the project.
200
Get project members
GET /api/projects/:projectId/members
Fetches project members from the upstream platform.
UUID of the project.
Search term to filter members by name or username.
Page number. Default:
1.Items per page. Default:
20, max: 100.Get project merge requests
GET /api/projects/:projectId/merge-requests
Fetches merge requests / pull requests from the upstream platform.
UUID of the project.
Filter by MR state:
all | opened | merged | closed. Default: opened.Search term.
Page number. Default:
1.Items per page. Default:
20, max: 100.Get project pipelines
GET /api/projects/:projectId/pipelines
Returns the review pipeline history for a project.
UUID of the project.
Filter by pipeline status:
pending | in_progress | completed | failed | queued | processing.Filter by trigger type:
auto | manual.Filter by MR / PR number.
Page number. Default:
1.Items per page. Default:
20, max: 100.Batch create webhooks
POST /api/projects/webhooks/batch
Creates webhooks on the platform for multiple projects at once. Requires project:update permission.
List of project UUIDs to configure webhooks for. At least one required.
Override the webhook URL. Defaults to the server’s configured webhook endpoint.
200
Number of webhooks successfully created.
Number of webhooks that failed to create.
Per-project result details.
Remove a webhook
POST /api/projects/webhooks/remove
Removes the webhook for a single project from the upstream platform. Requires project:update permission.
Request body
UUID of the project whose webhook should be removed.
Verify webhooks
POST /api/projects/webhooks/verify
Checks the webhook status for all projects and updates the webhookStatus field in the database. Requires project:update permission.
Clear a project’s webhook configuration
POST /api/projects/:projectId/webhook/clear
Clears the stored webhook metadata for a project without calling the upstream API. Requires project:update permission.
UUID of the project.
Delete a project
DELETE /api/projects/:projectId
Deletes a project record from the database. Requires project:delete permission.
UUID of the project to delete.
Batch delete projects
POST /api/projects/delete/batch
Deletes multiple project records at once. Requires project:delete permission.
Request body
List of project UUIDs to delete. At least one required.