/api/runners. Management endpoints (list, get) require a user session or API key. Task endpoints (register, heartbeat, task pickup, result submission) require an API key passed as Authorization: Bearer <key> or x-api-key: <key>.
List runners
GET /api/runners
Returns all registered runners ordered by most recent heartbeat. Requires authentication.
200
Get a runner
GET /api/runners/:id
Returns details for a specific runner. Requires authentication.
Runner UUID.
200
Single runner record. Same fields as the list response.
Register a runner
POST /api/runners/register
Registered or re-registers a runner. Runners call this endpoint on startup. Uses an upsert — if the runner ID already exists, its fields are updated.
This endpoint requires an API key. Registration metadata is passed via custom headers rather than a JSON body.
Unique identifier for this runner instance.
Human-readable name. Defaults to the runner ID.
Runner software version string. Defaults to
unknown.Maximum number of concurrent review jobs. Default:
5.Comma-separated list of tags (e.g.,
gpu,fast).200
The created or updated runner record.
Runner heartbeat
POST /api/runners/:id/heartbeat
Runners send this periodically to report their current status. Requires API key authentication.
Runner UUID.
Current runner state:
online | busy | offline.Number of jobs currently being processed.
Claim pending tasks
GET /api/runners/tasks/pending
Returns pending review tasks for a runner to claim and execute. Requires API key authentication.
ID of the runner requesting tasks.
Maximum number of tasks to claim. Default:
1.200
List of claimed runner task objects, each containing repository URL, branch, commit SHA, file changes, and AI configuration.
Update task status
POST /api/runners/tasks/:id/status
Updates the execution phase of a task while it is running. Requires API key authentication.
Runner task UUID.
Current phase:
preparing | cloning | reviewing | submitting.Append task logs
POST /api/runners/tasks/:id/logs
Appends log lines to a running task. Requires API key authentication.
Runner task UUID.
Array of log line strings. Between 1 and 200 entries per call.
Submit task result
POST /api/runners/tasks/:id/result
Submits the final result of a completed review task. Requires API key authentication. This triggers comment posting and review record updates.
Runner task UUID.
ID of the runner submitting the result.
Final task outcome:
success | failed.Per-file review results.
Total number of comments across all files.
Overall quality rating:
A | B | C | D | F.Timing metrics for the review execution.
Top-level error message if the task failed.
Final batch of log lines to append.
Deregister a runner
DELETE /api/runners/:id
Marks a runner as offline. Can be called by the runner itself (API key) or by an authenticated user.
Runner UUID to deregister.