Skip to Content
API ReferenceProjects & Issues

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.