Skip to main content
All project endpoints are under /api/projects and require authentication.

List projects

GET /api/projects Returns all synced projects as a flat list.
Response 200
array

List projects (paginated)

GET /api/projects/paginated Returns a paginated, filterable list of projects.
number
Page number. Default: 1.
number
Items per page. Default: 20, max: 100.
Search term matched against project name or path.
string
Filter by platform: gitlab | github.
string
Filter by platform config UUID.
boolean
Filter by enabled status.
string
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
object
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.
Request body
string
required
UUID of the platform config to sync from.
Response 200
number
Number of projects successfully synced.
number
Total number of projects found on the platform.
array
List of any errors encountered during sync.

Update project settings

PATCH /api/projects/:projectId Partially updates a project’s configuration. Requires project:update permission.
string
required
UUID of the project to update.
Request body (all fields optional)
boolean
Enable or disable AI review for this project.
boolean | null
Override auto-review setting. Set to null to inherit the global default.
array | null
List of glob patterns for files to exclude from review. null inherits global setting.
string | null
UUID of the AI config to use. null inherits the global default.
array
Array of platform user IDs to auto-assign as reviewers on new MRs / PRs.
boolean
Whether to automatically assign the MR / PR author as assignee.
Response 200
object
Updated project record.

Get project configuration

GET /api/projects/:projectId/config Returns the resolved configuration for a project, including inherited global settings.
string
required
UUID of the project.
Response 200
object
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.
string
required
UUID of the project.
Response 200
object
Aggregated workspace data.

Get platform project details

GET /api/projects/:projectId/platform Fetches live project details from the upstream platform API (GitLab or GitHub).
string
required
UUID of the project.
Response 200
object

Get project members

GET /api/projects/:projectId/members Fetches project members from the upstream platform.
string
required
UUID of the project.
string
Search term to filter members by name or username.
number
Page number. Default: 1.
number
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.
string
required
UUID of the project.
string
Filter by MR state: all | opened | merged | closed. Default: opened.
string
Search term.
number
Page number. Default: 1.
number
Items per page. Default: 20, max: 100.

Get project pipelines

GET /api/projects/:projectId/pipelines Returns the review pipeline history for a project.
string
required
UUID of the project.
string
Filter by pipeline status: pending | in_progress | completed | failed | queued | processing.
string
Filter by trigger type: auto | manual.
number
Filter by MR / PR number.
number
Page number. Default: 1.
number
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.
Request body
array
required
List of project UUIDs to configure webhooks for. At least one required.
string
Override the webhook URL. Defaults to the server’s configured webhook endpoint.
Response 200
number
Number of webhooks successfully created.
number
Number of webhooks that failed to create.
array
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
string
required
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.
string
required
UUID of the project.

Delete a project

DELETE /api/projects/:projectId Deletes a project record from the database. Requires project:delete permission.
string
required
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
array
required
List of project UUIDs to delete. At least one required.