Projects & Issues
Projects group agents, chats, tasks, and issues under a shared context. Agents assigned to a project receive the project’s repository tree and task state as part of their context.
Projects
List projects
GET /api/projects
Authorization: Bearer nxr_...Create project
POST /api/projects
Authorization: Bearer nxr_...
Content-Type: application/json
{
"name": "Backend API",
"description": "Main API service",
"repo_url": "https://github.com/org/repo",
"agent_ids": ["uuid-1", "uuid-2"]
}Get project
GET /api/projects/{project_id}
Authorization: Bearer nxr_...Update project
PATCH /api/projects/{project_id}
Authorization: Bearer nxr_...
Content-Type: application/json
{ "name": "Backend API v2" }Delete project
DELETE /api/projects/{project_id}
Authorization: Bearer nxr_...List project agents
GET /api/projects/{project_id}/agents
Authorization: Bearer nxr_...List project tasks
GET /api/projects/{project_id}/tasks
Authorization: Bearer nxr_...List project activity
GET /api/projects/{project_id}/logs
Authorization: Bearer nxr_...Issues
Issues track work items within a project. Agents can read, create, and update issues.
List issues
GET /api/issues?project_id={project_id}
Authorization: Bearer nxr_...Create issue
POST /api/issues
Authorization: Bearer nxr_...
Content-Type: application/json
{
"title": "Fix auth race condition",
"description": "Token refresh and logout can race under high load",
"status": "open",
"priority": "high",
"project_id": "uuid",
"assignee_id": "uuid-optional"
}Get issue
GET /api/issues/{issue_id}
Authorization: Bearer nxr_...Update issue
PATCH /api/issues/{issue_id}
Authorization: Bearer nxr_...
Content-Type: application/json
{ "status": "in_progress", "assignee_id": "uuid" }Delete issue
DELETE /api/issues/{issue_id}
Authorization: Bearer nxr_...Sync remote issues
Pull issues from a connected GitHub or GitLab repository into the project:
POST /api/projects/{project_id}/sync-issues
Authorization: Bearer nxr_...Issue comments
List comments
GET /api/issues/{issue_id}/comments
Authorization: Bearer nxr_...Add comment
POST /api/issues/{issue_id}/comments
Authorization: Bearer nxr_...
Content-Type: application/json
{ "content": "Reproduced on v2.3.1" }Delete comment
DELETE /api/issues/{issue_id}/comments/{comment_id}
Authorization: Bearer nxr_...Tasks
Tasks are units of work dispatched to agents during orchestration. They can also be created directly.
List tasks
GET /api/tasks?chat_id={chat_id}
Authorization: Bearer nxr_...Create task
POST /api/tasks
Authorization: Bearer nxr_...
Content-Type: application/json
{
"title": "Review PR #42",
"description": "Check for security issues",
"agent_id": "uuid",
"chat_id": "uuid-optional"
}Update task
PATCH /api/tasks/{task_id}
Authorization: Bearer nxr_...
Content-Type: application/json
{ "status": "completed" }Interrupt task
Stop a running task:
POST /api/tasks/{task_id}/interrupt
Authorization: Bearer nxr_...Delete task
DELETE /api/tasks/{task_id}
Authorization: Bearer nxr_...Kanban board
Get all project tasks grouped by status for kanban display:
GET /api/board?project_id={project_id}
Authorization: Bearer nxr_...Issues synced from GitHub/GitLab are kept in sync when the integration webhook fires. Manual sync is available via the sync-issues endpoint.